php-fpm.log文件过大导致磁盘空间跑满及php-fpm无法重启问题处理
摘要:
php-fpm.log瞬间持续增大,不断有日志文件写入导致服务器磁盘空间跑满,可通过重启php-fpm进程解决。若无法重启php-fpm进程,则需删除残留的 socket 文件(/tmp/php-cgi-73.sock)后再执行重启php-fpm进程命令。
问题描述:
最近发现 /www/server/php/73/var/log/php-fpm.log文件总是瞬间持续变大,不断有大量如下图所示的log日志写入,导致几天内文件就达到200G需要清理一次。打算尝试重启php-fpm进程来解决这个问题。然而发现通过宝塔重启php-fpm-73一直不成功。
[13-Mar-2025 11:18:04] NOTICE: [pool www] child 14058 started
[13-Mar-2025 11:18:06] WARNING: [pool www] child 13974 exited on signal 11 (SIGSEGV) after 1.460143 seconds from start
[13-Mar-2025 11:18:06] NOTICE: [pool www] child 14060 started [13-Mar-2025 11:18:06] WARNING: [pool www] child 13975 exited on signal 11 (SIGSEGV) after 1.460309 seconds from start
[13-Mar-2025 11:18:06] NOTICE: [pool www] child 14061 started [13-Mar-2025 11:18:06] WARNING: [pool www] child 13978 exited on signal 11 (SIGSEGV) after 1.459425 seconds from start
[13-Mar-2025 11:18:06] NOTICE: [pool www] child 14064 started [13-Mar-2025 11:18:06] WARNING: [pool www] child 13979 exited on signal 11 (SIGSEGV) after 1.460310 seconds from start
问题解决:
1. 查找并停止正在运行的 PHP-FPM 进程
运行以下命令查找 PHP-FPM 进程:
ps aux | grep php-fpm
输出示例:
root 12345 0.0 0.1 123456 7890 ? Ss 13:30 0:00 php-fpm: master process (/etc/php-fpm.conf)
www-data 12346 0.0 0.2 234567 8901 ? S 13:30 0:00 php-fpm: pool www
找到主进程号(例如 12345
),然后终止该进程:
sudo kill -9 12345
或者直接终止所有 PHP-FPM 进程:
sudo pkill php-fpm
2. 删除残留的 socket 文件
删除冲突的 socket 文件:
sudo rm -f /tmp/php-cgi-73.sock
3. 重新启动 PHP-FPM
sudo service php-fpm-73 start
备注:
1)一定要按照以上步骤顺序操作。如不执行第二步删除残留的socket 文件的操作,则会导致启动 PHP-FPM进程失败的情况发生。
2)/tmp/php-cgi-73.sock
是一个 Unix Domain Socket 文件,它是 PHP-FPM(PHP FastCGI Process Manager)与外部程序(如 Nginx、Apache 等 Web 服务器)进行通信的一种方式。
具体作用如下:
- Web 服务器(如 Nginx)将 PHP 请求通过这个 socket 文件发送给 PHP-FPM。
- PHP-FPM 处理完请求后,将结果通过 socket 文件返回给 Web 服务器。
- 如果
php-cgi-73.sock
文件丢失或被占用,PHP-FPM 和 Web 服务器之间的通信会中断。