我在 Windows 2008 R2 服务器和 Windows 7 64 位上安装了 PHP 5.2.10 和 PHP 5.2.14(x86 非线程安全 Win32 版本)。
出于某种原因,PHP 5.2.14 拒绝显示错误消息。
即使我在 php.ini
中设置了以下设置,如果我使用 5.2.14,我也不会收到任何错误报告:
error_reporting = E_ALL
display_errors = On
即使在使用 php.exe
从命令行运行测试脚本时也会发生这种情况,但故意出现语法错误:
c:\php>
php test.php
PHP 使用了正确的 php.ini
文件,因为当我运行 php.exe -i
时我可以看到我的设置发生了变化。
我还注意到 PHP 5.2.14 中的 php.exe
启动速度非常慢。
当我在同一台机器上使用 PHP 5.2.10 执行同一组测试时,我收到的错误消息报告很好。
这两个 php.ini
文件都是常用的(基于 php.ini-recommended
),但带有 error_reporting
和 display_errors
设置已修改。
最佳答案
我发现这真的很烦人,所以这里有一个从命令行检查语法的策略:
- 不要加载 ini 文件。
- 显式打开 display_errors 和 display_startup_errors。
php -n -l -d display_errors -d display_startup_errors path/to/your/phpfile.php
$ php -h
-n No php.ini file will be used
-l lint, syntax checking only
-d foo[=bar] Define INI entry foo with value 'bar'
关于configuration - 为什么 PHP 5.2.14 不显示任何错误(即使是从命令行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820009/