PHP错误日志的路径取决于Web服务器类型(Apache/Nginx)及是否使用PHP-FPM,也可通过php.ini
配置文件自定义。
php.ini
查找:运行php --ini
命令,找到加载的php.ini
文件路径(如/etc/php/8.1/apache2/php.ini
),打开后搜索error_log
参数,其值即为错误日志文件的绝对路径(若未设置,则使用默认路径)。/var/log/apache2/error.log
(集成PHP模块时);/var/log/nginx/error.log
(Nginx自身错误)或/var/log/php-fpm.log
//var/log/php7.x-fpm.log
(PHP-FPM错误,x
为PHP版本号,如7.4、8.1);php.ini
中设置了error_log = /var/log/custom_php_error.log
,则需查看该自定义路径。cat
命令(需sudo
权限)显示整个日志文件内容,例如:sudo cat /var/log/apache2/error.log
less
命令(支持上下翻页),例如:sudo less /var/log/php-fpm.log
tail
命令,-f
参数可实时跟踪新添加的日志条目(适用于调试时监控最新错误),例如:sudo tail -f /var/log/nginx/error.log
若需查看最后100条日志,可添加-n 100
参数:sudo tail -n 100 /var/log/php_errors.log
libapache2-mod-php
),错误会直接写入Apache的错误日志(/var/log/apache2/error.log
),无需额外配置PHP的error_log
。error_log
,错误可能写入Nginx的error.log
(路径:/var/log/nginx/error.log
)。/etc/php/8.1/fpm/php-fpm.conf
或/etc/php/8.1/fpm/pool.d/www.conf
)中的error_log
参数,确认日志路径。若需将错误日志记录到特定文件(而非默认路径),可通过以下两种方式设置:
php.ini
:找到error_log
参数,取消注释并设置路径(如error_log = /var/log/my_php_errors.log
),重启Web服务器(sudo systemctl restart apache2
或sudo systemctl restart nginx
)使配置生效。ini_set
函数或error_log
函数,例如:// 设置错误日志路径(仅当前脚本有效)
ini_set('error_log', '/var/log/custom_php_error.log');
// 记录错误信息到日志文件
error_log("This is a custom error message.", 3, "/var/log/custom_php_error.log");
注意:自定义路径需确保PHP进程有写入权限(通常需用sudo
创建目录并设置权限,如sudo mkdir -p /var/log/php_logs && sudo chown www-data:www-data /var/log/php_logs
)。sudo
权限(避免权限不足无法访问);display_errors
(display_errors = Off
),开启log_errors
(log_errors = On
),并将错误记录到日志文件(而非浏览器显示),防止敏感信息泄露;php.ini
中的log_errors
是否开启(On
表示开启)。