phpenv install 命令依赖 php-build 插件,该插件需手动安装并执行 phpenv rehash;同时须预先装齐系统编译依赖(如 libonig-dev、libssl-dev 等),否则 configure 阶段会报错中断。

phpenv install 命令依赖 php-build 插件
直接运行 phpenv install 8.3.13 失败,通常不是因为命令写错,而是 php-build 插件没装。phpenv 本身不带编译能力,它只是调度器,真正下载、解压、配置、编译 PHP 源码的是 php-build —— 这个插件默认不会随 phpenv 自动安装。
手动安装方式(推荐):
- 先确认
~/.phpenv/plugins/php-build目录是否存在;不存在就执行:git clone https://github.com/php-build/php-build ~/.phpenv/plugins/php-build
- 如果已存在,建议更新:
cd ~/.phpenv/plugins/php-build && git pull
- 安装后必须运行
phpenv rehash,否则phpenv install命令不可见
系统级编译依赖必须提前装全
即使 php-build 就位,phpenv install 在 configure 阶段仍会因缺失系统库而中断,典型报错如:configure: error: off_t undefined; check your library configuration 或 curl/curl.h: No such file or directory。
不同系统需装的包不一样,但核心不能少:
立即学习“PHP免费学习笔记(深入)”;
- Ubuntu/Debian:
sudo apt-get install -y autoconf bison build-essential libssl-dev libcurl4-openssl-dev libreadline-dev zlib1g-dev libxml2-dev libsqlite3-dev libonig-dev - macOS(Homebrew):
brew install autoconf automake openssl@3 libxml2 libiconv sqlite3 oniguruma,并确保PATH包含brew --prefix/bin - CentOS/RHEL:
sudo yum groupinstall "Development Tools"+sudo yum install -y autoconf bison openssl-devel curl-devel readline-devel zlib-devel libxml2-devel sqlite-devel oniguruma-devel
漏掉 libonig-dev(或 oniguruma-devel)会导致 PHP 7.3+ 编译失败,这个点容易被忽略。
PHP 源码不手动下载,php-build 自动拉取
你不需要自己去 https://www.php.net/downloads.php 下源码包再解压——php-build 会根据版本号自动从官方镜像拉取对应 tar.xz 包,校验 SHA256,再解压编译。
但要注意两点:
- 国内网络可能卡在下载环节,可临时设置镜像源:
export PHP_BUILD_MIRROR=https://php.net/distributions
(实际填国内可信镜像,如阿里云或腾讯云 PHP 镜像站地址) - 某些旧版本(如 5.6.x)官方已下线,
php-build会报No version found;此时需手动下载源码到$(phpenv root)/plugins/php-build/share/php-build/definitions/并补定义文件,不推荐普通用户折腾
编译耗时长,失败后清理要手动
一次 phpenv install 8.3.13 通常耗时 5–15 分钟,期间若中断或失败,php-build 不会自动清理中间产物。下次重试前,建议先删掉残留:
- 清除未完成的构建目录:
rm -rf ~/.phpenv/versions/8.3.13
- 清除源码缓存(可选):
rm -f ~/.phpenv/cache/php-8.3.13.tar.xz
- 别忘了每次成功安装后都执行一次
phpenv rehash,否则which php仍指向旧版本
最易被忽略的是:切换版本后运行 php -v 没变化,大概率是 phpenv rehash 漏了,或者 shell 的 hash 表没刷新(可试 hash -d php 再 php -v)。



















