php-fpm 日志需手动配置 php-fpm.conf 和 www.conf 文件:1. 主配置中启用 error_log 和 log_level;2. pool 配置中开启 slowlog 和 request_slowlog_timeout;3. 创建日志目录并授权;4. 重启服务验证。

PHP-FPM 日志不是默认全开的,需手动配置 php-fpm.conf 和 www.conf 两个关键文件,重点开启错误日志(error_log)和访问慢日志(slowlog),才能有效排查 502、超时、脚本卡死等问题。
1. 开启 PHP-FPM 主错误日志
编辑主配置文件(路径因安装方式而异,常见为 /etc/php/{版本}/fpm/php-fpm.conf 或 /usr/local/etc/php-fpm.conf),确认或添加以下行:
- error_log = /var/log/php-fpm.log —— 指定全局错误日志路径
- log_level = notice —— 推荐级别:notice(记录警告及以上)、warning 或 error;避免用 debug(影响性能)
-
emergency_restart_threshold = 10
emergency_restart_interval = 1m —— 可选,配置进程异常重启保护
2. 配置 Pool 级别日志(关键步骤)
进入 Pool 配置目录(如 /etc/php/{版本}/fpm/pool.d/www.conf),在 [www] 段内添加或修改:
- access.log = /var/log/php-fpm-access.log —— 记录每次请求(可选,生产环境慎用)
- access.format = "%t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %{HTTP_X_REAL_IP}i" —— 自定义访问日志格式
- slowlog = /var/log/php-fpm-slow.log —— 必开!用于捕获执行超时脚本
- request_slowlog_timeout = 5s —— 脚本执行超过 5 秒即写入 slowlog(按需调整)
- request_terminate_timeout = 30s —— 强制终止超时请求(防止挂死)
3. 创建日志目录并授权
确保 PHP-FPM 进程用户(通常是 www-data 或 nginx)有写权限:
- sudo mkdir -p /var/log/php-fpm
- sudo touch /var/log/php-fpm.log /var/log/php-fpm-slow.log
-
sudo chown www-data:www-data /var/log/php-fpm*.log(Debian/Ubuntu)
或 sudo chown nginx:nginx /var/log/php-fpm*.log(CentOS/RHEL) - sudo chmod 644 /var/log/php-fpm*.log
4. 重启服务并验证
保存所有配置后执行:
-
sudo systemctl restart php{版本}-fpm(如
php8.2-fpm) - sudo systemctl status php{版本}-fpm —— 检查是否启动成功、有无报错
- sudo tail -f /var/log/php-fpm.log —— 实时观察错误输出
- 故意触发慢脚本(如
<?php sleep(6); ?>),检查slow.log是否生成对应记录
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











