在 PHP-CGI 時,對目錄特別設定 PHP 參數
在 apache httpd 的架構下,傳統是使用 mod_php,這讓 php 以 apache module 的方式存在,所以在 apache httpd 的設定檔中,以下語法是有效的:
php_value
php_flag display_errors off
也因此可以寫在 .htaccess 裡面,讓管理者或使用者方便控管。例如:特別在這個網頁應用程式不要顯示錯誤訊息。
但是如果是以 CGI 的方式來跑 php(cgi, fcgi, 或是很夯的 php-fpm),在 apache httpd 中就沒有這些東西可以設定。這時候如果要特別開關某些 PHP 參數,只能直接在應用程式源始碼裡面加上:
ini_set('display_errors', 0);
這最直覺,如果不是集中寫在一個檔案(e.g. config.php)的話,一旦程式不只一個進入點( entry point)時,就得對每個進入點都加上 ini_set()。
現在 PHP 5.3 引入了一個像是 .htaccess 的東西:.user.ini,在其中的設定(php.ini syntax)會套用在當前目錄與子目錄中的任何 php 檔案。如此一來就能方便的設定整個應用程式的參數。
當然決定要不要掃 .user.ini,要不要叫做 .user.ini,要 cache 多久,都是管理者決定的,但是目前看起來(php.ini-production)預設是會掃。