当 PHP 作为 Apache 模块运行时,您可以访问/更改 Apache 配置文件中使用指令中可用的任何配置设置。这些指令是...php.ini
php_value
php_flag
php_admin_value
php_admin_flag
和 版本之间的差异是此问题的关键。使用并且只能在Apache全局和VirtualHost配置中设置的值;它们不能被 .htaccess 或 ini.set() 覆盖。php_*
php_admin_*
php_admin_value
php_admin_flag
该函数等效于调用,并遵循相同的规则。error_reporting()
ini_set()
因此,我进入了相关站点的虚拟主机配置,并添加了以下行...
php_admin_value error_reporting 22527
php_admin_value error_log /custom/log/path/php_errors.log
php_admin_flag log_errors On
php_admin_flag display_errors Off
-
第一行是 的按位值。我通过创建一个简单的脚本来检索此值:error_reporting = E_ALL & ~E_DEPRECATED
ini_set("error_reporting", E_ALL & ~E_DEPRECATED);
echo ini_get("error_reporting");
如果要忽略系统通知以及弃用警报-- --按位值为 。error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
22519
第二行将所有 PHP 错误发送到自定义日志。默认情况下,PHP将使用该值,通常或类似的东西。syslog
/var/log/apache2/error.log
第三行启用文件日志记录。
最后一个关闭页面上的错误显示。
同样,操作的优先级和顺序在这里是关键。这些值将取代 中定义的值,同时不能被应用程序或文件中的其他更改覆盖。php.ini
.htaccess
有关在 php.ini 外部更改配置值的更多详细信息,请参阅 PHP 文档。