在 Ubuntu 上配置(切换/管理)PHP 版本,常见做法取决于你是通过 APT 安装 还是 编译安装。下面以 最常用、最安全的方式(APT + 多版本并存) 为主,并涵盖 Apache / Nginx 的配置。
php -v
Ubuntu 自带仓库的 PHP 版本可能较旧,建议先添加 ondrej/php PPA(支持多版本):
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
例如同时安装 PHP 7.4、8.1、8.2:
sudo apt install php7.4 php7.4-cli php7.4-fpm
sudo apt install php8.1 php8.1-cli php8.1-fpm
sudo apt install php8.2 php8.2-cli php8.2-fpm
可根据需要安装模块:
sudo apt install php8.2-mysql php8.2-curl php8.2-xml php8.2-mbstring
update-alternatives --list php
sudo update-alternatives --config php
按提示选择版本即可。
验证:
php -v
sudo a2dismod php7.4
sudo a2enmod php8.2
sudo systemctl restart apache2
⚠️ 如果使用 PHP-FPM + Apache(推荐),见下方
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo systemctl restart apache2
切换版本:
sudo a2disconf php7.4-fpm
sudo a2enconf php8.2-fpm
sudo systemctl restart apache2
sudo systemctl stop php7.4-fpm
sudo systemctl start php8.2-fpm
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
重启 Nginx:
sudo systemctl restart nginx
创建测试文件:
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
✅ 可以
update-alternativesphp-fpm.sock| Ubuntu | 推荐 PHP |
|---|---|
| 20.04 | 7.4 / 8.1 |
| 22.04 | 8.1 / 8.2 |
sudo apt purge php7.4*
sudo apt autoremove
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的方案。