在 Apache 環境下為不同虛擬主機或目錄設定 PHP 選項時,常見 php_admin_value、php_value、php_admin_flag、php_flag 四種指令。本文釐清它們的適用範圍與權限差異。
四者皆用於在 Apache 設定中針對特定虛擬主機、目錄覆蓋 PHP 執行期設定(對應 php.ini 指令)。
| 指令 | 適用位置 | 可被 .htaccess 覆蓋 | 適用型別 |
|---|---|---|---|
php_admin_value | 僅 httpd.conf(或 vhost.conf) | 否 | 數值型設定 |
php_admin_flag | 僅 httpd.conf | 否 | 布林型設定 |
php_value | .htaccess、httpd.conf | 是 | 數值型設定 |
php_flag | .htaccess、httpd.conf | 是 | 布林型設定 |
php_admin_value 鎖定關鍵安全設定(如 open_basedir、disable_functions),防止使用者透過 .htaccess 竄改。.htaccess 使用 php_value/php_flag 調整非強制設定(如 display_errors、memory_limit 上限)。On/Off、1/0、True/False 皆可。# httpd.conf - 系統管理員強制設定
php_admin_value open_basedir "/var/www/vhosts/example.com/:/tmp/"
php_admin_flag allow_url_fopen Off
# .htaccess - 使用者自行調整
php_value upload_max_filesize 20M
php_flag display_errors On