Ubuntu PHP日志配置位置及步骤
PHP错误日志的配置主要通过php.ini文件实现,其路径随PHP运行模式(命令行、Apache、PHP-FPM)不同而变化:
/etc/php/{version}/cli/php.ini(如/etc/php/8.1/cli/php.ini);/etc/php/{version}/apache2/php.ini(如/etc/php/8.1/apache2/php.ini);/etc/php/{version}/fpm/php.ini(如/etc/php/8.1/fpm/php.ini)。php --ini命令快速确认当前PHP模式的php.ini路径。在对应的php.ini文件中,需修改以下核心参数以启用和配置日志:
error_log = /var/log/php_errors.log(需替换为实际路径,建议使用绝对路径);log_errors = On(取消分号注释);display_errors = Off;error_reporting = E_ALL(可根据需求调整,如E_ERROR | E_WARNING)。若使用PHP-FPM(搭配Nginx),还需修改PHP-FPM的池配置文件(通常为/etc/php/{version}/fpm/pool.d/www.conf),添加或修改以下参数:
access.log = /var/log/php-fpm/access.log(记录请求访问信息);slowlog = /var/log/php-fpm/slow.log(记录执行时间超过阈值的请求,需配合request_slowlog_timeout参数使用);catch_workers_output = yes(确保子进程错误输出到日志)。/etc/apache2/sites-available/{site}.conf或/etc/apache2/apache2.conf中配置:
ErrorLog ${APACHE_LOG_DIR}/error.log;CustomLog ${APACHE_LOG_DIR}/access.log combined。/etc/nginx/sites-available/{site}.conf或/etc/nginx/nginx.conf中配置:
error_log /var/log/nginx/error.log warn;access_log /var/log/nginx/access.log main。php.ini后直接生效);sudo systemctl restart apache2;sudo systemctl restart nginx + sudo systemctl restart php{version}-fpm(如php8.1-fpm)。通过以下命令实时查看日志内容,确认配置是否生效:
tail -f /var/log/php_errors.log;tail -f /var/log/php-fpm/access.log;tail -f /var/log/php-fpm/slow.log;tail -f /var/log/apache2/error.log;tail -f /var/log/nginx/error.log。