PHP在Debian上的错误日志位置取决于Web服务器类型、PHP运行模式及配置,主要分为以下几种情况:
若使用Apache作为Web服务器且通过mod_php运行PHP,错误日志通常与Apache错误日志合并,路径为:
/var/log/apache2/error.log
可通过以下命令实时查看最新错误:
sudo tail -f /var/log/apache2/error.log
若使用Nginx作为Web服务器并通过PHP-FPM(FastCGI进程管理器)运行PHP,PHP错误日志通常与Nginx错误日志合并,路径为:
/var/log/nginx/error.log
实时查看命令:
sudo tail -f /var/log/nginx/error.log
若PHP通过PHP-FPM独立运行(常见于Nginx或高并发场景),其自身错误日志路径通常为:
/var/log/php-fpm.log 或 /var/log/php7.x-fpm.log(7.x为PHP版本号,如php8.2-fpm.log)
需确认PHP-FPM配置文件(位于/etc/php/7.x/fpm/pool.d/www.conf)中的error_log设置,例如:
php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_flag[log_errors] = on
修改后需重启PHP-FPM服务:
sudo systemctl restart php7.x-fpm
若通过php.ini或脚本显式设置了error_log参数,日志将记录到自定义路径。需检查以下配置:
php.ini(路径可通过php --ini命令获取,如/etc/php/8.2/apache2/php.ini或/etc/php/8.2/cli/php.ini),查找error_log指令:error_log = /var/log/php_errors.log
log_errors = On
ini_set('log_errors', 1);
ini_set('error_log', '/path/to/custom_error.log');
log_errors是否开启(log_errors = On)及error_log路径是否有写入权限(需www-data用户可写)。display_errors(display_errors = Off),避免敏感信息泄露,转而使用日志记录。