You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP7.4-fpm日志无法写入:仅显示日志重开通知求助

问题原因及解决方法

可能原因

  • 日志轮转后文件句柄未正确绑定:系统通过logrotate管理日志时,会重命名原日志文件并创建新文件。如果轮转配置未正确向PHP-FPM主进程发送USR1信号触发日志重开,或信号发送后进程未正确处理,会导致FPM继续往旧的已重命名文件写入,而新文件仅显示重开提示。
  • 磁盘资源耗尽:磁盘空间不足或inode耗尽,即使权限正常也无法写入日志。
  • PHP-FPM进程异常:主进程或子进程的文件描述符泄漏、状态异常,导致日志重开操作未生效。

解决步骤

  1. 手动触发日志重开
    直接向PHP-FPM主进程发送USR1信号,强制重新打开日志文件句柄:

    pkill -USR1 php-fpm7.4
    

    之后用PHP脚本测试日志写入,查看新日志是否正常生成。

  2. 检查日志轮转配置
    打开/etc/logrotate.d/php7.4-fpm(路径可能因系统不同略有差异),确认postrotate段包含正确的信号发送命令:

    postrotate
        /usr/bin/pkill -USR1 php-fpm7.4
    endscript
    

    若配置缺失或错误,补充后保存,下次轮转时自动生效。

  3. 验证磁盘资源

    • 执行df -h检查目标磁盘是否已满,清理无用文件释放空间;
    • 执行df -i检查inode是否耗尽,删除大量小文件或调整inode配置(需重启系统)。
  4. 重启PHP-FPM服务
    若上述方法无效,直接重启服务强制进程重新初始化所有资源:

    systemctl restart php7.4-fpm
    
  5. 快速验证权限(排除隐性问题)
    即使之前权限正常,也可快速确认:

    ls -l /var/log/php7.4-fpm.log
    sudo -u www-data echo "test log entry" >> /var/log/php7.4-fpm.log
    

    若手动写入失败,说明权限或SELinux等机制存在问题,需进一步调整。

内容的提问来源于stack exchange,提问作者Obada Qafisheh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 04:27:04