温馨提示×

centos php日志如何排错

小樊
50
2026-10-06 01:29:32
栏目: 编程语言

在 CentOS 上排查 PHP 报错,一般按「看日志 → 定位错误 → 查配置 → 复现/修复」的思路来。下面是一套比较实用的排错方法。


一、先确认 PHP 运行方式

不同方式,日志位置不同:

php -v
which php
ps aux | grep php

常见三种:

  • PHP-FPM(最常见,配合 Nginx/Apache)
  • Apache mod_php
  • PHP CLI(命令行)

二、查看 PHP 错误日志

1. PHP-FPM 日志

# 主错误日志
tail -f /var/log/php-fpm/error.log

# 慢日志(如有配置)
tail -f /var/log/php-fpm/www-slow.log

PHP-FPM 池日志(通常是 www.conf):

grep -n "log" /etc/php-fpm.d/www.conf

常见配置:

php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on

2. Apache + PHP 日志

tail -f /var/log/httpd/error_log

如果是 mod_php,PHP 错误一般写在 Apache 错误日志里。


3. Nginx + PHP-FPM

Nginx 错误日志:

tail -f /var/log/nginx/error.log

PHP 错误还是在 php-fpm 日志或 error_log 指定的文件。


4. PHP 自身错误日志

查看 php.ini:

php --ini

重点看:

display_errors = Off        ; 生产环境建议 Off
log_errors = On
error_log = /var/log/php/php_errors.log
error_reporting = E_ALL

如果没有设置 error_log,错误可能写到:

  • Apache/Nginx 日志
  • 或浏览器(display_errors=On 时)

三、打开详细错误(排错时)

临时开启(不推荐生产长期使用)

php.ini:

display_errors = On
error_reporting = E_ALL

或脚本里:

ini_set('display_errors', 1);
error_reporting(E_ALL);

四、常见 PHP 错误及排查点

1. 500 错误

看:

tail -f /var/log/php-fpm/error.log
tail -f /var/log/nginx/error.log

常见原因:

  • 语法错误
  • 权限不足
  • 内存超限

2. 权限问题

ls -l /var/www/html
ps aux | grep php-fpm

PHP-FPM 用户(如 apache / nginx):

grep user /etc/php-fpm.d/www.conf

修复示例:

chown -R nginx:nginx /var/www/html
chmod -R 755 /var/www/html

3. 内存/超时

php.ini:

memory_limit = 256M
max_execution_time = 30

4. 扩展缺失

php -m
php -i | grep extension_dir

安装示例:

yum install php-mysqlnd php-gd php-mbstring
systemctl restart php-fpm

五、实时排错技巧

# 实时看日志
tail -f /var/log/php-fpm/error.log

# 过滤错误
grep -i error /var/log/php-fpm/error.log

# CLI 调试
php -l file.php     # 语法检查
php file.php        # 直接运行看输出

六、排错顺序总结

  1. 确定 PHP 运行方式
  2. 找到对应日志文件
  3. 打开 log_errors
  4. 看具体报错信息
  5. 检查权限 / 配置 / 扩展
  6. 修复后重启服务

如果你愿意,可以把**具体报错日志或场景(Nginx/Apache、500/空白页/超时)**贴出来,我可以直接帮你定位。

0 踩