phpenv安装需克隆官方镜像仓库https://gitcode.com/gh_mirrors/ph/phpenv,配置PATH与eval "$(phpenv init -)"并重载配置文件;安装PHP前须先装构建依赖及php-build插件,再执行phpenv install并rehash;支持global、local(生成.phpenv-version)、shell三级版本切换,优先级为shell>local>global。

直接用 git clone 拉官方镜像仓库是最稳妥的方式,所谓“最新版下载”不存在独立安装包,phpenv 本身是纯 Bash 脚本工具,没有二进制发布机制。
怎么装 phpenv:别下错地址,认准镜像源
官方 GitHub 原仓库(phpenv/phpenv)已归档,当前维护的稳定镜像是 https://gitcode.com/gh_mirrors/ph/phpenv。所有教程里写 git clone https://github.com/phpenv/phpenv 的,现在都会失败或拉到过期代码。
- 执行:
git clone https://gitcode.com/gh_mirrors/ph/phpenv ~/.phpenv - 确认克隆成功后,
ls ~/.phpenv/bin/应能看到phpenv可执行文件 - 如果提示
phpenv: no such command 'init',说明克隆不完整,删掉~/.phpenv重来一次
PATH 和 init 必须配对生效,否则 which php 还是系统自带的
只加 PATH 不跑 eval "$(phpenv init -)",或者反过来,都会导致 php 命令不走 phpenv 管理的 shims —— 表现就是 php -v 显示老版本,phpenv versions 却有新版本。
- Bash 用户写入
~/.bash_profile或~/.bashrc:export PATH="$HOME/.phpenv/bin:$PATH"eval "$(phpenv init -)" - Zsh 用户对应改
~/.zshrc - 写完必须
source ~/.bash_profile(或对应文件),不能只靠exec $SHELL -l—— 后者不读取未登录 shell 配置
装 PHP 版本前先装依赖,否则 90% 会卡在 configure 阶段
phpenv 本身不编译 PHP,它调用 php-build 插件完成编译。Ubuntu/Debian 系统缺依赖时,错误通常停在 configure: error: unrecognized options: --with-libdir 或类似 OpenSSL、cURL 相关报错。
- 先装基础构建工具:
sudo apt-get install -y autoconf bison build-essential libssl-dev libcurl4-openssl-dev libreadline-dev zlib1g-dev - 再装 php-build 插件:
git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build - 然后才能跑:
phpenv install 8.3.13(注意:不是所有小版本都预编译好,8.3.x 大多需本地编译) - 每次
install后必须运行phpenv rehash,否则php命令找不到新版本
local / global / shell 三种切换方式的实际效果差异
很多人以为 phpenv local 7.4.33 是“永久绑定项目”,其实它只是在当前目录生成一个 .phpenv-version 文件,靠 shell hook 读取。一旦你 cd 出去或换终端,就失效了。
-
phpenv global 8.3.13:写入~/.phpenv/version,影响所有未设 local 的目录 -
phpenv local 7.4.33:在当前目录生成.phpenv-version,内容就是7.4.33,Git 提交这个文件可共享版本约定 -
phpenv shell 8.0.28:设置当前 shell 环境变量PHPENV_VERSION=8.0.28,关掉终端即消失 - 优先级是:shell > local > global。但要注意:如果
local在子目录,父目录的local不会继承,必须每层手动设
最易被忽略的一点:phpenv 的 shims 机制依赖 PATH 中 ~/.phpenv/shims 在系统 /usr/bin 或 /usr/local/bin 之前。如果装过 Homebrew PHP 或 deb 包 PHP,它们的路径可能更靠前,此时 which php 仍指向旧版本,得手动调整 PATH 顺序或卸载冲突版本。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











