在 Ubuntu 上切换 PHP 版本,常见做法有 三种:update-alternatives(CLI)、Apache 切换模块、Nginx + PHP-FPM 切换池。下面按使用场景说明。
ls /usr/bin/php*
php -v
如果还没安装多个版本,可先安装,例如:
sudo apt update
sudo apt install php8.2 php8.1 php7.4
适用于 php -v、composer、artisan 等命令行工具。
sudo update-alternatives --config php
会显示类似:
1 /usr/bin/php8.2
* 2 /usr/bin/php8.1
3 /usr/bin/php7.4
输入编号回车即可。
验证:
php -v
sudo update-alternatives --set php /usr/bin/php8.1
sudo a2dismod php8.2
sudo a2enmod php8.1
sudo systemctl restart apache2
✅ 适用于:
libapache2-mod-phpls /run/php/
例如:
php8.1-fpm.sock
php8.2-fpm.sock
编辑:
sudo nano /etc/nginx/sites-available/default
找到:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
改为:
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx
php8.1 /usr/bin/composer install
| 使用场景 | 推荐方式 |
|---|---|
| 命令行 | update-alternatives |
| Apache | a2dismod / a2enmod |
| Nginx | 修改 PHP-FPM sock |
| 多项目 | 每个项目单独 PHP-FPM |
❓ 切换后没生效?
phpinfo() 显示的版本❓ Ubuntu 22.04 默认 PHP?
如果你愿意,可以告诉我:
我可以给你精确到命令级的操作方案。