在 Debian 系统上升级 PHP,常见分为 系统自带源升级 和 第三方源升级(推荐)。下面给你一套常用且安全的做法。
php -v
同时查看已安装的 PHP 包:
dpkg -l | grep php
Debian 官方源 PHP 版本较旧,建议使用 Ondřej Surý 提供的 PHP 源(被广泛使用)。
sudo apt update
sudo apt install -y lsb-release apt-transport-https ca-certificates curl
curl -sSL https://packages.sury.org/php/README.txt | bash -
或直接:
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
sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl
查看可用版本:
apt-cache search php8
如果你只升级小版本(例如 8.2.1 → 8.2.10):
sudo apt update
sudo apt upgrade php*
⚠️ 官方源版本较旧,通常 不会提供 8.x 最新版。
sudo update-alternatives --config php
选择对应编号即可。
sudo a2dismod php8.1
sudo a2enmod php8.2
sudo systemctl restart apache2
Nginx 通常使用 PHP-FPM:
sudo systemctl stop php8.1-fpm
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
检查:
sudo systemctl status php8.2-fpm
同时修改 nginx 配置:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
sudo apt remove php8.1*
sudo apt autoremove
php -v
php -m
访问:
<?php phpinfo(); ?>
如果你愿意,可以告诉我: