什么是 display_errors?

display_errors 是 PHP 中的一个指令,位于 php.ini 文件中。通过此选项,PHP 确定是否应在页面上直接打印错误。

为什么需要禁用 display_errors?

根据 PHP 文档,在生产环境或在线站点上永远不应启用它。

虽然 display_errors 在调试场景中可能提供有用的信息,但如果激活它,则需要注意潜在的安全问题。 参见 OWASP 关于错误处理不当的文章。

然而,一些托管公司默认启用了 display_errors。这可能是由于配置错误,例如尝试使用在托管环境中不起作用的配置来禁用它,例如 PHP 不是作为模块运行,而是与 PHP FastCGI Process Manager (PHP-FPM) 一起运行。

如何禁用 display_errors

检查您的托管控制面板以禁用 display_errors 或联系您的托管提供商。

如果您的 PHP 作为 Apache 模块运行,您可能能够通过以下 .htaccess 配置禁用 display_errors:

<IfModule mod_php8.c> php_flag display_errors off </IfModule>

如果您的服务器使用 FastCGI/PHP-FPM,则可能可以通过确保存在一个包含以下内容的内容的 .user.ini 文件来禁用 display_errors:

display_errors = 0

如果这些示例对您不起作用,或者您需要更多说明,请联系您的托管提供商。