在进行任何升级操作前,务必备份以下内容,避免数据丢失:
tar -czvf /path/to/website_backup.tar.gz /var/www/html(替换为实际网站根目录);mysqldump -u root -p --all-databases > /path/to/full-backup.sql(替换为实际数据库用户名);cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak、cp -r /etc/nginx/sites-available /etc/nginx/sites-available.bak、cp /etc/php/{旧版本}/fpm/php.ini /etc/php/{旧版本}/fpm/php.ini.bak(替换为实际PHP旧版本,如7.4)。运行以下命令,确保系统软件包列表为最新:
sudo apt update
sudo apt upgrade -y
Ubuntu默认仓库的PHP版本可能较旧,需添加Ondřej Surý的PHP PPA(提供最新稳定版):
sudo add-apt-repository ppa:ondrej/php
sudo apt update
通过以下命令列出PPA中可用的PHP版本,选择需要升级的目标版本(如8.0、8.1等):
apt-cache search php | grep -E 'php[0-9]+(\.[0-9]+){0,2}'
若旧版本PHP是通过apt安装的,可彻底卸载以避免冲突:
sudo apt remove --purge php* php*-fpm php*-mysql php*-curl php*-gd
sudo apt autoremove -y
替换{目标版本}(如8.0)为实际需要的版本,安装PHP核心包及常用扩展(如MySQL、GD、CURL等):
sudo apt install php{目标版本} php{目标版本}-fpm php{目标版本}-mysql php{目标版本}-curl php{目标版本}-gd php{目标版本}-mbstring php{目标版本}-xml php{目标版本}-zip -y
升级完成后,重启PHP-FPM以应用新版本:
sudo systemctl restart php{目标版本}-fpm
通过命令行和Web界面双重验证,确保升级成功:
php -v(显示PHP版本信息);/var/www/html/info.php文件,内容为<?php phpinfo(); ?>,通过浏览器访问http://服务器IP/info.php,确认显示的PHP版本与目标版本一致。验证后删除该文件(rm /var/www/html/info.php),避免安全风险。若Nginx的fastcgi_pass指令指向旧版PHP-FPM的socket或端口(如/run/php/php7.4-fpm.sock),需修改为新版路径(如/run/php/php{目标版本}-fpm.sock),并测试配置语法:
sudo nginx -t # 测试配置文件语法
sudo systemctl restart nginx # 重启Nginx
sudo apt --fix-broken install修复;./configure)、编译安装(make && sudo make install),并重新配置Nginx和PHP-FPM,步骤较复杂,推荐优先使用包管理器升级。