在 Debian 上升级 PHP 的推荐做法
一 准备与环境确认
二 标准升级步骤 Debian 10/11/12 以下步骤使用 Ondřej Surý 的 Debian PHP 仓库(安全、及时,适用于 Debian 10+)。
sudo apt update
sudo apt install -y apt-transport-https lsb-release ca-certificates curl gnupg
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
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/php.list > /dev/null
sudo apt update
apt-cache policy php
# CLI 与常用扩展
sudo apt install -y php8.3 php8.3-cli php8.3-fpm php8.3-mysql php8.3-curl \
php8.3-mbstring php8.3-xml php8.3-zip php8.3-gd php8.3-intl php8.3-bcmath php8.3-opcache
# 如需 Apache 模块方式
sudo apt install -y libapache2-mod-php8.3
# 如需 CLI 与 FPM 共存,可同时安装对应版本
说明:
sudo a2dismod php8.2 || true
sudo a2enmod php8.3
sudo systemctl restart apache2
sudo systemctl restart php8.3-fpm nginx
php -v
php -m | sort
# 可选:创建 info.php 验证 Web 端
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
# 访问 http://服务器IP/info.php 后记得删除
# 查看仍安装的旧包
apt list --installed | grep php | grep -E '^php[0-9]\.'
# 移除旧版本(示例:移除 8.2)
sudo apt purge -y php8.2*
# 清理无用依赖
sudo apt autoremove -y
提示:若多站点使用不同 PHP 版本,可保留多个版本并分别配置 FPM 或 Apache 多模块,通过站点配置选择对应版本。
三 常见问题与处理
四 仅更新安全补丁与日常维护
sudo apt update && sudo apt upgrade
# 若使用 FPM,确保服务重启以加载新二进制
sudo systemctl restart php8.3-fpm