在進行任何升級操作前,務必備份以下內容,避免數據丟失:
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 Sury的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,步驟較復雜,推薦優先使用包管理器升級。