跳转到帖子
在手机APP中查看

一个更好的浏览方法。了解更多

PHP论坛人

主屏幕上的全屏APP,带有推送通知、徽章等。

在iOS和iPadOS上安装此APP
  1. 在Safari中轻敲分享图标
  2. 滚动菜单并轻敲添加到主屏幕
  3. 轻敲右上角的添加按钮。
在安卓上安装此APP
  1. 轻敲浏览器右上角的三个点菜单 (⋮) 。
  2. 轻敲添加到主屏幕安装APP
  3. 轻敲安装进行确认。

Invision Community 5.0.0 ~ 5.0.x 之間的論壇版本升級

精选回复

------------------------------------
檢查磁碟空間
------------------------------------

df -h /var/www /var/backups

備份會同時佔用資料庫備份與網站檔案備份的額外空間,若磁碟餘裕不足(建議至少保留 2 倍於目前網站資料夾大小的空間),

應先清理或擴充磁碟,避免備份過程中磁碟寫滿導致備份檔案損毀。




------------------------------------
暫時關閉論壇(維護)
------------------------------------

目的:避免升級過程中,會員操作導致資料寫入錯誤或不一致

論壇後端 -> 系統 -> 一般配置 -> 關閉或開啟論壇 -> x 關閉

關閉的原因 -> 建議填寫明確資訊,例如:「系統升級維護中,預計於 XX:XX 完成,造成不便敬請見諒」。

儲存 ->







-----------------------------------
下載Invision Community最新版本
-----------------------------------

建議在本機(例如 Windows)先解壓縮檢查內容,雖然升級是採「直接覆蓋檔案」的方式,但可以先刪除不必要的檔案

再重新壓縮為 ips.zip









------------------------------------
先備份資料庫、網站目錄
------------------------------------

升級前先備份DB資料庫、Web網站目錄,避免升級失敗無法回復

備份指令

bash /usr/local/sbin/backup.sh



備份完成後,務必確認備份檔案確實產生且大小合理(非 0 byte 或異常過小),

可搭配既有的 check_backup.sh 備份監控腳本再次確認

備份監控指令

bash /usr/local/sbin/check_backup.sh







-------------------------
停止Nginx (重要)
-------------------------

在進行檔案替換前,請務必先停止Nginx,確保檔案替換時不會產生衝突

systemctl stop nginx



為什麼要先停?

避免解壓縮覆蓋檔案的過程中,剛好有使用者請求正在讀取半新半舊、狀態不一致的檔案,造成前台顯示錯誤或資料異常。



----------------------------------------------------------------------
使用SFTP上傳Invision Community論壇的最新版本 (ips.zip)
----------------------------------------------------------------------

使用SFTP上傳最新版本 ips.zip

SSH登入,前往論壇根目錄,解壓縮Invision Community 最新版本並覆蓋檔案

cd /var/www/域名.com




確認已安裝 unzip

which unzip || apt install unzip -y




解壓縮前的安全防護:排除本地設定檔(unzip -o 會強制覆蓋同名檔案)

雖然IPS官方發行包通常不包含 conf_global.php(資料庫連線設定)與 constants.php(Redis 連線設定)這類站台專屬的本地設定檔,

但為求保險,解壓縮時建議明確排除這兩個檔案,避免萬一官方包內剛好含有同名範例檔案,導致正式站設定被覆蓋:

提醒:若站台還有其他自訂、且不屬於官方發行包內容的檔案(例如自訂的 robots.txt、自訂上傳目錄內的設定檔),也應一併加入 -x 排除清單,避免被官方包覆蓋。


unzip -o ips.zip -x "conf_global.php" "constants.php"






解壓縮完成後刪除壓縮檔

rm ips.zip




修正擁有者與權限

chown -R www-data:www-data /var/www/域名.com

cd /var/www/域名.com





確認輸出顯示為 www-data www-data
ls -l




為了主機安全,設定標準檔案權限

將所有「目錄」設為 755
find /var/www/域名.com -type d -exec chmod 755 {} +


將所有「檔案」設為 644
find /var/www/域名.com -type f -exec chmod 644 {} +




效能提醒:find 搭配 -exec ... +(一次傳入多個檔案給 chmod,減少呼叫次數,效果等同於但通常快於逐一呼叫的 -exec ... \; 寫法)

對大量檔案的論壇目錄執行權限遞迴修改,在 2 vCPU 主機上仍屬於中度 I/O 密集操作,若網站檔案數量龐大(例如附件、圖片眾多),

這個步驟可能需要數分鐘,屬正常現象,不需要中途取消重跑。




----------------------------------
強化設定檔權限
----------------------------------

修改權限為 640

chmod 640 /var/www/域名.com/conf_global.php

chmod 640 /var/www/域名.com/constants.php



重點提醒:權限遞迴指令會把目錄下所有檔案統一改為 644,這會把 conf_global.php 與 constants.php 原本加固過的 640 權限打回原形。

因此權限加固步驟必須放在遞迴設定之後執行,順序不可顛倒,這是許多教學文章容易忽略的細節。







--------------------------------------
啟動Nginx
--------------------------------------

測試語法
nginx -t


啟動Nginx,啟動Web服務
systemctl start nginx


狀態
systemctl status nginx


重啟PHP
systemctl restart php8.3-fpm





------------------------
升級論壇
------------------------

瀏覽器進入論壇

https://域名.com/admin/upgrade/


依照畫面指示,登入管理員帳號 -> 開始升級過程 -> 完成升級



注意:升級過程請勿關閉瀏覽器分頁或中斷網路連線,中途中斷可能導致資料庫結構更新到一半,造成資料不一致,屆時只能依賴前面備份的資料庫還原重來。

若升級項目較多、耗時較長,建議保持該分頁在前景執行,避免瀏覽器將背景分頁的網路請求延遲處理。





----------------------------------
升級完成後,開啟論壇
----------------------------------


論壇後端 -> 系統 -> 一般配置 -> 關閉或開啟論壇 -> v (是) -> 儲存



論壇後端 -> 系統 -> 獲得支援 -> 清除系統快取

在「獲得支援」頁面,論壇通常會主動提示尚待處理的問題(例如缺少的 PHP 擴充套件、檔案權限異常等),請逐項確認排除,不要略過。








------------------------
更新中文語言包
------------------------


如果有新版本的IPS中文包,則需要更新(覆蓋),請依照說明進行覆蓋更新


更新前建議同樣先備份現有語言包檔案,避免新語言包翻譯不完整導致部分介面顯示空白或英文原文






------------------------
重建網站地圖
------------------------

論壇後端 -> 系統 -> 搜尋引擎最佳化 -> 右上方的 重建網站地圖




----------------------------------
重建搜尋索引
----------------------------------

論壇後端 -> 系統 -> 搜尋 -> 右上方的 重建搜尋索引 -> 同意


若已啟用 Elasticsearch/OpenSearch,重建搜尋索引請務必參照資源監控建議(離峰時段執行、全程監控記憶體),避免在 2GB RAM 主機上造成 OOM。

部分版本升級可能連帶調整搜尋索引的欄位結構(mapping),即使原本索引狀態正常,升級後仍建議完整重建一次,確保搜尋結果與新版程式邏輯一致。




-----------------------------------------------
升級後完整驗證
-----------------------------------------------

[ ] 前端首頁、主題頁、會員個人頁、發文功能實際操作測試一輪



[ ] 後端各主要功能頁面(會員管理、外掛管理、系統設定)能正常開啟

若使用第三方插件或模板主題,也請準備升級新版本

升級後請測試論壇功能,若有問題,在論壇後端的支援頁,關閉部分第三方插件,確認是否為第三方插件的問題



[ ] 檢查論壇系統日誌是否有新增的錯誤或警告

論壇後端 -> 系統 -> 支援 -> 系統日誌



[ ] 確認排程任務(Cron / IPS論壇背景任務)仍正常執行:

cat /etc/cron.d/forum-backup


並在論壇後端「系統 -> 進階配置 -> 使用Cron (推薦) -> 日常維護任務需要定期執行。瀏覽任務 -> 任務」頁面確認任務執行紀錄是否持續更新。



[ ] 若使用 Redis / Valkey,確認快取引擎狀態仍顯示為 Redis(升級過程有極小機率會重置部分設定):

論壇後端 -> 系統 -> 獲得支援



[ ] 若使用 Elasticsearch/OpenSearch,確認搜尋引擎狀態仍正常,且可實際搜尋出結果,而非僅看連線狀態顯示正常。



[ ] 確認 TLS 憑證與 HTTPS 訪問正常(憑證自動化不受論壇程式升級影響,但仍建議順手確認):

curl -I https://域名.com/



[ ] 觀察系統資源是否恢復正常水位,排除升級過程殘留的異常高負載:

htop


free -h



[ ] 確認 conf_global.php 與 constants.php 的權限仍維持 640,未被任何後續操作意外改回 644:

ls -l /var/www/域名.com/conf_global.php


ls -l /var/www/域名.com/constants.php




---------------------------------------------
若升級失敗的還原方案
---------------------------------------------

若升級過程發生無法排除的嚴重錯誤(例如資料庫結構更新中斷、白畫面且系統日誌無明確線索),應執行還原:

1. 停止 Nginx 與 PHP-FPM,避免還原過程中仍有請求進來。

2. 使用備份的資料庫備份檔還原資料庫。

3. 使用備份的網站目錄備份檔還原網站檔案(覆蓋回升級前狀態)。

4. 還原完成後重新啟動服務,並實際驗證論壇恢復到升級前可正常運作的狀態。

5. 待釐清升級失敗原因後(可參考官方支援或社群討論),再擇期重新嘗試升級。

還原是最後手段,前提是備份確實完整且可用,這也是為什麼升級前的備份步驟絕對不能省略或隨便帶過。




---------------------------------
注意事項總結
---------------------------------

若使用第三方外掛或模板主題,升級前務必確認是否有推出相容於新版本的更新,未更新的外掛可能導致升級失敗或升級後功能異常。


升級後請徹底測試論壇各項功能,若發現問題,可先至論壇後端的「支援」頁面暫時關閉部分第三方外掛,逐一排查是否為外掛相容性問題所致,而非貿然懷疑核心程式或伺服器環境設定。


有測試站可用時,務必先在測試站演練整套升級流程,正式站升級才不會是第一次「實戰」,這對點版本升級雖然風險相對較低,仍是值得維持的紀律。


建議每次升級前,實際查閱官方發行紀錄頁面,留意是否有與搜尋引擎整合、快取機制、或 PHP 最低版本需求相關的變更公告,而非僅憑經驗假設「點版本升級應該都差不多」。

本帖最后于,由Jack编辑

参与讨论

你可立刻发布并稍后注册。 如果你有帐户,立刻登录发布帖子。

游客
抱歉,你的帖子内容包括我们不允许的字词。请编辑你的帖子,删除下面高亮的屏蔽字。
回帖…

帐户

导航

搜索

搜索

配置浏览器推送通知

Chrome (安卓)
  1. 轻敲地址栏旁的锁形图标。
  2. 轻敲权限 → 通知。
  3. 调整你的偏好。
Chrome (台式电脑)
  1. 点击地址栏中的挂锁图标。
  2. 选择网站设置。
  3. 找到通知选项并调整你的偏好。