如何轻松设置Ubuntu PHP错误报告级别,高效排查问题,保障网站稳定运行?
- 内容介绍
- 文章标签
- 相关推荐
如何在 Ubuntu 上轻松设置 PHP 错误报告级别。高效排查问题,保障网站稳定运行?
痛点提示很多开发者在 Ubuntu 程序上调试 PHP 时常常遇到“错误信息不显示”“日志没有生成”“配置修改后仍旧报错”的困扰。下面的步骤将方便你定位并解决这些问题。
1️⃣ 确认当前使用的 PHP 配置文件
打开终端,执行以下命令查看已加载的 php.ini 方法:
php --ini
输出中会列出 CLI 与 Web 两个配置文件方法。怎么说呢,确保你编辑的是对应运行环境所使用的 php.ini。不过,
2️⃣ 编辑对应的 php.ini 文件
根据上一步找到的方法。使用喜欢的编辑器打开文件。例如使用 nano:
sudo nano /etc/php/7.4/apache2/php.ini # Apache
sudo nano /etc/php/7.4/fpm/php.ini # Nginx + PHP‑FPM
注意**:如果不确定版本号,可以在终端运行 `php -v` 查看已安装的 PHP 版本。
3️⃣ 配置错误报告级别
error_reporting 指令** 决定哪些错误会被 PHP 报告。下面提供几种常用组合,供你根据实际需求选择:
-
E_ALL & ~E_NOTICE & ~E_STRICT: 隐藏通知和严格警告。仅显示真正的错误,适合生产环境。 -
E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_ERROR: 隐藏所有非致命错误,只记录致命错误和警告。 -
error_reporting = E_ALL;: 开启全部错误,用于开发阶段快速排查。
痛点提醒**:很多时候我们直接改动了 error_reporting。但忘记同步修改 display_errors 或 log_errors,导致错误仍然不可见或泄露敏感信息。
3.1 display_errors 与 log_errors 的配合使用
* display_errors = Off : 防止在浏览器中直接显示敏感信息;* log_errors = On : 开启日志记录;* error_log = /var/log/php_error.log : 指定日志文件方法。按理说,
4️⃣ 验证配置是否生效
* 操作提示 *:创建一个名为 info.php 的脚本并放在网站根目录下: * php * 在浏览器访问该文件。检查页面中是否出现 “error_reporting => XXX” 和 “display_errors => Off”。如果看到与你设想相同的值,说明配置已成功生效。
5️⃣ 重新启动使改动生效
* 对于 Apache*: bash sudo systemctl restart apache2 * 对于 Nginx + PHP‑FPM*: bash sudo systemctl restart nginx sudo systemctl restart php7.4-fpm # {version} 用实际版本替换 .
6️⃣ 常见问题及方法
- "更改后仍然看不到任何报错": 检查是否同时修改了 display_errors、log_errors;确认是否在正确的 php.ini 中编辑。
- "日志文件没有写入": 确认 error_log 方法可写入且目录权限正确,必要时手动创建并赋予写权限。
- "多个 php.ini 被加载导致冲突": 用 `php --ini` 查看所有加载的配置文件方法,逐一检查并统一修改。
- "Apache 的 .htaccess 不生效": 在 Apache 中确保 AllowOverride All 已经开启;否则 .htaccess 中的 php_value 指令会被忽略。
- "Nginx 的 fastcgi_param 没起作用": 必须放在 location 块内部且语法正确;缺少分号或空格都会导致配置失效。
🎯
* 在 Ubuntu 上设置 PHP 错误报告级别只需三步:**
- $ 找到正确的 php.ini
- $ 编辑该文件。**将 error_reporting、display_errors、log_errors 按需组合 **. .
- $ 重启对应服务,接下来 **.
如何在 Ubuntu 上轻松设置 PHP 错误报告级别。高效排查问题,保障网站稳定运行?
痛点提示很多开发者在 Ubuntu 程序上调试 PHP 时常常遇到“错误信息不显示”“日志没有生成”“配置修改后仍旧报错”的困扰。下面的步骤将方便你定位并解决这些问题。
1️⃣ 确认当前使用的 PHP 配置文件
打开终端,执行以下命令查看已加载的 php.ini 方法:
php --ini
输出中会列出 CLI 与 Web 两个配置文件方法。怎么说呢,确保你编辑的是对应运行环境所使用的 php.ini。不过,
2️⃣ 编辑对应的 php.ini 文件
根据上一步找到的方法。使用喜欢的编辑器打开文件。例如使用 nano:
sudo nano /etc/php/7.4/apache2/php.ini # Apache
sudo nano /etc/php/7.4/fpm/php.ini # Nginx + PHP‑FPM
注意**:如果不确定版本号,可以在终端运行 `php -v` 查看已安装的 PHP 版本。
3️⃣ 配置错误报告级别
error_reporting 指令** 决定哪些错误会被 PHP 报告。下面提供几种常用组合,供你根据实际需求选择:
-
E_ALL & ~E_NOTICE & ~E_STRICT: 隐藏通知和严格警告。仅显示真正的错误,适合生产环境。 -
E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_ERROR: 隐藏所有非致命错误,只记录致命错误和警告。 -
error_reporting = E_ALL;: 开启全部错误,用于开发阶段快速排查。
痛点提醒**:很多时候我们直接改动了 error_reporting。但忘记同步修改 display_errors 或 log_errors,导致错误仍然不可见或泄露敏感信息。
3.1 display_errors 与 log_errors 的配合使用
* display_errors = Off : 防止在浏览器中直接显示敏感信息;* log_errors = On : 开启日志记录;* error_log = /var/log/php_error.log : 指定日志文件方法。按理说,
4️⃣ 验证配置是否生效
* 操作提示 *:创建一个名为 info.php 的脚本并放在网站根目录下: * php * 在浏览器访问该文件。检查页面中是否出现 “error_reporting => XXX” 和 “display_errors => Off”。如果看到与你设想相同的值,说明配置已成功生效。
5️⃣ 重新启动使改动生效
* 对于 Apache*: bash sudo systemctl restart apache2 * 对于 Nginx + PHP‑FPM*: bash sudo systemctl restart nginx sudo systemctl restart php7.4-fpm # {version} 用实际版本替换 .
6️⃣ 常见问题及方法
- "更改后仍然看不到任何报错": 检查是否同时修改了 display_errors、log_errors;确认是否在正确的 php.ini 中编辑。
- "日志文件没有写入": 确认 error_log 方法可写入且目录权限正确,必要时手动创建并赋予写权限。
- "多个 php.ini 被加载导致冲突": 用 `php --ini` 查看所有加载的配置文件方法,逐一检查并统一修改。
- "Apache 的 .htaccess 不生效": 在 Apache 中确保 AllowOverride All 已经开启;否则 .htaccess 中的 php_value 指令会被忽略。
- "Nginx 的 fastcgi_param 没起作用": 必须放在 location 块内部且语法正确;缺少分号或空格都会导致配置失效。
🎯
* 在 Ubuntu 上设置 PHP 错误报告级别只需三步:**
- $ 找到正确的 php.ini
- $ 编辑该文件。**将 error_reporting、display_errors、log_errors 按需组合 **. .
- $ 重启对应服务,接下来 **.

