适用于需要简单管理多个PHP版本(通过官方或第三方仓库)的场景,适合不想安装额外工具的用户。
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php # 添加ondrej/php仓库(支持PHP 5.6-8.3+)
sudo apt update
sudo apt install php7.4 php7.4-cli php7.4-fpm # 安装PHP 7.4及常用扩展
sudo apt install php8.0 php8.0-cli php8.0-fpm # 同时可安装多个版本
update-alternatives工具管理默认php命令:sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74 # 注册PHP 7.4
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.0 80 # 注册PHP 8.0
sudo update-alternatives --config php # 交互式选择默认版本
php -v确认当前默认PHP版本。适用于需要灵活管理多个PHP版本(包括编译安装)、自定义编译选项或在不同项目中快速切换版本的用户。
curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
chmod +x phpbrew.phar
sudo mv phpbrew.phar /usr/local/bin/phpbrew
phpbrew init,并按提示将环境变量添加到~/.bashrc或~/.zshrc:echo '[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc' >> ~/.bashrc
source ~/.bashrc
phpbrew install 7.4 +default +fpm +mysql +gd # 安装PHP 7.4及常用扩展
phpbrew switch 7.4phpbrew use 7.4phpbrew list)、卸载版本(phpbrew uninstall 7.4)、更新phpbrew(phpbrew update)。适用于需要隔离环境、避免污染主机系统或快速部署不同PHP版本的项目,适合现代DevOps流程。
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker pull php:7.4-fpm
docker run -d --name my-php-app -p 9000:9000 php:7.4-fpm
docker-compose.yml编排多个服务(如PHP-FPM+MySQL+Nginx)。无论使用哪种方法,若需要同一系统运行多个PHP版本,还需管理对应扩展:
sudo apt install php7.4-mbstring php7.4-xml # 为PHP 7.4安装扩展
sudo apt install php8.0-mbstring php8.0-xml # 为PHP 8.0安装扩展
sudo a2dismod php7.4 # 禁用PHP 7.4
sudo a2enmod php8.0 # 启用PHP 8.0
sudo systemctl restart apache2
fastcgi_pass指令指向对应PHP-FPM socket(如/run/php/php7.4-fpm.sock或/run/php/php8.0-fpm.sock)。以上方法覆盖了Debian系统下PHP版本控制的主要场景,可根据实际需求(如是否需要隔离、自动化程度)选择合适的方式。