在 CentOS 上修复 PHP 错误,通常要从 定位错误 → 查看日志 → 根据类型解决 这个思路来。下面给你一套通用且实战型的排查与修复流程。
php -v
常见组合:
mod_php)或 Nginx + PHP-FPM/var/log/php-fpm/error.log
或:
/var/log/php-fpm/www-error.log
查看方式:
tail -f /var/log/php-fpm/error.log
/var/log/httpd/error_log
/var/log/nginx/error.log
查看 php.ini 中的配置:
php --ini
编辑 php.ini(路径可能不同):
vim /etc/php.ini
重点检查:
display_errors = Off
log_errors = On
error_log = /var/log/php_error.log
修改后重启服务:
systemctl restart php-fpm
排查顺序:
tail -f /var/log/php-fpm/error.log
tail -f /var/log/nginx/error.log
常见原因:
例如:
Class 'PDO' not found
解决:
yum install php-pdo php-mysql
常见扩展:
yum install php-gd php-mbstring php-xml php-curl
CentOS 8 / Stream:
dnf install php-json php-zip
错误示例:
Permission denied
修复:
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
如果是 Nginx:
chown -R nginx:nginx /var/www/html
例如:
syntax error, unexpected '?'
原因:PHP 7.0 以下不支持 ??
解决:升级 PHP
yum install epel-release
yum install yum-utils
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php81
yum install php php-fpm
systemctl status php-fpm
常见错误:
检查配置:
php-fpm -t
在 php 文件顶部加:
ini_set('display_errors', 1);
error_reporting(E_ALL);
⚠️ 生产环境不要长期开启
✅ 检查日志
✅ 检查 php-fpm 状态
✅ 检查缺少扩展
✅ 检查目录权限
✅ 检查 PHP 版本
你可以直接把以下信息发我:
php -v)我可以 一步一步告诉你具体要执行什么命令 ✅