在如何設定 upload_max_filesize 參數裡,
我們有講解可以去自動調整php.ini的部份參數,
不過如果是已被公開,具有危險性的參數,
透過一般後台是無法開啟的。
在php5.2時,有一個參數是: allow_url_include,
被發現會有一些注入式攻擊,導致資料外洩的情況發生,
所以在自訂php功能裡,就會將這樣的參數關閉,
讓使用者盡量不去使用。
如果因為程式撰寫,還是得使用這個語法,
可以透過服務單通知我們開啟,
只是相當的風險,我們也都會先行告知的。
]]>
其中注意到這一句: output started ,這樣的話,可以查看看 php.ini 的output_buffering 如果是為off,請改設為On之後,在重啟web server,通常就可以解掉。
2. 如果output_buffering=On還是會出現錯誤,則要改調 session.auto_start 由 0 改為 1,在重開 web server試試。
這時就可以先考慮將 php.ini 的 session.save_path = /tmp 這樣的參數,改到別的路逕去,比方說/home/tmp ;而需要注意的是/home/tmp ,屬性要改為 777 ,否則檔案無法寫入。改掉後,就恢復正常的話,這樣就確定是原先的 /tmp 這個目錄有異常,可能是檔案數太多,超過使用上限引起,也可能是parttion的問題,就要在額外去修復,而這部份,因為不在這一篇主題的內容裡,有機會我們會在介紹。
]]>安裝的套裝程式,比方說 wordpress ,drupal , joomla ……等等,
偶爾都會出現 allowed memory size of …… 這個錯誤訊息;查看網路上的教學,
不外是得要修改程式去增加 memory limit 的上限,但經我們實測,只修改程式,
不見得能解決這個問題,得要透過直接修改 php.ini 。
但是一般的虛擬主機,並不允許去修改 php.ini,就算連絡主機商,他們也不一定同意協助去改,但這個部份在使用無限網頁虛擬主機,可以快速的解決這個問題,還能夠自己隨意修改增設大小,請詳見我們下列解說:
這樣就可以跟討人厭的 allowed memory size 分手了。
隨著大家插件裝的越多,或是版模太肥的網站,更需要將memory調高些,
才不會一直發生瀏覽撞牆的狀況。
(本篇文章由unethost.com客服人員-Michael完成)
]]>何時會需要修改php.ini的參數呢?一個很常見的例子,就是register_globals 。在php 4之前,這個常常是On的。但是為了安全性,php 5開始,及很多新的php套裝程式,都必須是Off才能安裝。
1) 將客製化的php.ini ( custom php.ini )移到 public_html/cgi-bin/這個資料夾下
2) 在 cgi-bin 這個資料下, 生成 php.fcgi 這個檔案,並寫入下方的內容
#!/bin/sh
export PHP_FCGI_CHILDREN=1
export PHP_FCGI_MAX_REQUESTS=10
exec /usr/local/cpanel/cgi-sys/php5
3) chmod +x php.fcgi
4) 上傳 .htaccess 到 public_html資料夾,並加入下方的內容
AddHandler php5-fastcgi .php
Action php5-fastcgi /cgi-bin/php.fcgi
5) 在php.conf中,加入path
在 /usr/local/apache/conf/php.conf 這個檔案中,加入下方的內容
Action php5-fastcgi /cgi-bin/php.fcgi
AddType application/x-httpd-php .php
6)萃取apache的conf檔,並且重新啟動之
/usr/local/cpanel/bin/apache_conf_distiller –update
/scripts/rebuildhttpdconf
/etc/init.d/httpd restart
後記:
經過我們實際上的實驗,(4)這個步驟修改.htaccess檔在某些情況下,必須省略。例如,要修改的網站,本身的空間裡有附加(attach) 子網域(subdomain) 的時候。