在 Ubuntu 上切换 PHP 版本,常见有 CLI(命令行) 和 Web(Apache/Nginx) 两种场景。下面分别说明。
ls /usr/bin/php*
# 或
dpkg -l | grep php | grep -E 'php[0-9]'
sudo update-alternatives --set php /usr/bin/php8.1
或交互式选择:
sudo update-alternatives --config php
验证:
php -v
sudo a2dismod php7.4
sudo a2enmod php8.1
sudo systemctl restart apache2
查看当前:
apache2ctl -M | grep php
Nginx 本身不处理 PHP,是通过 php-fpm 实现的。
sudo systemctl stop php7.4-fpm
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
然后:
sudo nginx -t
sudo systemctl reload nginx
如果你是用 ppa:ondrej/php:
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.4 php8.1 php8.2
✅ Composer 报错版本不对
php8.1 /usr/local/bin/composer
✅ Web 和 CLI 版本不一致
update-alternatives如果你告诉我:
我可以给你精确命令。