我搜索了一整天试图找到这个,所以我分享了我在尝试设置php_value
和php_admin_value
使用 Amazon Linux2 实例方面的经验。
首先,Linux2 使用更高效、更快的 FPM(FastCGI 进程管理器)运行 PHP。现在出于某种原因,FPM 或多或少地忽略了在 Apache 站点配置中设置的 PHP 变量。但是,有一个 PHP-FPM 配置可以为您处理这个问题。我没有深入挖掘,只是通过将我php_admin_value
放在 FPM 配置文件中来使配置正常工作,而 FPM 配置文件实际上需要这些变量。
sudo nano /etc/php-fpm.d/www.conf
在配置文件的末尾,您会注意到 php.ini 配置部分。老实说,这可以更好地记录在 AWS 上,甚至在文件本身中。
; Additional php.ini defines, specific to this pool of workers. These settings
; overwrite the values previously defined in the php.ini. The directives are the
; same as the PHP SAPI:
; php_value/php_flag - you can set classic ini defines which can
; be overwritten from PHP call 'ini_set'.
; php_admin_value/php_admin_flag - these directives won't be overwritten by
; PHP call 'ini_set'
; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
如果您在盒子上运行多个站点,那么您可以(我假设)为每个站点创建不同的 FPM 配置。这有点痛苦,但如果你绝对需要php_admin_value
vars 集,你可以像这样设置它们:
php_admin_value[session.cookie_httponly] = 1
php_admin_value[session.cookie_secure] = 1
php_admin_value[browscap] = /var/www/browscap.ini
php_admin_value[date.timezone] = America/New_York
php_admin_value[display_errors] = 1
php_admin_value[error_reporting] = 32767
php_admin_value[error_log] = /var/log/www-error.log
另请注意,Linux2 PHP-FPM 还创建了它自己的 PHP 错误日志,显然 Apache 现在忽略了该日志。将此错误日志设置为您希望站点错误日志存在的任何位置。
希望这对您有所帮助,并为您节省一些时间来寻找它。随时提供任何额外的建议!