本质是XAMPP未正确引入httpd-xampp.conf配置文件,导致PHP处理器未启用;需确认httpd.conf中Include "conf/extra/httpd-xampp.conf"未被注释,并检查该文件内SetHandler application/x-httpd-php是否生效,同时排除端口占用及PHP配置路径错误。
XAMPP 中 Apache 无法加载 PHP 模块,本质不是“模块没装”,而是
里没正确关联已内置的 PHP 处理器——XAMPP 自带 PHP,但默认配置可能被改过、或因多版本冲突失效。
检查 XAMPP 的
php
_module 是否实际启用
XAMPP 的 Apache 并不靠
手动加载 so/dll,而是通过
引入专用配置。如果这行被注释或删了,PHP 就彻底失联。
打开
(Windows)或
(Linux/macOS)
搜索
,确认该行未被注释(即前面没有
)
若找不到这行,说明配置被重置过,需手动加回:
保存后运行
→ 点击 Apache 的 “Stop” 再 “Start”,不要只点 Restart
验证 httpd-xampp.conf 是否真在处理 .php 文件
即使
被引入,它内部仍需明确声明 PHP 处理器。XAMPP 6.0+ 默认用
,但旧版或手动改过的内容可能残留
或错误的
。
打开
查找包含
的
或
区块
确认存在类似以下内容(注意路径和 handler 名称必须匹配当前 PHP 版本):
如果看到
,保留它也行,但优先以
为准;两者共存不冲突,但顺序错可能导致覆盖
端口占用或服务冲突导致模块“假失败”
Apache 启动日志显示
,有时根本不是模块问题,而是 Apache 根本没起来——比如 80/443 端口被 Skype、IIS、甚至另一个 XAMPP 实例占着,导致
进程异常退出,后续模块加载自然失败。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
启动前先执行
(Windows)或
(macOS/Linux),看 PID 是谁
若 PID 对应非
或
,杀掉它:
(Windows)或
(其他系统)
再试启动;如果仍失败,查
,重点看第一行报错,不是最后几行
常见干扰项:Windows 自带的 IIS(
查状态)、Docker Desktop(默认占 80/443)、甚至 Zoom(旧版会抢 8080)
多 PHP 版本共存时的路径错位
XAMPP 控制面板右下角显示的 PHP 版本(如 8.2.12),和你命令行里
输出的版本不一致,说明系统 PATH 指向了外部 PHP,而 Apache 仍用 XAMPP 自带的。这时
加载路径容易混乱,扩展(如
)可能因依赖库版本不匹配而静默失败,最终表现为 PHP 页面空白或 500 错误。
在浏览器访问
,看顶部 “Loaded Configuration File” 路径是否为
如果不是,说明 Apache 没读到 XAMPP 的配置,极可能是
里
设置错了,或被其他配置覆盖
临时验证:把
复制一份到桌面,改名
,然后在
里显式指定:
(注意正斜杠)
重启 Apache,再刷
确认路径是否修正
真正卡住的地方,往往不是模块加载本身,而是 Apache 启动失败后你只盯着“php_module”报错,却没看前一行的“no listening sockets”或“AH00526”。先让 Apache 跑起来,PHP 模块才有机会被加载。
httpd.confLoadModule php_moduleInclude "conf/extra/httpd-xampp.conf"C:\xampp\apache\conf\httpd.conf/opt/lampp/etc/httpd.confhttpd-xampp.conf#Include "conf/extra/httpd-xampp.conf"xampp-control.exehttpd-xampp.confSetHandler application/x-httpd-phpAddTypeSetHandlerC:\xampp\apache\conf\extra\httpd-xampp.conf.phpAddHandler
SetHandler application/x-httpd-php
AddType application/x-httpd-php .phpSetHandlerCannot load php_modulehttpdnetstat -ano | findstr :80lsof -i :80httpd.exeapache2taskkill /PID 1234 /Fkill -9 1234C:\xampp\apache\logs\error.logsc query w3svcphp -vphp.iniextension=opensslhttp://localhost/dashboard/phpinfo.phpC:\xampp\php\php.inihttpd-xampp.confPHPINIDirC:\xampp\php\php.iniphp.ini.bakhttpd-xampp.confPHPINIDir "C:/xampp/php"phpinfo.php