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

时间:2014-08-16 18:20:39

标签: php apache configuration ini error-reporting

不知何故,我的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是可以改变的。

我的配置有什么问题?

2 个答案:

答案 0 :(得分: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/

致信于此!

答案 1 :(得分:0)

您的代码中是否有set_error_handler?

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