在 Debian 系统中设置 PHP 的默认版本,一般有两种常见场景:
CLI(命令行) 和 Web 服务(如 Apache / Nginx + PHP-FPM)。下面分别说明。
ls /usr/bin/php*
或使用:
update-alternatives --list php
update-alternativesupdate-alternatives --display php
sudo update-alternatives --config php
会看到类似:
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php7.4 74 manual mode
输入编号回车即可。
sudo update-alternatives --set php /usr/bin/php8.2
验证:
php -v
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
sudo update-alternatives --config phpize
sudo update-alternatives --config php-config
禁用旧版本,启用新版本:
sudo a2dismod php7.4
sudo a2enmod php8.2
sudo systemctl restart apache2
systemctl list-units --type=service | grep php
sudo systemctl disable --now php7.4-fpm
sudo systemctl enable --now php8.2-fpm
编辑站点配置:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
重载:
sudo systemctl reload nginx
sudo apt install -y lsb-release apt-transport-https ca-certificates
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
sudo apt update
| 场景 | 推荐方式 |
|---|---|
| CLI | update-alternatives --config php |
| Apache | a2enmod / a2dismod |
| Nginx | 修改 fastcgi_pass |
| 多版本共存 | ✅ PHP-FPM |
如果你愿意,可以告诉我:
我可以给你精确到命令级别的配置方案。