Debian 上 PHP 日志的常见位置与查看方法
一、常见日志位置一览
| 场景 | 日志类型 | 典型路径 | 说明 |
|---|---|---|---|
| Apache + mod_php | PHP 错误日志 | 由 php.ini 的 error_log 指定;若未设置,常写入 /var/log/apache2/error.log | 建议显式配置 error_log,便于分离 PHP 错误与 Web 服务器错误 |
| Nginx + PHP-FPM | PHP-FPM 错误日志 | 常见为 /var/log/php-fpm.log 或 /var/log/php-fpm/www-data-*.log;亦可在 /etc/php/版本/fpm/pool.d/www.conf 的 error_log 指定 | FPM 日志与进程池配置相关,命名与路径可在 pool 配置自定义 |
| CLI 运行脚本 | PHP 错误日志 | 由 php.ini 的 error_log 指定;若未设置,可能输出到 stderr | 适合排查命令行任务、定时任务(cron) |
| 系统日志(syslog) | PHP 错误日志 | /var/log/syslog | 当 php.ini 设置 error_log = syslog 时,PHP 错误进入系统日志 |
| Web 服务器访问日志 | 访问日志 | Apache:/var/log/apache2/access.log;Nginx:/var/log/nginx/access.log | 记录 HTTP 请求,不直接等同 PHP 错误,但常用于定位请求上下文 |
| Web 服务器错误日志 | 服务器错误日志 | Apache:/var/log/apache2/error.log;Nginx:/var/log/nginx/error.log | 脚本启动失败、权限问题、FastCGI 异常等常在此记录 |
以上路径与做法为 Debian 常见实践,具体以实际配置为准。
二、如何快速确认你的实际路径
php -r 'echo ini_get("error_log");'php -c /etc/php/版本/cli/php.ini -r 'echo ini_get("error_log");'/etc/php/版本/fpm/pool.d/www.conf,检查 error_log、php_admin_value[error_log]、catch_workers_output 等指令sudo tail -f /var/log/apache2/error.logsudo tail -f /var/log/nginx/error.logsudo tail -f /var/log/php-fpm.log 或 sudo tail -f /var/log/php-fpm/www-data-*.logsudo tail -f /var/log/syslog | grep php三、快速排查与配置要点
sudo touch /var/log/php_errors.log && sudo chown www-data:www-data /var/log/php_errors.log && sudo chmod 660 /var/log/php_errors.logerror_reporting = E_ALLdisplay_errors = Off(生产环境建议关闭,开发环境可临时开启)log_errors = Onerror_log = /var/log/php_errors.log(或 syslog 以写入系统日志)sudo systemctl restart apache2sudo systemctl restart php版本-fpm