在服务器进行 PHP 设定, 最直接的方法是编辑 php.ini 档案, 如果是使用 mod_php 的情况下, 可以用 php_admin_value 或 php_admin_flag, 在 Apache 对个别目录或 VirtualHost 设定不同的 PHP 参数, 或者使用 .htaccess 设定更可以不用重新加载 httpd 修改 PHP 设定。
但如果是使用 PHP-FPM 的话, 那便不可以使用 php_admin_value 及 php_admin_flag 设定, 使用了的话会无法启动 httpd; 如果在 .htaccess 设定, 便会出现 “500 Internal Server Error”.
在 PHP-FPM 要设定个别目录或 VirtualHost 的 PHP 设定, 可以用以下方法:
.user.ini
使用 .user.ini 是最简单的方法, 只要在需要设定的目录, 或者 VirtualHost 的根目录建立 .user.ini 档案, 即与 .htaccess 的位置相录, 便可以设定目录的 PHP 设定, 设定的语法跟 php.ini 的方法一样, 例如想在个别目录开启 allow_url_fopen, 只要加入以下内容:
allow_url_fopen = Off
PHP-FPM 设定档
另一个方法是在 VirtualHost 所属的 PHP-FPM 设定档, 加入以下一行:
php_admin_flag[allow_url_fopen] = on
修改后需要重新启动 PHP-FPM:
# systemctl restart php-fpm
httpd.conf 及 .htaccess
如果要在 httpd.conf 或 .htaccess 设定, 可以用 SetEnv 设定, 加入以下一行:
SetEnv PHP_ADMIN_VALUE “allow_url_fopen” = on
需要这个方法很方便, 可以继续使用现有的 .htaccess 档案, 但最大的限制是只可以设定 1 个参数, 例如:
SetEnv PHP_ADMIN_VALUE “allow_url_fopen = on”
SetEnv PHP_VALUE “post_max_size = 64M”
上面的第 2 行 “post_max_size” 会覆蓋第 1 行的设定.
你可能感兴趣的内容: