Ubuntu 上 PHP 日志报错的原因非常多,不能一句话说死。下面我按最常见的原因分类给你讲,基本能覆盖 90% 的情况,你对着看就懂了。
常见错误:
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
log_errors = Off
改成:
log_errors = On
error_log = /var/log/php/error.log
重启:
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm
常见:
connect() failed (111: Connection refused)
原因:
检查:
systemctl status php8.1-fpm
Nginx 配置示例:
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
sudo a2enmod php8.1
sudo systemctl restart apache2
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
日志示例:
PHP Parse error: syntax error
PHP Fatal error: Call to undefined function
解决:
php -l file.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
如果你愿意,把具体报错内容贴出来,比如:
我可以直接帮你精确定位并给命令。