温馨提示×

如何利用CentOS PHP日志进行调试

小樊
49
2025-08-18 19:32:47
栏目: 编程语言

  1. 定位日志文件

    • PHP错误日志默认路径:
      • Apache:/var/log/httpd/error_log
      • Nginx+PHP-FPM:/var/log/php-fpm/error.log/var/log/nginx/error.log
      • 确认路径可通过查看 php.inierror_log 配置。
  2. 查看实时日志

    • 使用 tail -f 命令实时监控日志:
      sudo tail -f /var/log/php-fpm/error.log  # PHP-FPM日志
      sudo tail -f /var/log/httpd/error_log    # Apache日志
      
  3. 搜索关键错误

    • grep 过滤特定错误信息(如“error”“PHP Fatal”):
      sudo grep -i "error" /var/log/php-fpm/error.log
      
  4. 启用详细错误报告(开发环境)

    • 修改 php.ini 配置:
      error_reporting = E_ALL
      display_errors = On
      log_errors = On
      error_log = /var/log/php_errors.log  # 自定义路径需确保目录可写
      
    • 重启服务生效:
      sudo systemctl restart httpd   # Apache
      sudo systemctl restart php-fpm # PHP-FPM
      sudo systemctl restart nginx   # Nginx
      
  5. 使用Xdebug高级调试

    • 安装并配置Xdebug:
      sudo yum install php-xdebug
      
      php.ini 中添加:
      zend_extension=xdebug.so
      xdebug.mode=debug
      xdebug.client_host=127.0.0.1
      xdebug.client_port=9003
      xdebug.start_with_request=yes
      
    • 配合IDE(如PhpStorm)设置断点调试。
  6. 日志分析工具

    • 基础分析:用 awk 统计错误类型,或用 sort/uniq 去重统计。
    • 专业工具:部署ELK Stack(Elasticsearch+Logstash+Kibana)或Graylog进行可视化分析。
  7. 日志轮转管理

    • 避免日志过大,用 logrotate 配置定期压缩备份:
      编辑 /etc/logrotate.d/php-fpm,设置每日轮转、保留7天等规则。

注意:生产环境需关闭 display_errors,仅通过日志记录错误。

0