Jump to content
View in the app

A better way to browse. Learn more.

PHP论坛人

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

恢復現有的論壇 DB資料庫 與 Web網站檔案

Featured Replies

恢復現有的論壇 DB資料庫 與 Web網站檔案


適用於更換伺服器、環境遷移 (例如 舊主機 → 新主機),或將論壇還原至指定日期的備份檔


事前準備

完整的備份檔案:資料庫備份檔 DB.sql 與 網站檔案備份檔 Web.zip

新主機環境已安裝:Nginx、MySQL/MariaDB、PHP (版本需相容)、必要的PHP擴充套件




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

在進行資料還原前,請務必先停止 Nginx

systemctl stop nginx



為什麼要先停?

避免還原過程中,網站檔案短暫暴露

防止備份檔被惡意下載

避免檔案解壓時造成讀寫衝突






---------------------------
恢復論壇資料庫 (DB)
---------------------------

建議使用 /tmp 目錄作為暫存區,避免汙染系統目錄

使用SFTP將DB資料庫備份檔上傳到 /tmp

接著SSH登入,並到 /tmp 目錄
cd /tmp


解壓縮,得到資料庫檔案 DB.sql
unzip -o DB.zip



確認檔案完整性
檢查解壓縮後的檔案
ls -lh DB.sql


請確認檔案大小是否合理,避免損毀的備份檔
du -h DB.sql






---------------------------------------------------------
匯入資料庫
---------------------------------------------------------

cd /tmp


mysql -u 使用者名 -p --default-character-set=utf8mb4 資料庫名 < 資料庫備份檔名.sql

或者

mariadb -u 使用者名 -p --default-character-set=utf8mb4 資料庫名 < 資料庫備份檔名.sql




系統會提示輸入使用者名的密碼

恢復時間取決於資料庫大小,可能需要數分鐘至數小時

匯入過程請勿中斷




-------------------------------
刪除資料庫的備份檔
-------------------------------

cd /tmp

資料匯入完成後,請立即刪除暫存檔,避免資料庫備份檔外洩

rm DB.zip DB.sql




--------------------------
恢復Web網站檔案
--------------------------

使用SFTP上傳 網站備份檔 (web.zip) 到你的論壇根目錄


接著SSH登入,並到 /var/www/域名.com 目錄
cd /var/www/域名.com


解壓縮 網站備份檔 (web.zip)
unzip -o web.zip



解壓完成後,刪除網站備份檔 (web.zip)
rm web.zip


將所有權變更為網頁伺服器使用者 (確保 Nginx / PHP 有正確的讀寫權限)
chown -R www-data:www-data /var/www/域名.com



確認是否都改為 www-data www-data 
ls -l



---------------------------------------------------------------------
修改 conf_global.php 裡的資料庫名、資料庫用戶、資料庫用戶密碼
---------------------------------------------------------------------

vi /var/www/域名.com/conf_global.php


'sql_database' => '資料庫名稱',
'sql_user' => '資料庫用戶',
'sql_pass' => '用戶密碼',


ESC儲存並離開
:wq



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

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

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



----------------------------------
強化 conf_global.php 安全性
----------------------------------

修改權限為 640 或 600
chmod 640 /var/www/域名.com/conf_global.php







---------------------
排程任務權限確認
---------------------

確保IPS論壇的 task.php 具備執行權限
chmod 755 /var/www/域名.com/applications/core/interface/task/task.php


檢查 crontab 設定 (如有需要)
crontab -l | grep task.php



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

將Nginx啟動
systemctl start nginx



--------------------------------------
使用 phpMyAdmin 進行資料維護
--------------------------------------

進入phpMyAdmin

http://伺服器IP:888/phpmyadmin/

瀏覽論壇資料庫的 編碼與排序 是否為 utf8mb4_general_ci 或 utf8mb4_unicode_ci



資料表維護

到論壇資料庫 -> 資料表底部 -> 全選 -> 依次使用

檢查資料表

修復資料表 (如有錯誤)

最佳化資料表


注意:若資料表數量多,請注意頁面可能有多頁




-----------------------
回到論壇
-----------------------

確認論壇正常運作
https://域名.com/



接下來,從這個步驟開始做

Cron執行論壇任務、自動備份DB資料庫、自動備份Web網站檔案

Edited by Jack

Create an account or sign in to comment

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.