温馨提示×

centos php为何无法解析

小樊
54
2026-09-02 18:34:14
栏目: 编程语言

在 CentOS 上 PHP 无法解析(浏览器直接下载 .php 文件或显示源码),通常不是 PHP 本身坏了,而是 Web 服务器没有把 .php 交给 PHP 处理。下面按最常见原因逐个排查。


一、最常见原因(90% 的情况)

1️⃣ Apache 没装 / 没启用 PHP 模块

CentOS 常见组合是 Apache + PHP

检查 PHP 是否安装

php -v

如果没有:

yum install php -y

检查 Apache PHP 模块

httpd -M | grep php

应看到类似:

php7_module (shared)

如果没有:

yum install php php-cli php-common -y
systemctl restart httpd

2️⃣ Apache 没有解析 PHP 的配置

编辑或确认配置文件:

vim /etc/httpd/conf/httpd.conf

确保有:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

或(PHP-FPM 方式):

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/www.sock|fcgi://localhost/var/www/html/$1

修改后:

systemctl restart httpd

3️⃣ 使用的是 PHP-FPM 但没启动

systemctl status php-fpm

如果没运行:

systemctl start php-fpm
systemctl enable php-fpm

二、Nginx 常见原因(不是 Apache)

如果你用的是 Nginx:

1️⃣ 没有 fastcgi 配置

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

然后:

nginx -t
systemctl restart nginx

三、SELinux 导致(CentOS 特有)

getenforce

如果是 Enforcing:

setenforce 0

永久关闭(不推荐生产):

vim /etc/selinux/config
SELINUX=disabled

四、文件权限问题

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

五、快速自检清单 ✅

  • [ ] php -v 正常
  • [ ] Apache/Nginx 已重启
  • [ ] .php 文件被正确处理(不是下载)
  • [ ] 访问 <?php phpinfo(); ?> 能显示

六、如果你愿意,我可以精准帮你

请告诉我:

  1. CentOS 版本(7 / 8 / Stream)
  2. Web 服务(Apache / Nginx)
  3. PHP 版本
  4. 报错现象(下载 / 空白 / 源码)

我可以直接给你 对应版本的完整配置。

0 踩