温馨提示×

ubuntu php日志为啥报错

小樊
46
2026-09-18 14:13:46
栏目: 编程语言

Ubuntu 上 PHP 日志报错的原因非常多,不能一句话说死。下面我按最常见的原因分类给你讲,基本能覆盖 90% 的情况,你对着看就懂了。


一、PHP 本身配置问题

1. 日志路径没设置或没权限

常见错误:

Failed to open stream: Permission denied

检查:

php -i | grep error_log

Ubuntu 常见路径:

/var/log/php/error.log

解决:

sudo touch /var/log/php/error.log
sudo chown www-data:www-data /var/log/php/error.log

2. php.ini 中错误日志被关了

log_errors = Off

改成:

log_errors = On
error_log = /var/log/php/error.log

重启:

sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm

二、Web 服务器相关(Apache / Nginx)

3. Nginx + PHP-FPM 报错

常见:

connect() failed (111: Connection refused)

原因:

  • PHP-FPM 没启动
  • socket 路径不对

检查:

systemctl status php8.1-fpm

Nginx 配置示例:

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

4. Apache 没开 PHP 模块

sudo a2enmod php8.1
sudo systemctl restart apache2

三、文件 / 目录权限问题(Ubuntu 最常见)

5. www-data 用户没权限

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

四、PHP 代码错误

6. 语法或函数错误

日志示例:

PHP Parse error: syntax error
PHP Fatal error: Call to undefined function

解决:

  • 看具体报错行号
  • 本地用 php -l file.php 检查语法

五、扩展缺失

7. 缺少 PHP 扩展

如:

Class 'mysqli' not found

安装:

sudo apt install php8.1-mysql
sudo systemctl restart apache2

六、快速排查步骤(推荐你照做)

# 1. 看 PHP 错误日志
sudo tail -n 50 /var/log/php/error.log

# 2. 看 Web 服务日志
sudo tail -n 50 /var/log/apache2/error.log
sudo tail -n 50 /var/log/nginx/error.log

# 3. 看 PHP 版本
php -v

七、你可以这样问我(更准)

如果你愿意,把具体报错内容贴出来,比如:

  • 报错全文
  • 用的 Ubuntu 版本
  • Apache / Nginx
  • PHP 版本

我可以直接帮你精确定位并给命令

0