应执行sudo apachectl -t -d dump_modules | grep php确认模块加载,正常输出php_module (shared);若无输出则未启用,还需检查配置中loadmodule行是否生效及phpinfo()中“loaded modules”是否含php。

要确认 Apache 是否已正确加载 PHP 模块,不能只看 PHP 自身是否安装,关键得查 Apache 进程中实际启用的模块。因为即使 PHP 已装好,若 Apache 没加载对应模块(如 php_module),.php 文件仍会显示源码或报错。
用命令行快速查看已加载的 PHP 相关模块
在终端执行以下任一命令(根据系统选择):
- Ubuntu/Debian:
sudo apache2ctl -M | grep php - CentOS/RHEL/openEuler:
sudo httpd -M | grep php - 通用兼容写法(所有平台):
sudo apachectl -t -D DUMP_MODULES | grep php
正常输出类似:php_module (shared)——说明 PHP 模块已动态加载;若无输出或提示“not found”,则未启用。
通过 PHP 脚本验证(Web 环境下更直观)
新建一个 info.php 放入网站根目录(如 /var/www/html/ 或 XAMPP/htdocs/),内容为:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
<?php phpinfo(); ?>
访问 http://localhost/info.php,向下滚动找到 “Loaded Modules” 区域,检查列表中是否包含 core、http_core 和 php(注意不是 mod_php,而是 php 或 php7 / php8 等模块名)。
检查配置文件是否真正启用了模块
Apache 不是靠 PHP 安装自动加载模块的,必须有对应的 LoadModule 行生效:
- Ubuntu/Debian:运行
sudo a2enmod php8.1(版本号需匹配你安装的 PHP)后,会自动生成/etc/apache2/mods-enabled/php8.1.load - CentOS/RHEL:打开
/etc/httpd/conf.modules.d/10-php.conf,确认存在未注释的行,例如:LoadModule php_module modules/libphp.so - Windows/XAMPP:打开
apache/conf/httpd.conf,查找类似LoadModule php_module "C:/php/php8apache2_4.dll"的行,且前面没有#
补充:PHP 扩展 ≠ Apache PHP 模块
注意区分两个概念:
-
Apache 加载的 PHP 模块:指让 Apache 能解析 .php 文件的底层桥接模块(如
php_module),它本身不提供函数功能 -
PHP 扩展(extensions):比如
mysqli、curl、openssl,它们由php.ini中的extension=控制,属于 PHP 引擎内部功能,不影响 Apache 是否能执行 PHP
查看 PHP 扩展可用 php -m 或 phpinfo() 的 “Additional Modules” 部分,但这不能代替验证 Apache 是否加载了主 PHP 模块。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










