在 Ubuntu 上开启 PHP 日志(错误日志)通常取决于你使用的是 PHP-FPM 还是 Apache + mod_php。下面按常见场景分别说明。
先确认你当前 PHP 的运行模式:
php -v
php -i | grep "Server API"
常见结果:
php --ini | grep "Loaded Configuration File"
通常路径类似:
/etc/php/8.2/fpm/php.ini
版本号可能是 7.4 / 8.1 / 8.2 / 8.3
编辑配置文件:
sudo nano /etc/php/8.2/fpm/php.ini
确保以下配置存在并取消注释:
display_errors = Off
log_errors = On
error_reporting = E_ALL
error_log = /var/log/php/php_errors.log
✅ 生产环境建议
display_errors = Off
sudo mkdir -p /var/log/php
sudo touch /var/log/php/php_errors.log
sudo chown www-data:www-data /var/log/php/php_errors.log
sudo systemctl restart php8.2-fpm
sudo nano /etc/php/8.2/apache2/php.ini
设置:
log_errors = On
error_log = /var/log/php/php_errors.log
sudo mkdir -p /var/log/php
sudo touch /var/log/php/php_errors.log
sudo chown www-data:www-data /var/log/php/php_errors.log
sudo systemctl restart apache2
<VirtualHost *:80>
php_value log_errors On
php_value error_log /var/log/php/site_errors.log
</VirtualHost>
在 www.conf 中设置:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
php_admin_value[error_log] = /var/log/php/php_errors.log
php_admin_flag[log_errors] = on
重启:
sudo systemctl restart php8.2-fpm
tail -f /var/log/php/php_errors.log
log_errors = Onerror_log 路径存在且可写log_errors = On
error_reporting = E_ALL
error_log = /var/log/php/php_errors.log
display_errors = Off
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的配置方案。