我怎样才能使PHP显示错误,而不是给我500内部服务器错误

这从来没有发生过。 通常它显示错误,但现在它只是给我一个500内部服务器错误。 当然,之前,当它显示错误,这是不同的服务器。 现在我在一个新的服务器上(我有完整的根,所以如果我需要在php.ini中的某个地方进行configuration,我可以。)或者也许它与Apache的东西?

我一直在忍受它只是将文件传输到我的另一台服务器,并在那里运行find错误,但这太枯燥了。 有没有办法来解决这个问题?

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

 error_reporting(E_ALL); ini_set('display_errors', 'On'); 

之后,重新启动服务器。

值得注意的是,如果你的错误是由于.htaccess造成的,例如缺lessrewrite_module,你仍然会看到500内部服务器错误。

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

PHPparsing错误:语法错误,在第18行的<filename>中出现意外的“}”

从PHP代码启用错误显示不适合我。 就我而言,使用NGINX和PHP-FMP,我使用grep来跟踪日志文件。 例如,我知道文件名mycode.php导致错误500,但不知道哪一行。 从控制台,我使用这个:

 /var/log/php-fpm# cat www-error.log | grep mycode.php 

我有输出:

 [04-Apr-2016 06:58:27] PHP Parse error: syntax error, unexpected ';' in /var/www/html/system/mycode.php on line 1458 

这帮助我find我有错字的地方。

尽量不要去

 MAMP > conf > [your PHP version] > php.ini 

 MAMP > bin > php > [your PHP version] > conf > php.ini 

并改变它,它为我工作…

小心检查是否

 display_errors 

要么

 error_reporting 

在ini文件的其他地方是活动的(不是注释)。

我的开发服务器在升级到Kubuntu 16.04后拒绝显示错误 – 我检查了php.ini多次…原来有diplay_errors = off; 大约在我的下面100行

 display_errors = on; 

所以记住最后一个数字!

如果一切都失败,尝试移动(即在bash中)所有的文件和目录“走开”,并逐一添加回来。

我刚刚发现,我的.htaccess文件引用了一个不存在的.htpasswd文件。 (#愚蠢)