php.ini中的设置被部分忽略?

Settings in php.ini partially ignored?

提问人:raphael 提问时间:8/17/2014 最后编辑:raphael 更新时间:7/26/2018 访问量:906

问:

不知何故,我的php.ini被部分忽略了。例如,我可以更改显示错误的设置,但不能更改错误报告的设置。

设置如下:

$ php -i | grep "Configuration file"
Configuration File (php.ini) Path => /usr/local/php5/lib
Loaded Configuration File => /usr/local/php5/lib/php.ini

让我们检查一下 error_reporting 和 display_errors 的值:

grep "error_reporting\|display_errors"
error_reporting => 32767 => 32767
display_errors => Off => Off

让我们更改值 (error_reporting = E_ERROR, display_errors = on),重新启动 Apache 并再次检查:

$ sudo nano /usr/local/php5/lib/php.ini
$ sudo apachectl restart
$ php -i | grep "error_reporting\|display_errors"
error_reporting => 32767 => 32767
display_errors => STDOUT => STDOUT

我在哪里检查这些设置并不重要。它们在浏览器和终端上都是相同的。error_reporting 始终是 32767 (=E_ALL)。

即使是设置disable_functions也无济于事。

disable_functions = error_reporting

时区也是如此,该设置被简单地忽略。但post_max_size和upload_max_filesize是可以改变的。

我的配置有什么问题?

php apache 配置 ini 错误报告

评论


答:

1赞 raphael 8/17/2014 #1

通过安装 PHP 5.5

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

一个名为 99-liip-developer.ini 的文件将安装在 /usr/local/php5/php.d 中。这将覆盖某些设置(请参阅 http://php-osx.liip.ch/#faq)。

重命名或删除文件后,PHP 将按预期工作。

我发现了这一点

$ php -i | grep "Scan this dir for additional"
Scan this dir for additional .ini files => /usr/local/php5/php.d
grep -R "error_reporting" /usr/local/php5/php.d/

感谢suchit!

0赞 zzapper 11/11/2014 #2

嗨,你的代码中有set_error_handler吗?

set_error_handler("my_error_handler"); // override error_reporting()