温馨提示×

怎么定位ubuntu php错误

小樊
41
2026-10-06 10:37:40
栏目: 编程语言

在 Ubuntu 上定位 PHP 错误,通常可以按下面几个步骤来做,从最容易看到错误到更底层排查。


一、先看 PHP 本身的错误输出(最快)

1. 临时打开错误显示(开发环境)

如果是命令行或网页看不到错误,先确认 PHP 是否关闭了报错。

php -i | grep display_errors
php -i | grep error_reporting

临时测试:

php -d display_errors=1 -d error_reporting=E_ALL your_script.php

网页环境可在脚本最前面加:

ini_set('display_errors', 1);
error_reporting(E_ALL);

⚠️ 生产环境不建议长期开启 display_errors


二、查看 PHP 错误日志(最常用)

2. 找到 PHP 错误日志位置

php --ini
php -i | grep error_log

常见位置:

  • /var/log/php/php_errors.log
  • /var/log/apache2/error.log
  • /var/log/nginx/error.log

实时查看:

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

三、Web 服务器日志(Apache / Nginx)

Apache

sudo tail -f /var/log/apache2/error.log

Nginx + PHP-FPM

sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php*/fpm/error.log

如果看到 Permission denied、File not found,通常是:

  • 文件权限
  • root / fastcgi 路径配置问题

四、PHP-FPM 相关问题定位

查看 PHP-FPM 状态

systemctl status php-fpm
# 或
systemctl status php8.1-fpm

常见错误

  • pool www 权限问题
  • connect() failed (111: Connection refused) → PHP-FPM 没启动
  • Primary script unknown → SCRIPT_FILENAME 配错

五、命令行调试 PHP

直接运行脚本

php your_script.php

打开详细错误

php -l your_script.php   # 语法检查
php -d error_reporting=E_ALL your_script.php

六、使用 Xdebug(高级定位)

适合逻辑错误、性能问题。

安装:

sudo apt install php-xdebug

配置:

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes

配合 VS Code / PHPStorm 断点调试。


七、快速排查清单(实战用)

✅ PHP 是否安装

php -v

✅ Web 服务是否运行

systemctl status nginx
systemctl status apache2

✅ PHP 模块是否启用

php -m

✅ 文件权限

ls -l /var/www/html

八、你可以这样告诉我,我能更精准帮你

你可以补充:

  1. Ubuntu 版本(22.04?20.04?)
  2. PHP 版本(php -v)
  3. Web 服务(Apache / Nginx)
  4. 错误信息(截图或日志)
  5. 是命令行还是网页报错

我可以直接帮你定位是哪一层的问题。

0 踩