以前从未发生过这种情况。通常它会显示错误,但现在它只给我一个 500 内部服务器错误。当然之前,当它显示错误时,是不同的服务器。现在我在一个新服务器上(我有完整的 root,所以如果我需要在 php.ini 中的某个地方配置它,我可以。)或者可能是 Apache 的东西?
我一直在忍受它,只是将文件传输到我的其他服务器并在那里运行它来查找错误,但这变得太乏味了。有办法解决这个问题吗?
从命令行使用 php -l (即“L”)输出可能导致 PHP 抛出状态 500 错误的语法错误。它会输出如下内容:
php -l
PHP 解析错误:语法错误,第 18 行 中出现意外的“}”
检查 php.ini 文件中的 error_reporting、display_errors 和 display_startup_errors 设置。它们应分别设置为 E_ALL 和 "On"(尽管您不应该在生产服务器上使用 display_errors,因此禁用此选项并使用 log_errors 相反,如果/当你部署它时)。您还可以在脚本的开头更改这些设置(display_startup_errors 除外),以便在运行时设置它们(尽管您可能无法通过这种方式捕获所有错误):
php.ini
error_reporting
display_errors
display_startup_errors
E_ALL
"On"
error_reporting(E_ALL); ini_set('display_errors', 'On');
之后,重新启动服务器。
从命令行使用
php -l
(即“L”)输出可能导致 PHP 抛出状态 500 错误的语法错误。它会输出如下内容:PHP 解析错误:语法错误,第 18 行 中出现意外的“}”
检查
php.ini
文件中的error_reporting
、display_errors
和display_startup_errors
设置。它们应分别设置为E_ALL
和"On"
(尽管您不应该在生产服务器上使用display_errors
,因此禁用此选项并使用 log_errors 相反,如果/当你部署它时)。您还可以在脚本的开头更改这些设置(display_startup_errors
除外),以便在运行时设置它们(尽管您可能无法通过这种方式捕获所有错误):之后,重新启动服务器。