跳到主要内容

更改 PHP 显示错误设置以进行调试和安全管理

在构建或维护基于 PHP 的网站时,控制错误的可见性对于调试和保护您的网站至关重要。更改 PHP 显示错误设置允许您根据需求启用或禁用错误消息。在本指南中,我们将引导您如何修改 PHP 中的 display_errors 指令,以确保您的错误报告符合您的开发或安全目标。


  • PHP 显示错误指令
  • 为什么显示错误存在安全风险
  • 如何更改 PHP 显示错误设置
  • 在不同环境中使用 PHP
  • PHP 错误设置的常见故障排除
  • 总结

PHP 显示错误指令

PHP 配置文件(php.ini)中的 display_errors 指令控制 PHP 显示错误设置。当 display_errors 设置为 "On" 时,PHP 脚本中发生的任何错误都会显示给网站访问者。这在开发过程中非常有用,能够帮助开发者快速诊断和修复问题。然而,在生产环境中公开显示这些错误信息存在安全风险。

为什么显示错误存在安全风险

错误信息通常会泄露敏感信息,如文件路径、数据库查询和服务器内部细节,攻击者可能利用这些信息未经授权访问您的网站或服务器。因此,在生产环境中禁用显示错误是保护网站和访问者的最佳实践。 当 display_errors 设置为 "Off" 时,PHP 不会向网站访问者显示任何错误。相反,错误会被记录到日志文件中,您可以通过日志来跟踪和解决问题,而不会将敏感信息暴露给公众。这有助于您为网站访问者维护一个安全且友好的环境。

如何更改 PHP 显示错误设置

调整 PHP 中 display_errors 设置,请按照以下步骤操作:

  1. 定位 php.ini 文件
    php.ini 文件通常位于服务器的根目录。在共享主机环境中,它位于 public_html 目录下。
  2. 修改 display_errors 指令
    打开 php.ini 文件,搜索包含 display_errors 的行。
    要启用显示错误,设置为 On
display_errors = On

要禁用显示错误,设置为 Off

display_errors = Off
  1. 保存更改并重启服务器
    修改完 php.ini 文件后,保存并重启您的 Web 服务器,使设置生效。这确保您的 PHP 配置更新被正确应用。

在不同环境中使用 PHP

php.ini 文件的位置可能因您运行 PHP 的环境而异。以下是一些常见场景的说明:

  • 共享主机:如果您使用共享主机,php.ini 文件通常位于 public_html 目录。
  • 独立服务器或 VPS:在独立服务器或 VPS 上,php.ini 文件一般位于 PHP 安装的根目录。您通常可以直接修改此文件。
  • 使用 FastCGI 或单个 PHP 脚本:如果您使用 FastCGI 运行 PHP 或运行单个 PHP 脚本,请修改脚本执行目录下的 php.ini 文件。您也可能需要在特定目录创建自定义 php.ini 文件,以对单个脚本应用不同设置。

更多详细说明,请参阅我们的文章《如何编辑 PHP INI 设置》。如果您管理多个 PHP 环境,建议阅读《如何使用 php.ini 配置 PHP 环境》。

PHP 错误设置的常见故障排除

有时对 php.ini 的更改可能不会立即生效。以下是一些常见的故障排除建议:

  • 确认 PHP 版本:确保您使用的 PHP 版本支持您所做的更改。某些设置可能被特定版本的配置覆盖。
  • 检查多个 php.ini 文件 :如果您使用多个 PHP 安装或服务器配置(如 FastCGI),确保编辑的是当前环境使用的正确 php.ini 文件。
  • 重启服务器:修改 php.ini 后务必重启 Web 服务器,确保更改生效。如果不重启,设置可能不会被应用。
  • 查看错误日志:如果问题仍然存在,请检查 PHP 错误日志,获取更详细的错误信息以便排查。

总结

更改 PHP 显示错误设置对于调试和保护您的网站至关重要。通过调整 php.ini 文件中的 display_errors 指令,您可以控制是否在网站上显示错误信息。在开发过程中启用显示错误有助于故障排除,但在生产环境中关闭显示错误对于防止敏感信息泄露至关重要。 为了在有效处理错误和保障安全之间取得平衡,请定期检查您的设置,并确保遵循 PHP 环境的最佳实践。