xampp 无法单独卸载 php,因其与 apache、mysql 捆绑安装;禁用需注释 httpd.conf 中 loadmodule 和 addhandler 行并重启;彻底清理须删除 xampp/php/ 目录、清理环境变量及配置中 php 相关项;但 xampp 更新会覆盖手动修改,建议改用纯 apache 或 docker 方案。

直接回答:XAMPP 里没法「单独卸载 PHP」
XAMPP 是一个捆绑包,PHP 不是独立安装的组件,而是和 Apache、MySQL 一起打包进 xampp/ 目录的。你删掉 php/ 文件夹,Apache 就会启动失败——因为 httpd.conf 里硬编码了 LoadModule php_module modules/libphp.so 和 PHPIniDir 路径,服务根本起不来。
想让 Apache 不再用 PHP:注释掉配置并停用模块
这不是卸载,而是「禁用」。目标是让 Apache 正常运行,但不解析 .php 文件(返回 404 或直接下载)。
- 打开
xampp/apache/conf/httpd.conf - 找到包含
LoadModule php的行(例如LoadModule php_module modules/libphp.so),在前面加#注释掉 - 找到
AddHandler application/x-httpd-php .php或类似行,也一并注释 - 重启 Apache;此时访问
test.php会提示「文件不可执行」或直接下载源码
注意:php.exe 仍存在于 xampp/php/,命令行里还能调用,只是 Web 服务不再加载它。
彻底清理 PHP 运行痕迹:删目录 + 清环境变量
如果你确定不再需要命令行 PHP,且不介意手动维护 Apache 配置,可以删掉 PHP 相关文件,但必须同步处理残留依赖。
立即学习“PHP免费学习笔记(深入)”;
- 删除整个
xampp/php/目录 - 检查
xampp/apache/conf/extra/httpd-xampp.conf,删掉所有php相关的Alias和Directory块(比如指向/phpmyadmin的 PHP 依赖路径) - 确认系统环境变量里没有把
xampp/php/加入PATH,否则终端仍能调用旧版php - 删掉
xampp/php/php.ini备份(如php.ini.backup)避免混淆
删完后 Apache 可能报错「Cannot load modules/libphp.so」——说明你忘了注释 httpd.conf 里的模块加载行,得回头补上。
为什么别折腾「只留 Apache」:XAMPP 更新会覆盖你的修改
XAMPP 官方更新时会重写 httpd.conf 和 httpd-xampp.conf,你手动注释的行大概率被还原。下次点「Update Components」,PHP 模块又自动加载了。
- 真要长期不用 PHP,建议换用纯 Apache 发行版(如 ApacheLounge)
- 或者用 Docker 启一个最小化 Apache 容器:
docker run -p 8080:80 -v $(pwd)/htdocs:/usr/local/apache2/htdocs httpd - 如果只是临时避开元件冲突(比如本地已装新版 PHP),更稳妥的做法是改 Apache 端口、停用 XAMPP 的 Apache,用自己的 PHP + 其他 Web 服务器配合
最常被忽略的一点:很多人删了 php/ 目录就以为搞定了,结果某天 XAMPP 自动更新,Apache 启动失败还找不到原因——因为没人记得配置文件里那几行没注释。











