Apache未正确加载PHP模块或配置处理器会导致.php文件显示源码或500错误;需启用PHP模块、配置AddType/AddHandler、验证模块加载并解决处理器冲突。

如果您已安装 Apache 服务器和 PHP,但访问 .php 文件时仅显示源代码或提示“500 内部服务器错误”,则说明 Apache 尚未正确加载 PHP 模块或未配置 PHP 处理器。以下是实现 Apache 支持 PHP 的具体配置步骤:
一、启用 PHP 模块(Linux 系统,以 Apache2 + PHP8.1 为例)
Apache 需通过加载 php_module 来解析 PHP 文件。该模块通常随 php package 一同安装,但默认未启用。
1、确认 PHP 模块文件是否存在:/usr/lib/apache2/modules/libphp8.1.so(路径可能因 PHP 版本和发行版而异)。
2、执行命令启用模块:sudo a2enmod php8.1。
立即学习“PHP免费学习笔记(深入)”;
3、重启 Apache 服务:sudo systemctl restart apache2。
二、配置 Apache 虚拟主机识别 PHP 文件
Apache 必须明确告知哪些文件扩展名应交由 PHP 模块处理,否则会将 .php 文件作为纯文本返回。
1、编辑默认站点配置文件:/etc/apache2/sites-available/000-default.conf(或对应虚拟主机配置)。
2、在
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
3、保存文件后执行:sudo systemctl reload apache2。
三、在 httpd.conf 中手动加载 PHP 模块(Windows 系统)
Windows 下 Apache 通常不使用 a2enmod,需直接编辑主配置文件声明模块路径与处理器。
1、打开 Apache 安装目录下的 conf/httpd.conf 文件。
2、取消注释或添加模块加载行:LoadModule php_module "C:/php/php8apache2_4.dll"(路径需与实际 PHP 安装位置及 Apache 版本匹配)。
3、添加 PHP 处理器声明:AddHandler application/x-httpd-php .php 和 PHPIniDir "C:/php"(指向 php.ini 所在目录)。
4、保存后重启 Apache 服务:httpd -k restart(或通过服务管理器操作)。
四、验证 PHP 模块是否加载成功
Apache 启动时若模块路径错误或依赖缺失,将导致服务无法启动;运行中可通过配置检查确认模块状态。
1、执行命令检查已加载模块列表:apache2ctl -M | grep php(Linux)或 httpd -M | findstr php(Windows)。
2、查看输出中是否包含 php_module (shared)。
3、创建测试文件 /var/www/html/test.php(Linux)或 htdocs/test.php(Windows),内容为 。
五、修正 PHP 处理器优先级冲突
当 Apache 同时启用多个 PHP 版本模块(如 php7.4 和 php8.1),或存在其他处理器(如 proxy_fcgi)时,.php 请求可能被错误路由。
1、检查配置中是否存在重复的 AddHandler 或 SetHandler 指令,仅保留一条指向当前启用 PHP 模块的声明。
2、在虚拟主机配置中显式设置处理器作用域:
3、禁用冲突模块(如 mod_proxy_fcgi 对 .php 的覆盖):sudo a2dismod proxy_fcgi(仅当未使用 PHP-FPM 时)。











