php.ini 中的设置被部分忽略了?
Posted
技术标签:
【中文标题】php.ini 中的设置被部分忽略了?【英文标题】:Settings in php.ini partially ignored? 【发布时间】:2014-10-10 03:26:31 【问题描述】:不知何故,我的 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 是可变的。
我的配置有什么问题?
【问题讨论】:
【参考方案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/
感谢这样的!
【讨论】:
【参考方案2】:您好,您的代码中有 set_error_handler 吗?
set_error_handler("my_error_handler"); // override error_reporting()
【讨论】:
以上是关于php.ini 中的设置被部分忽略了?的主要内容,如果未能解决你的问题,请参考以下文章