close
附註:本文僅屬記錄與經驗分享且在非乾淨電腦中安裝,若有遺漏或錯誤煩請指正,如有侵權請來信告知。
[expand title="發表日期:2014/08/21 最後更新:2014/08/21" alt="點選觀看詳細更新記錄"]

  • 2014/08/21, 新增文章


[/expand]


0.目錄



  1. 問題描述

  2. 解決方案

  3. 參考資料

  4. 後記







  • 需要準備的檔案:無

  • 問題發生環境:WordPress 3.9.2







1.問題描述


當WordPress進行後台維護,例如:更新外掛、佈景升級甚至透過網頁更新WordPress版本時,如果發生斷線關掉網頁後,會出現以下錯誤:


因例行維護而暫時無法存取。請稍後再來。(如圖)




[caption id="attachment_581" align="aligncenter" width="510"]wordpress 出現 '因例行維護而暫時無法存取。請稍後再來' wordpress 出現 '因例行維護而暫時無法存取。請稍後再來' 之錯誤[/caption]

而且連後台都無法進入,無法解除


 

2.解決方案


解決方法有兩種:




  1. 10分鐘後自動解除

  2. 進入安裝WordPress的目錄下,手動移除 ".maintenance" 檔案 (附註:這個檔案是隱藏檔,若看不到請檢查是否顯示隱藏檔案)


 

大致上這樣就能解決了。


如果是更新外掛、佈景升級這類大概不用擔心,解除鎖定後重新到後台他會提示你"升級失敗",若沒有重新到外掛/佈景管理再更新就好,通常不會有問題。


不過如果是WordPress版本更新就有機會發生奇怪的問題了


Google了一下,原來這是3.x版後的功能,為了避免在進行升級時有訪客訪問而出現奇怪的頁面或無法顯示網頁,暫時會把整個系統鎖起來成為維護狀態。


維護狀態使用根目錄下的 ".maintenance" 檔案來判斷,而這個檔案內容其實就是記錄開始維護的時間




[caption id="attachment_582" align="aligncenter" width="371"]wordpress 無法存取因為產生了一個有時間戳記的 '.maintenance' 檔案 wordpress 出現 '因例行維護而暫時無法存取。請稍後再來'
可發現他產生了一個有時間戳記的 '.maintenance' 檔案[/caption]

那為什麼正常更新完成把上就解鎖了呢?


這是因為WordPress透過AJAX(非同步的JavaScript與XML技術, Asynchronous JavaScript and XML)檢查升級狀態,可以在網頁不重新整理的情況下持續更新網頁狀態


當偵測到更新完畢時就會透過AJAX把 ".maintenance" 檔案移除,讓系統恢復一般狀態


但是如果更新中途網頁被關掉、重整或斷線,在load時就會偵測到".maintenance" 檔案,連後台都無法進入(怎麼不把後台也獨立出來咧xd)


或許當初設計的時候就有考慮到網頁被關掉的問題,所以設計了一個10分鐘解鎖的機制,不然老是不小心按掉網頁或重新整理,大概一天到晚在崩潰吧



3.參考資料



 

4.後記


這個問題一般都是因為自己手賤,像是TagDict大不小心關掉瀏覽器,或是Tsung大手賤去點選其他連結


不過我卻是一直跑好好的機器異常,更新到一半連AJAX都請求不到回應,直接掛給我看


還好Google後還有幾篇(而且2012就有)解決方法,以為差點要砍掉重練了。




  • 後後記


 最近感覺在鬧機瘟,一推伺服器出現問題,連筆者小小的機器都出現謎樣的錯誤:


ping正常、燈號正常,但網頁打不開,管理頁面找不到網頁、連用ssh也連不上,讓我一整個超崩潰


找不到原因下只好相信是農曆七月沒拜拜,也不顧剛洗完澡頭髮還沒乾,就跑去附近便利商店買兩包乖乖回來鎮壓,半小時後又正常了......(有空再來詳細寫這個故事)

arrow
arrow
    全站熱搜

    Robarter 發表在 痞客邦 留言(0) 人氣()