Ubuntu系统PHP-FPM日志轮转配置详解
在Ubuntu服务器环境中,PHP-FPM的日志文件管理通常由系统内置的logrotate工具自动处理。作为Linux系统日志管理的标准组件,logrotate能够实现日志文件的自动切割、压缩、归档与清理,有效避免日志文件无限增长导致磁盘空间耗尽的问题。本文将详细介绍如何在Ubuntu上为PHP-FPM配置高效的日志轮转方案。

- 首先确认系统是否已安装
logrotate工具。若未安装,可通过终端执行以下命令完成安装:
sudo apt-get update
sudo apt-get install logrotate
- 定位PHP-FPM的日志轮转配置文件。该文件通常位于
/etc/logrotate.d/目录中,文件名可能为php-fpm或带版本号的php7.x-fpm(x代表具体PHP版本号)。建议使用ls /etc/logrotate.d/ | grep php命令快速查找。 - 使用文本编辑器打开配置文件。以nano编辑器为例,执行以下命令:
sudo nano /etc/logrotate.d/php-fpm
- 配置文件通常包含以下典型设置:
/var/log/php-fpm/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
/bin/kill -USR1 `cat /run/php/php7.x-fpm.pid 2>/dev/null` 2>/dev/null || true
endscript
}
各配置参数含义解析:
daily:每日执行一次日志轮转操作。missingok:日志文件不存在时不报错,继续执行。rotate 7:保留最近7天的日志文件,超出的自动删除。compress:启用gzip压缩旧日志文件,显著节省存储空间。delaycompress:延迟压缩,保留最近一次轮转的日志为未压缩状态便于查看。notifempty:空日志文件不进行轮转处理。create 0640 www-data adm:新建日志文件权限设为0640,所有者为www-data,属组为adm。sharedscripts:确保postrotate脚本在所有日志处理完成后只执行一次。postrotate脚本:向PHP-FPM主进程发送USR1信号,使其重新打开日志文件,确保日志记录不中断。
您可根据实际服务器需求调整保留天数、压缩方式等参数。
- 完成配置修改后保存文件并退出编辑器。
- 执行配置测试验证。运行以下命令强制立即执行日志轮转:
sudo logrotate -vf /etc/logrotate.d/php-fpm
添加-v参数可显示详细执行过程。测试完成后,检查/var/log/php-fpm/目录,确认日志文件已按预期被切割和压缩,同时验证PHP-FPM服务日志记录功能正常。
至此,Ubuntu系统PHP-FPM日志自动轮转配置全部完成。logrotate将按预定计划自动管理日志文件,实现服务器日志的规范化管理,既保障了系统稳定性,又提升了运维效率。
