温馨提示×

Ubuntu怎么开启PHP错误日志

小樊
50
2026-08-31 07:38:39
栏目: 编程语言

在 Ubuntu 上开启 PHP 错误日志,通常需要从 PHP 配置(php.ini)Web 服务器(Apache / Nginx) 两个方面来设置。下面按常见场景一步步说明。


一、找到 php.ini 文件

先确认你用的是哪个 PHP 版本,以及是 CLI 还是 FPM

1️⃣ 查看 PHP 版本

php -v

2️⃣ 查看 php.ini 位置

php --ini

或:

php -i | grep "Loaded Configuration File"

常见路径:

  • Apache:/etc/php/8.x/apache2/php.ini
  • Nginx + PHP-FPM:/etc/php/8.x/fpm/php.ini
  • CLI:/etc/php/8.x/cli/php.ini

⚠️ Nginx 用户一定要改 fpm/php.ini,改 cli 是没用的。


二、修改 php.ini 开启错误日志

编辑 php.ini:

sudo nano /etc/php/8.x/fpm/php.ini

(把 8.x 换成你的版本)

✅ 必须修改的配置

display_errors = Off
log_errors = On
error_reporting = E_ALL
error_log = /var/log/php/php_error.log

说明:

  • display_errors = Off:不在页面显示错误(生产环境推荐)
  • log_errors = On:开启错误日志
  • error_reporting = E_ALL:记录所有错误
  • error_log:指定日志文件路径

三、创建 PHP 日志目录并设置权限

1️⃣ 创建日志目录

sudo mkdir -p /var/log/php

2️⃣ 设置权限(非常重要)

Apache:

sudo chown www-data:www-data /var/log/php
sudo chmod 755 /var/log/php

Nginx + PHP-FPM:

sudo chown www-data:www-data /var/log/php
sudo chmod 755 /var/log/php

四、重启服务

Apache

sudo systemctl restart apache2

Nginx + PHP-FPM

sudo systemctl restart php8.x-fpm
sudo systemctl restart nginx

五、测试是否生效

1️⃣ 写一个测试 PHP 文件

<?php
error_log("This is a test PHP error log");
trigger_error("Test error");

访问该页面后查看日志:

tail -f /var/log/php/php_error.log

如果看到内容,说明 ✅ 成功开启。


六、常见问题排查

❓ 没有生成日志?

  1. 确认改的是 正确的 php.ini
  2. 确认重启了 php-fpm / apache
  3. 确认 error_log 文件可写
  4. 查看:
ls -l /var/log/php/php_error.log

❓ Nginx 看不到 PHP 错误?

  • PHP 错误不会写进 nginx 日志
  • 必须看 php_error.log

七、临时(仅当前脚本)开启错误日志(不推荐)

ini_set('log_errors', 1);
ini_set('error_log', '/var/log/php/php_error.log');
error_reporting(E_ALL);

如果你愿意,可以告诉我:

  • ✅ Ubuntu 版本
  • ✅ Apache 还是 Nginx
  • ✅ PHP 版本

我可以给你 精确到命令级别 的配置方案。

0