发布于2026-07-15 阅读(0)
扫一扫,手机访问
当Ubuntu系统里的PHP日志开始疯狂膨胀,磁盘空间告急,性能也跟着往下掉,这事儿确实让人头疼。不过别急,解决问题的核心思路其实很清晰:从日志分割、级别调整、资源限制优化,到清理旧数据、建立预警机制,一步步来,就能把局面稳住。

防止日志文件无限增长,最直接的办法就是用logrotate工具,它能定期分割、压缩、删除旧日志,就像给日志文件做“断舍离”。
sudo apt-get install logrotate/etc/logrotate.d/php文件,把下面的内容塞进去(注意修改日志路径,比如/var/log/php_errors.log):/var/log/php*.log {daily # 每天分割rotate 7# 保留最近7天日志compress# 压缩旧日志,省空间missingok # 日志文件丢了也不报错notifempty# 空文件不处理create 640 root adm # 新日志文件权限}保存后,logrotate会按配置自动开干(默认每天执行一次)。日志太多,很多时候是因为记录了太多无关紧要的信息。把日志级别调高,只记录关键错误(比如E_ERROR),就能有效“减肥”。
php.ini文件(路径看PHP版本,比如/etc/php/8.0/apache2/php.ini):error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING# 只记录错误,忽略提示和警告log_errors = On # 开启日志记录error_log = /var/log/php_errors.log # 日志文件路径/etc/apache2/sites-a vailable/example.conf)加这两行:php_admin_value error_log "/var/log/php_errors.log"php_admin_flag log_errors on改完记得重启Web服务(Apache/Nginx)让配置生效。日志增长过快,有时候是PHP-FPM进程太多或内存泄漏闹的。这时候得调整进程和内存限制。
/etc/php/8.0/fpm/pool.d/www.conf):pm = dynamic# 动态进程管理模式pm.max_children = 50# 最大子进程数(根据服务器内存调,1GB内存建议20-30)pm.start_servers = 5# 启动时的子进程数pm.min_spare_servers = 5# 最小空闲子进程数pm.max_spare_servers = 10 # 最大空闲子进程数pm.max_requests = 500 # 每个子进程处理500个请求后重启,防内存泄漏memory_limit = 128M # 每个PHP脚本的内存限制,别让单个脚本吃太多request_terminate_timeout = 30s # 脚本最大执行时间,超时就报错,别让它无休止耗着sudo systemctl restart php8.0-fpm# 把版本号换成实际用的如果日志已经占了大量空间,别犹豫,直接动手清理。
find /var/log/php_errors.log.* -mtime +30 -exec rm {} ;cron任务里,每天凌晨2点自动执行:crontab -e加上这行:0 2 * * * find /var/log/php_errors.log.* -mtime +30 -exec rm {} ;问题解决后,还得防着它再犯。设置监控工具,日志文件一超标就报警,心里就有底了。
monit监控日志文件大小(示例):sudo apt-get install monit编辑/etc/monit/conf.d/php.conf:check file php_errors with path /var/log/php_errors.logif size > 100M then alert# 日志超过100MB就发警报重启monit服务:sudo systemctl restart monit通过这几招,Ubuntu PHP日志的资源限制问题基本就能收拾得服服帖帖。当然,具体参数还得根据服务器实际配置(比如内存、磁盘空间)来微调,毕竟每台机器脾气都不一样。
上一篇:PHP日志中的并发问题怎么优化
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8