温馨提示×

Linux服务器上PHP日志如何管理

小樊
40
2026-01-08 16:16:54
栏目: 云计算

在Linux服务器上,PHP日志的管理主要包括以下几个方面:

  1. 日志文件位置:PHP日志通常位于以下几个目录中:

    • Apache: /var/log/apache2/ 或 /var/log/httpd/
    • Nginx: /var/log/nginx/
    • PHP-FPM: /var/log/php-fpm/ 或 /var/log/php7.x-fpm/(x为PHP版本号)
  2. 日志级别:根据需要,可以调整PHP的日志级别。编辑php.ini文件,找到error_reportingdisplay_errors设置项,例如:

    error_reporting = E_ALL
    display_errors = Off
    

    可用的日志级别有:E_ALL, E_ERROR, E_WARNING, E_PARSE, E_NOTICE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_USER_ERROR。

  3. 日志轮转:为了避免日志文件过大,可以使用logrotate工具进行日志轮转。创建一个新的logrotate配置文件,例如/etc/logrotate.d/php,添加以下内容:

    /var/log/apache2/*.log {
        daily
        missingok
        rotate 7
        compress
        notifempty
        create 640 root adm
    }
    

    这个配置表示每天轮转一次日志,保留最近7天的日志,压缩旧日志,仅当日志文件非空时才轮转,创建新的日志文件权限为640。

  4. 清理过期日志:定期清理过期的日志文件,可以使用cron任务来实现。编辑crontab文件:

    crontab -e
    

    添加以下内容,每天凌晨1点执行日志清理脚本:

    0 1 * * * /usr/local/bin/php-log-clean.sh
    

    创建日志清理脚本php-log-clean.sh,并添加以下内容:

    #!/bin/bash
    LOG_DIR="/var/log/php-fpm"
    LOG_FILES=$(ls -1 ${LOG_DIR}/*.log | grep -vE '^(\.|total)$')
    for LOG_FILE in ${LOG_FILES}; do
        LOG_DATE=$(basename ${LOG_FILE} .log)
        LOG_AGE=$(date -d "${LOG_DATE}" +%s)
        CURRENT_AGE=$(date +%s)
        DAYS_OLD=$(( (CURRENT_AGE - LOG_AGE) / 86400 ))
        if [ $DAYS_OLD -gt 7 ]; then
            rm -f ${LOG_FILE}
        fi
    done
    

    保存并退出,然后给予脚本执行权限:

    chmod +x /usr/local/bin/php-log-clean.sh
    

通过以上步骤,可以有效地管理Linux服务器上的PHP日志。

0