在 Ubuntu 上配置 PHP 日志,一般分为 PHP-FPM 和 Apache/Nginx + PHP 两种常见场景。下面按最常用的方式给你一个清晰、实用的配置指南。
PHP 日志通常包括两类:
error_log()、syslog() 等php -v
或(FPM):
php-fpm -v
示例路径(以 PHP 8.1 为例):
/etc/php/8.1/
php.ini常见位置:
sudo nano /etc/php/8.1/fpm/php.ini
# 或(Apache)
sudo nano /etc/php/8.1/apache2/php.ini
log_errors = On
error_log = /var/log/php/php_error.log
error_reporting = E_ALL
display_errors = Off
✅ 生产环境
display_errors = Off
✅ 开发环境display_errors = On
sudo mkdir -p /var/log/php
sudo touch /var/log/php/php_error.log
sudo chown www-data:www-data /var/log/php/php_error.log
sudo chmod 644 /var/log/php/php_error.log
www-data是 Ubuntu 下 Web 服务的默认用户
sudo systemctl restart php8.1-fpm
sudo systemctl restart apache2
sudo systemctl restart nginx
创建测试文件:
<?php
error_log("This is a PHP test log message");
访问该页面后查看日志:
tail -f /var/log/php/php_error.log
/var/log/nginx/error.log
; /etc/php/8.1/fpm/php-fpm.conf
error_log = /var/log/php/php-fpm.log
重启:
sudo systemctl restart php8.1-fpm
Apache 错误日志通常包含 PHP 错误:
/var/log/apache2/error.log
如果想单独记录 PHP 错误,仍建议使用 php.ini 中的 error_log
检查:
log_errors = Onphp.ini查看当前生效的 php.ini:
php --ini
log_errors = On
error_log = /var/log/php/php_error.log
display_errors = Off
error_reporting = E_ALL & ~E_NOTICE
如果你愿意,可以告诉我:
我可以给你一份 完全针对你环境的配置方案。