在CentOS系统中,PHP错误日志的位置取决于Web服务器(Apache/Nginx)和PHP运行模式(如PHP-FPM)。常见路径如下:
/var/log/httpd/error_log或/var/log/apache2/error.log;/var/log/nginx/error.log,PHP-FPM自身错误日志通常位于/var/log/php-fpm/error.log或/run/php-fpm/www-error.log;php.ini中的error_log参数(可通过php --ini命令找到php.ini路径)。使用tail -f命令实时监控日志文件的新增内容,便于快速捕捉最新错误:
# 查看PHP-FPM错误日志(常见路径)
sudo tail -f /var/log/php-fpm/error.log
# 查看Apache错误日志
sudo tail -f /var/log/httpd/error_log
# 查看Nginx错误日志
sudo tail -f /var/log/nginx/error.log
若需搜索特定关键字(如“error”“fatal”),可结合grep命令:
sudo grep "error" /var/log/php-fpm/error.log
在开发环境中,可通过修改php.ini开启详细错误显示,让错误信息直接输出到浏览器(生产环境务必关闭,避免敏感信息泄露):
; 打开所有错误报告
error_reporting = E_ALL
; 开启错误显示(浏览器中可见)
display_errors = On
; 开启错误日志记录(同时写入日志文件)
log_errors = On
; 指定自定义日志路径(需确保PHP进程有写入权限)
error_log = /var/log/php_errors.log
修改后重启Web服务(Apache/Nginx/PHP-FPM)使配置生效:
# 若使用Apache
sudo systemctl restart httpd
# 若使用Nginx+PHP-FPM
sudo systemctl restart nginx
sudo systemctl restart php-fpm
错误日志中的每条记录通常包含时间戳、错误级别(如Parse Error、Fatal Error、Warning)、错误消息、文件名及行号。例如:
[2025-10-02 10:00:00] ERROR: Parse error: syntax error, unexpected ';' in /var/www/html/index.php on line 15
通过上述信息可直接定位到问题代码的位置(如/var/www/html/index.php的第15行),结合上下文检查语法错误、变量未定义、数据库连接失败等问题。
php.ini(如zend_extension=xdebug.so)。print_r($variable)或var_dump($variable),输出变量值以检查数据是否符合预期(适用于简单变量检查)。try-catch块捕获异常,避免程序崩溃并输出详细错误信息:try {
// 可能出错的代码
$result = $db->query("SELECT * FROM users");
} catch (PDOException $e) {
echo "数据库错误:" . $e->getMessage();
}
php -v查看版本,使用Remi仓库升级PHP。Call to undefined function mysql_connect()),需安装对应扩展(如sudo yum install php-mysqlnd)并重启服务。php.ini中的memory_limit(内存限制)、max_execution_time(执行时间)等参数,若资源不足会导致脚本终止,调整后重启服务。