在CentOS系统中,PHP的日志轮转通常是通过配置PHP-FPM(FastCGI Process Manager)或者Web服务器(如Apache或Nginx)来实现的。下面是针对不同组件的日志轮转配置方法:
CentOS 7及更高版本默认使用systemd来管理PHP-FPM服务。你可以通过编辑/etc/systemd/system/php-fpm.service.d/www.conf文件来进行配置。找到以下两行:
;error_log = /var/log/php-fpm/error.log
;log_level = notice
取消注释并设置合适的日志文件路径和日志级别,例如:
error_log = /var/log/php-fpm/error.log
log_level = notice
然后,创建一个日志轮转配置文件/etc/logrotate.d/php-fpm,并添加以下内容:
/var/log/php-fpm/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
这个配置表示每天轮转日志文件,保留最近7天的日志,压缩旧日志,仅当日志文件非空时才轮转,并设置新日志文件的权限和所有者。
Apache的日志轮转通常是通过logrotate工具自动完成的。CentOS 7及更高版本默认已经安装了logrotate。你可以找到Apache的日志轮转配置文件/etc/logrotate.d/httpd,并确保其中包含以下内容:
/var/log/httpd/*log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
这个配置与PHP-FPM的配置类似,表示每天轮转日志文件,保留最近7天的日志,压缩旧日志,仅当日志文件非空时才轮转,并设置新日志文件的权限和所有者。
Nginx的日志轮转同样是通过logrotate工具自动完成的。CentOS 7及更高版本默认已经安装了logrotate。你可以找到Nginx的日志轮转配置文件/etc/logrotate.d/nginx,并确保其中包含以下内容:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 nginx adm
}
这个配置与PHP-FPM和Apache的配置类似,表示每天轮转日志文件,保留最近7天的日志,压缩旧日志,仅当日志文件非空时才轮转,并设置新日志文件的权限和所有者。
完成以上配置后,logrotate工具会自动按照配置进行日志轮转。你可以通过运行logrotate -f /etc/logrotate.conf命令来强制立即执行日志轮转。