如何让PHP显示错误而不是给我500内部服务器错误

Rob*_*Rob 136 php apache

这从未发生过.通常它会显示错误,但现在它只给我一个500内部服务器错误.当然,之前,当它显示错误时,它是不同的服务器.现在我在一个新的服务器上(我有完全的root,所以如果我需要在php.ini中的某个地方配置它,我可以.)或者也许是Apache的东西?

我一直在忍受它只是将文件传输到我的其他服务器并在那里运行以找到错误,但这变得太乏味了.有没有办法来解决这个问题?

awg*_*wgy 200

检查error_reporting,display_errorsdisplay_startup_errors在你的设置php.ini文件.它们应分别设置为E_ALL"On"(虽然您不应该display_errors在生产服务器上使用,因此请禁用它并log_errors在部署时使用它).您还可以display_startup_errors在脚本的最开始更改这些设置(除外)以在运行时设置它们(尽管您可能不会以这种方式捕获所有错误):

error_reporting(E_ALL);
ini_set('display_errors', 'On');
Run Code Online (Sandbox Code Playgroud)

之后,重启服务器.

  • 有时,Linux 环境中的错误权限也会导致 500 错误。只是作为一个提醒。 (2认同)

dtb*_*rne 16

值得注意的是,如果您的错误是由.htaccess引起的,例如缺少rewrite_module,您仍会看到500内部服务器错误.

  • 我实际上错过了关于apache的模块.我通过查看错误日志得到了(ubuntu的默认值是/var/log/apache2/error.log) (3认同)

Aar*_*ron 12

从命令行使用"php -l <​​filename>"(即"L")输出可能导致PHP抛出状态500错误的语法错误.它会输出如下内容:

PHP解析错误:语法错误,第18行的<filename>中的意外'}'

  • 这真的帮助了我!跟踪我的错误日志没有产生任何结果,但是这个 gem 运行良好并显示了我的语法错误和行号。正在调试一个类文件。谢谢! (3认同)

von*_*tzt 6

尽量不要去

MAMP > conf > [your PHP version] > php.ini
Run Code Online (Sandbox Code Playgroud)

MAMP > bin > php > [your PHP version] > conf > php.ini
Run Code Online (Sandbox Code Playgroud)

并在那里改变它,它对我有用......


Max*_*Max 5

小心检查

display_errors
Run Code Online (Sandbox Code Playgroud)

要么

error_reporting
Run Code Online (Sandbox Code Playgroud)

在ini文件中的其他位置处于活动状态(不是注释)。

升级到Kubuntu 16.04后,我的开发服务器拒绝显示错误-我检查了php.ini了无数次……原来那是个diplay_errors = off;我的下方大约100条线

display_errors = on;
Run Code Online (Sandbox Code Playgroud)

因此,请记住最后一个计数!