WordPress 3.x 版 升級時, 都會自動將系統改變成為如下述訊息:
暫時因例行維護而無法存取。請稍後再來。
這並沒有什麼問題, 但是問題就出在, 如果他在升級, 然後你手賤的點選其他連結, 就無法再進入原本升級頁面(原本升級頁面好像是靠 AJAX 去升級), 於是升級不知道是否全部完成, 整個 WordPress 就會一直在 "維護中" 的狀態. XD
解法
先講講解法, 下面再來紀錄追蹤過程, 解決方法有下述兩種:
- 等 10分鐘後, 系統應該會自動從維護狀態還原 # 看程式推測, 因為我是手動下述的步驟
- 找到 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 這個檔案, 把他砍掉就可以正常運作了.