首先检查PHP是否已安装及当前版本,确保基础环境正常:
php -v 若未安装,可通过以下命令安装PHP及常用扩展(以CentOS 7/8为例):
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml -y PHP的主配置文件路径需准确确认,避免修改错误文件:
php --ini 输出结果中,Loaded Configuration File 即为当前使用的php.ini路径(通常为/etc/php.ini)。若使用PHP-FPM,还需检查/etc/php-fpm.d/www.conf(或对应版本的/etc/php/7.x/fpm/pool.d/www.conf)。
若采用PHP-FPM处理PHP请求,需确保其服务正常运行:
sudo systemctl status php-fpm 若未运行,启动服务并设置开机自启:
sudo systemctl start php-fpm sudo systemctl enable php-fpm 根据使用的Web服务器(Apache/Nginx),检查PHP处理配置是否正确:
/etc/nginx/conf.d/default.conf)中添加PHP处理块:location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # 若使用端口则改为127.0.0.1:9000 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } LoadModule php7_module modules/libphp7.so)且启用了.php文件类型:AddType application/x-httpd-php .php 修改配置后,重启Web服务器:
# Nginx sudo systemctl restart nginx # Apache sudo systemctl restart httpd 创建info.php文件,通过浏览器验证PHP是否能正常解析:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php 在浏览器中访问http://服务器IP/info.php,若显示PHP信息页面(包含版本、配置项、已启用扩展等),则说明PHP配置基本正确。测试完成后,务必删除该文件(sudo rm /var/www/html/info.php),避免泄露服务器信息。
确认所需扩展(如mysqlnd、gd、mbstring)已安装并启用:
php -m # 列出已启用扩展 若扩展未启用,可通过编辑php.ini取消对应行的注释(如extension=mysqli),或使用yum安装扩展:
sudo yum install php-mysqli php-gd php-mbstring -y 若配置后出现错误,需通过日志排查具体原因:
/var/log/php-fpm/error.log(PHP-FPM)或/var/log/httpd/error_log(Apache);/var/log/nginx/error.log(Nginx)或/var/log/httpd/error_log(Apache)。nginx/apache)对PHP文件及目录有读取权限:chown -R nginx:nginx /var/www/html # 若使用Nginx chmod -R 755 /var/www/html Enforcing模式,可能阻止PHP访问文件,可临时设置为Permissive模式测试:sudo setenforce 0 若问题解决,需调整SELinux策略(如setsebool -P httpd_execmem on)或永久禁用(不推荐)。通过以上步骤,可全面检查CentOS下PHP配置的正确性,并解决常见问题。若仍有疑问,可根据错误日志进一步排查。