必须停进程→删主目录→清链接→去环境变量→扫配置残留→验证清零:先kill PHP 8.4进程并停Nginx/Apache,再rm -rf /usr/local/php84等安装目录,删/usr/local/bin下软链接,清除~/.bashrc等文件中PHP路径,查找删除php.ini及扩展目录,最后用php -v、which php、ps、find四命令验证全无输出。

手动编译安装的 PHP 8.4 没有包管理器记录,卸载必须靠人工定位、逐项清除。核心是:停进程 → 删主目录 → 清链接 → 去环境变量 → 扫配置残留 → 验证清零。不能只删 /usr/local/php 就算完。
停止所有 PHP 8.4 相关进程和服务
避免文件被占用导致删除失败或残留:
- 运行
ps aux | grep -E "(php|php-fpm)",找出含8.4或指向旧安装路径的进程(如/usr/local/php84/sbin/php-fpm) - 对每个匹配 PID 执行
kill -9 [PID];若为 php-fpm,优先用sudo /usr/local/php84/sbin/php-fpm -t测试后停服务:sudo kill $(cat /usr/local/php84/var/run/php-fpm.pid) - 若 PHP 与 Nginx/Apache 集成,先停 Web 服务:
sudo systemctl stop nginx或sudo systemctl stop apache2
删除源码安装主目录和二进制链接
PHP 8.4 编译时通常指定 --prefix,常见路径为 /usr/local/php84、/usr/local/php 或 /opt/php-8.4:
- 确认路径:
which php(如输出/usr/local/php84/bin/php),再查php --ini看配置加载位置 - 递归删除整个安装目录:
sudo rm -rf /usr/local/php84(请替换为你的实际路径) - 清理系统级软链接:
sudo rm -f /usr/local/bin/php /usr/local/bin/php-cgi /usr/local/bin/phpize /usr/local/bin/php-config
清除环境变量与 shell 配置
PATH 中残留路径会导致 php -v 仍能运行,即使二进制已删:
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
立即学习“PHP免费学习笔记(深入)”;
- 检查常用配置文件:
grep -n "php84\|/usr/local/php" ~/.bashrc ~/.zshrc /etc/profile /etc/environment - 删除含
export PATH=.../usr/local/php84/bin的整行,保存后执行:source ~/.zshrc(macOS Catalina+ 默认 zsh)或source ~/.bashrc - 验证:
echo $PATH不应再出现 PHP 8.4 路径
扫描并清理残留配置与扩展文件
配置文件、扩展库、临时缓存常散落在非主目录中:
- 查找
php.ini:sudo find /usr -name "php.ini" 2>/dev/null,重点检查/usr/local/etc/php/8.4/、/etc/php/8.4/、/usr/local/php84/etc/ - 删除扩展目录:
sudo rm -rf /usr/local/lib/php/extensions/no-debug-non-zts-20240827/(版本号按php -i | grep "extension_dir"输出为准) - 清空临时编译痕迹:
sudo rm -rf /tmp/php-8.4.* /var/tmp/php-8.4* - 若曾运行
make install后未清理源码目录,进入原解压路径(如/src/php-8.4.0)执行:make clean && cd .. && rm -rf php-8.4.0
最终验证是否彻底卸载
四项命令全部无有效输出,才算真正清零:
-
php -v→ 应提示command not found -
which php→ 无任何输出 -
ps aux | grep php84→ 无匹配进程 -
sudo find /usr -name "*php84*" 2>/dev/null→ 无结果(或仅剩无关日志/备份)


















