:::

8. XOOPS管理備份與升級

一、 基本必要設定

  1. 主機的php.ini中的display_error也要設成on。
  2. 一定要裝站長工具箱tad_adm,並確定有將模組使用權開給「訪客」
  3. 請盡量照按站長工具箱後台的「主機環境」建議值來設定php.ini
  4. XOOPS確定在2.5.7以上,所有模組務必更新到最新版。
  5. 系統偏好設定「自動編譯您修改的樣板檔?」務必設成「是」。
  6. 系統偏好設定「使用者可選擇的佈景」務必包含「預設佈景」。
  7. 系統偏好設定「預設樣板群組」確定是「default」

二、 當網站空白時

  1. 若沒有安裝tad_adm站長工具箱,請進資料庫來開啟除錯:將「config」表中「conf_name」值為「debug_mode」的那筆資料(通常為編號13)其「conf_value」值改為「1」即可開啟除錯。
  2. 若有上傳tad_adm模組,但沒安裝,亦可在瀏覽器輸入「http://網址/modules/tad_adm/pma.php」,然後進入資料庫,同上一點方式修改即可。
  3. 若有裝tad_adm,則直接連到「http://網址/modules/tad_adm」以登入開除錯。
  4. 若還是空白,就有可能是被防護模組擋下,因此,建議關閉之。
  5. 記得修改「/xoops_data/configs/xoopsconfig.php」將「"debugLevel" => 2,」改為「"debugLevel" => 0,」如此,未登入才看得到錯誤訊息。
  6. 善用站長工具箱的「關閉所有區塊」和「關閉所有模組」來判斷問題出在模組還是區塊。
  7. 如果問題出在區塊,請至區塊管理將區塊一個一個陸續關閉,看關掉那一個之後變成正常,那就是該區快出問題。有問題的區塊先嘗試去做完整的區塊設定並務必儲存設定,看看能否改善。

三、 用資料庫緊急安裝站長工具箱(適用網站無法登入時)

  1. 先進入資料庫,執行以下SQL語法(xx_modules請自行替換正確的前置字串):
    INSERT INTO `xx_modules` ( `name`, `version`, `last_update`, `weight`, `isactive`, `dirname`, `hasmain`, `hasadmin`, `hassearch`, `hasconfig`, `hascomments`, `hasnotification`) VALUES
    ('站長工具箱', 255,  1412347040, 0,  1,  'tad_adm',  1,  1,  0,  1,  0,  0);
    
  2. 接著觀察「站長工具箱」的模組編號,即mid的值,並在下方語法填入正確mid數字,接著再執行:
    INSERT INTO `前置字串_group_permission` (`gperm_groupid`, `gperm_itemid`, `gperm_modid`, `gperm_name`) VALUES
    (1,  mid的值,  1,  'system_admin'),
    (1,  mid的值,  1,  'block_read'),
    (1,  mid的值,  1,  'module_admin'),
    (1,  mid的值,  1,  'module_read'),
    (2,  mid的值,  1,  'module_read'),
    (3,  mid的值,  1,  'module_read');
    
  3. 如此,站長工具箱便裝起來了!
  4. 若是原本就偶有裝站長工具箱,只是沒開權限給訪客,請進資料庫執行
    INSERT INTO `前置字串_group_permission` (`gperm_groupid`, `gperm_itemid`, `gperm_modid`, `gperm_name`) VALUES
    (3,  mid的值,  1,  'module_read');

     

四、 登入後,仍顯示沒有登入

  1. 原因通常有兩種,一是session的資料表壞了,第二種則是空間不足,無法寫入。
  2. 登入資料庫,找到session資料表,勾選,並到下方選擇「修復資料表」即可。
  3. 若是空間不足(linux較常見),執行df,看看「/」是否為100%

五、 利用資料庫管理工具執行更多管理功能

  1. 還原佈景:將「config」表中「conf_name」值為「theme_set 」的那筆資料(通常為編號7)其「conf_value」值改為「default」即可回到預設佈景。
  2. 重設密碼:在「users」表中編輯要改密碼的使用者,在「pass」輸入新密碼,並選擇左邊的「函數」選單值為「MD5」,送出即可。
  3. 關閉模組:在「modules」表中編輯要關閉的模組,將「isactive」設為「0」即可。
  4. 關閉區塊:在「newblocks」表中編輯要關閉的區塊,將「visible」設為「0」即可。
  5. 關閉某模組區塊:在「modules」表中找出該模組的mid編號,在「newblocks」表中用「搜索」功能找出mid屬於該編號的所有區塊,按照上法,關閉之即可。

六、 調整防護模組設定

  1. 新版的防護模組已經不需要在mainfile.php引入任何檔案,若有請刪除之。
  2. 防護模組最重要的設定都在偏好設定中,謹記一個原則,別設定的太嚴苛,否則很容易自己被檔住。
  3. 其實並不建議安裝此模組,除非網站真的有備攻擊現象。因為常常裝了是擋到自己。萬一自己被防護模組檔在門外刪掉「xoops_lib/modules/protector/configs/group1ips*」即可
  4. 如果是因為設了黑名單IP範圍而無法登入的,那麼請刪掉「badip*」

七、 外觀不正常時(或外觀只剩選單時)

  1. 先至後台 tadtools的初始設定按一下儲存。
  2. 若只是部份模組頁面是空白的,請至後台模組按一下該模組的「更新」試試。
  3. 至後台「維護」清除快取。自行用FTP連到/xoops_data/cache/smarty_compile去自行刪除樣板檔也行。
  4. 至後台「樣板」,左邊切換至目前使用的樣板,點選其下的modules,若發現底下出現三個以上的資料夾,則請用FTP連至主機,將「themes/使用佈景/modules/」底下的東西全部刪除。然後再線上更新該佈景一次即可。若佈景是自己手動下載(非線上安裝版)或花錢請人設計的,則請再上傳一次佈景即可。至此,應可排除樣板問題。
  5. 先至後台 tadtools的初始設定按一下儲存。
  6. 若是有裝tad_login,則可先關閉模組試試網站是否恢復正常,若是,表示是tad_login出問題。確定主機PHP版本為PHP5.4以上,並且主機有支援php_curl。
  7. 接著至tad_login完成FB設定,或者至tad_login偏好設定將「導覽列的登入選項」選擇「僅顯示XOOPS的登入界面」試試。
  8. 若是有安裝多人網頁模組tad_web,則請先關閉「選單」區塊試試。

八、 畫面出現 Internal Server Error

  1. 看在那一個目錄出現,然後檢查該目錄下是否有.htaccess檔,若有刪除之試試。
  2. 若刪除後就正常,那就是Apache主機設定不正確所致。
  3. 如果網站是放在主目錄如 /var/www,那麼請檢查httpd.conf (或 /etc/apache2/sites-enabled/000-default)
  4. 如果網站是放在使用者目錄下如 /home/使用者/public_html,那麼請檢查mods-available/userdir.conf
  5. 找到網站目錄設定(或使用者網站目錄設定),看看其中的 AllowOverride 設定
  6. 您可以設成「AllowOverride All」或者「AllowOverride Options AuthConfig FileInfo Limit」(重點在那個 Options 一定要有)
  7. 設好重啟Apache並放回.htaccess檔試試。

九、 實體檔案的備份

  1. 實體檔案的備份只要把網頁根目錄整個複製或用FTP把整個網頁目錄下載下來即可。務必記得備份在網頁目錄外的xoops_data及xoops_lib
  2. 若是linux主機可以用pietty等終端機工具登入,然後下指令,將整個目錄打包亦可:
  3.  -zcvpf 備份檔.tar.gz 欲備份目錄,例如:
    tar -zcvpf web.tar.gz public_html xoops_data xoops_lib
  4. 若是想要最精簡的備份:只備份uploads目錄即可(亦即使用者上傳的所有檔案)。

十、 資料庫的備份

  1. 資料庫要備份之前,可以先清除幾個資料表,以縮小資料庫檔案。
    • (1)  session資料表、logcounterx_log資料表(若有裝logcounterx計數器的話)
    • (2)  若「多餘」欄位有值,可將該資料表勾選,然後進行最佳化。
  2. 資料庫要備份前,先確定內容中的中文是否正確,若看起來是亂碼,且資料表的校對是「latin1_swedish_ci」(一般都是Big5網站居多)那麼,請裝修正過的phpMyAdmin(http://www.tad0616.net/modules/tad_uploader/index.php?of_cat_sn=17 )以讀取正確資料。
  3. 若要直接備份實體檔案,請記得關閉MySQL伺服器,然後至/var/lib/mysql(不同主機環境位置可能不同)下將所有資料備份回來即可。
  4. XOOPS後台內建的「維護」功能亦可會出資料,但須將「/modules/system/admin/maintenance/dump」設為777才能使用。
  5. 亦可用phpMyAdmin或adminer之類的工具來備份:

十一、 還原備份

  1. 實體檔案的備份只要把檔案上傳至新主機的網頁目錄即可,Linux主機則需注意目錄的寫入權限,一般而言,uploads、xoops_data底下所有目錄檔案要能寫入(777)。
    tar zxvf web.tar.gz

     

  2. 「TYPE=MyISAM」在MySQL 5.1.8版以後就不支援這種用法了,所以,若是您的MySQL版本大於5.1.8版者,一定要改為「ENGINE=MyISAM」才行。
  3. 資料庫的則利用phpMyAdmin或adminer的「匯入」功能,將SQL整個匯入指定的資料庫即可。
  4. 若是搬移網站,記得修改mainfile.php以及xoops_data/data/secure.php內容。

十二、 用BigDump來匯入(當SQL檔非常大的時候)

  1. 官網:http://www.ozerov.de/bigdump/
  2. 用文字編輯器開啟bigdump.php後,到42~44行分別輸入資料庫名稱、資料庫帳號、資料庫密碼等資訊,以便讓bigdump.php可以連線資料庫。
  3. 修改後存檔,接著請將bigdump.php以及剛剛匯出的SQL檔利用FTP上傳到網頁根目錄中。
  4. 開啟瀏覽器,輸入「http://網址/bigdump.php」,他會自動找出SQL檔出來,您直接按Start Import連結即可開始進行匯入。

十三、 升級前準備

  1. 檢查主機版本,可透過tad_adm站長工具箱中檢查PHP版本,若是您的PHP是5.2以下的,那麼最新您也只能升級到XOOPS 2.4.5。PHP 5.3.7以下的話,只能裝PHP 2.5.7以下的版本。
  2. 若主機的PHP版本是7以上,那只能裝XOOPS 2.5.8以上版本。
  3. 升級前,您可以先將您的網站關閉,待升級後,再打開,以避免升級中途剛好有人在瀏覽或新增資料。請到後台偏好設定將「關閉網站」選為「是」即可。

十四、 上傳新版XOOPS

  1. 下載新版XOOPS,如:http://120.115.2.90/modules/tad_uploader/index.php?of_cat_sn=16
  2. 解壓縮,先找到htdocs/xoops_data和xoops_lib並將新的xoops_data和xoops_lib上傳覆蓋。
  3. 解壓縮目錄中除了install目錄和mainfile.php檔案以及xoops_data和xoops_lib不要上傳以外,其他檔案均上傳覆蓋到遠端主機網頁目錄中。
  4. 若上傳了install目錄以及mainfile.php,那會變成重新安裝。

十五、 執行XOOPS升級

  1. linux下mainfile.php 需要設成777。include/license.php也需要設成777。
  2. 將upgrade升級程式目錄整個上傳到遠端的網頁目錄public_html下
  3. 用瀏覽器執行「http://網址/upgrade/」以進入升級畫面。
  4. 結束後,請刪除upgrade目錄
  5. 若是用XOOPS輕鬆架者,建議把原有的mainfile.php覆蓋回去,以保持原有輕鬆架的彈性。(當然不覆蓋回去也沒關係)
  6. 將mainfile.php改為444

十六、 升級後的調整

  1. 由於系統升級會連同裡面的內建模組一起升級,模組也記得去進行更新。
  2. 升級2.5.8必須執行「 http://網址/modules/system/admin.php?fct=modulesadmin&op=update&module=system 」,例如:
    http://163.26.52.243/~帳號/modules/system/admin.php?fct=modulesadmin&op=update&module=system

     

  3. 請到後台的「維護」功能,將三個快取目錄都清一清,以免留下以 些早期的樣板,導致畫面不正常。
  4. 到後台「偏好設定→系統設定→一般設定」然後將「關閉網站」選為「否」,您的網站可以重新開張囉!

十七、 透過 rsend.sh 來搬移檔案(主機對拷)

  1. 不需要會 rsync 指令,就可以用 rsync 強大的功能:
  2. 用法如下,假設,要把 A主機中 X資料夾的東西,移到 B主機的 Y 資料夾
  3. A主機 ( 來源資料端 ):關閉防火牆,切換到 X 資料夾底下,執行以下指令:
    wget http://120.115.2.108/uploads/rsend
    mv rsend rsend.sh
    chmod +x ./rsend.sh
    ./rsend.sh
    
  4. 這時候,螢幕上會出現三行指令,選第一行來copy ,然後貼到另一個ssh視窗
  5. B主機 (接收資料端):關閉防火牆,切換到 Y 資料夾底下,執行剛剛複製的指令即可。
  6. 完成後,分別在兩台機器上,重新啟動防火牆

:::

書籍目錄

展開 | 闔起

線上使用者

39人線上 (6人在瀏覽線上書籍)

會員: 0

訪客: 39

更多…