當初使用 Ondřej Surý 的 PPA套件安裝(Apache / PHP )就是為了解決惱人的資安通報,果然網站上線沒多久通報就來了,這次主要有兩項要升級(Apache要高於2.4.64 / PHP要高於8.3.23),剛好來試看看傳說中的 PPA套件升級到底有多容易,以下是升級完整步驟紀錄
先備份檔案以防萬一
(但最終是沒用到備份檔,因為升級檔不會覆蓋到原始檔,這裡要給他5顆星的評價)
sudo mkdir -p /root/apache_backup_$(date +%Y%m%d)sudo cp /etc/php/8.3/apache2/php.ini /root/apache_backup_$(date +%Y%m%d)/
sudo cp /etc/apache2/sites-available/default-ssl.conf /root/apache_backup_$(date +%Y%m%d)/
sudo cp /etc/apache2/mods-available/ssl.conf /root/apache_backup_$(date +%Y%m%d)/
sudo cp /etc/apache2/apache2.conf /root/apache_backup_$(date +%Y%m%d)/
sudo cp /etc/apache2/conf-available/security.conf /root/apache_backup_$(date +%Y%m%d)/
sudo cp /etc/apache2/ports.conf /root/apache_backup_$(date +%Y%m%d)/
這樣所有重要設定就會備份到 /root/apache_backup_20251020/,如果升級後有任何異常,你只要:
sudo cp /root/apache_backup_20251020/* /etc/apache2/...
sudo systemctl reload apache2
就能一鍵復原(紅字為今天日期)
1、更新套件列表: sudo apt update
2、升級 Apache:sudo apt install --only-upgrade apache2
●重新整理未完成的套件:sudo dpkg --configure -a
●這一步會「接著跑未完成的安裝」,很多時候會問你:Restart apache2 now? [yes/no] 就選 yes。
●修復壞掉的套件:sudo apt --fix-broken install
●再重新升級一次:sudo apt install --only-upgrade apache2
完成以上步驟,就能修復原本卡在82%的問題,繼續後面的流程
3、檢查版本是否更新成功: apache2 -v 如果返回 Server version: Apache/2.4.64 或更高就沒問題
4、 檢查設定合併情況(diff):(或可省略跳過)
sudo diff /root/apache_backup_20251020/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf
5、重新啟動 Apache:sudo systemctl restart apache2
到這裡就完成Apache 升級工作,原本的設定檔像是ssl也都沒被覆蓋,真的很方便
再來升級PHP
1、更新套件清單 + 升級 PHP
sudo apt update
sudo apt install --only-upgrade php8.3 php8.3-cli php8.3-common \
libapache2-mod-php8.3 php8.3-curl php8.3-gd php8.3-mbstring php8.3-mysql \
php8.3-sqlite3 php8.3-xml php8.3-zip php8.3-intl php8.3-bcmath php8.3-imagick
說明:
--only-upgrade php8.3:避免裝上其他版本(例如 8.4)
一次列出常用模組,確保升級後版本一致
如果你有安裝其他 extension(例如 imagick、redis 等),記得也一併加上。
2、重新載入 Apache(或 FPM)
讓 Apache 重新載入 libapache2-mod-php8.3.so
如果你是 mod_php:
sudo systemctl restart apache2
如果是 PHP-FPM:
sudo systemctl restart php8.3-fpm
說明:讓 Apache 重新載入 libapache2-mod-php8.3.so
清空舊版本 PHP 的快取、Opcache、模組記憶體
確保整個網站從這一刻起用的都是 最新 PHP
3、驗證版本是否升級成功
輸入指令:php -v
應該會顯示:
PHP 8.3.26 (cli) (built: Sep 25 2025 ...)
只要比原先版本大就是更新成功
4、重新啟動 Apache
sudo systemctl restart apache2
這樣就完成(Apache / PHP )升級工作,不用半小時,非常順利,這個 Ondřej Surý 的 PPA套件真的是非常非常的讚,大推!!
以上工作心得分享,有需要的朋友可參考看看
工作心得撰寫:徐嘉裕Neil hsu
留言
張貼留言