X

WordPress 3.x 升級變成維護中 的 還原法

WordPress 3.x 版 升級時, 都會自動將系統改變成為如下述訊息:

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

這並沒有什麼問題, 但是問題就出在, 如果他在升級, 然後你手賤的點選其他連結, 就無法再進入原本升級頁面(原本升級頁面好像是靠 AJAX 去升級), 於是升級不知道是否全部完成, 整個 WordPress 就會一直在 "維護中" 的狀態. XD

解法

先講講解法, 下面再來紀錄追蹤過程, 解決方法有下述兩種:

  1. 等 10分鐘後, 系統應該會自動從維護狀態還原 # 看程式推測, 因為我是手動下述的步驟
  2. 找到 WordPress 目錄的 .maintenance 這個檔案, 把他砍掉就可以恢復了.

WordPress 3.x 升級變成維護中 的 追蹤 與 解法

翻了一下 WordPress code, 於 wp-includes/load.php 找到有個 Function 是控制這個的: function wp_maintenance() { ... }

裡面有兩個判斷:

if ( !file_exists( ABSPATH . '.maintenance' ) || defined( 'WP_INSTALLING' ) )
return;

// If the $upgrading timestamp is older than 10 minutes, don't die.
if ( ( time() - $upgrading ) >= 600 )
return;

於是找 WordPress 目錄下的 .maintenance 這個檔案, 把他砍掉就可以正常運作了.

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.