发布于2026-05-21 阅读(0)
扫一扫,手机访问
排查PHP问题,日志是你的第一现场。但在Ubuntu上,日志文件藏身何处,往往因Web服务器和PHP运行方式的不同而有所差异。别担心,我们这就把几个关键位置和查找方法梳理清楚。

简单来说,日志去哪儿,主要看你的PHP是怎么“跑”起来的:
/var/log/apache2/error.log。/var/log/php/版本号/fpm.log(例如/var/log/php/8.1/fpm.log)。而Nginx的/var/log/nginx/error.log,主要记录的是Nginx与PHP-FPM通信时出现的问题,比如常见的502 Bad Gateway或504 Gateway Timeout错误。php.ini里配置了error_log指令,那么错误就会被写入你指定的自定义路径。/var/log/syslog里。这时候,你就得去系统日志里大海捞针了。需要提醒的是,以上路径是常见情况,具体位置可能因系统版本、软件包安装方式(如通过apt安装还是源码编译)而略有不同。一切以你机器上的实际配置为准。
与其死记硬背路径,不如掌握几个命令,自己动手找出来。
php -i | grep 'Loaded Configuration File'。php.ini文件里搜索error_log设置。例如:grep -i error_log /etc/php/8.1/apache2/php.ini 或 grep -i error_log /etc/php/8.1/fpm/php.ini。tail -f命令很实用:
sudo tail -f /var/log/apache2/error.logsudo tail -f /var/log/php/8.1/fpm.logsudo tail -f /var/log/syslog | grep php/etc/php/版本号/fpm/pool.d/www.conf(或你自定义的池配置文件)。里面的error_log、catch_workers_output、php_admin_value[error_log]等指令,优先级可能高于php.ini,会覆盖全局设置。默认路径不顺手?想统一管理?自定义日志路径是个好习惯。操作流程其实很清晰:
php.ini文件(比如/etc/php/8.1/apache2/php.ini或/etc/php/8.1/fpm/php.ini)。
error_reporting = E_ALL。error_log = /var/log/php_errors.log。/var/log/php_errors.log)对运行PHP进程的用户(通常是www-data)有写入权限。否则,配置了也白搭。sudo systemctl restart apache2sudo systemctl restart php8.1-fpmdisplay_errors(避免将错误信息直接暴露给用户),同时确保log_errors是开启的。这样,错误只会安静地记录在日志文件里,既方便你排查,又不会泄露服务器敏感信息。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8