wordpress在3.7版本開始支持自動升級,不夠這也帶來了一個常見的問題,當wordpress在升級過程中可能超時,導致網站一直處于維護模式(maintenance mode)且不能訪問網站的文章,即出現“Briefly unavailable for scheduled maintenance. Check back in a minute",正在執行例行維護,請一分鐘后回來”.
我就是在升級插件的時候出現這個問題的,這是人生第一次見到這個問題.
為什么這個維護時候會出現這個錯誤呢?
維護模式頁面在技術上并不算是個錯誤,它是一個通知頁面,在更新的過程中,wordpress的下載所需的更新文件到你的服務器,把它提取出來,并安裝新的文件,所以在這個時間段,wordpress會把維護模式的網頁提醒放出來“Briefly unavailable for scheduled maintenance. Check back in a minute",正在執行例行維護,請一分鐘后回來”.
如果更新過程一切順利,這個提醒頁面只會出現幾秒,但是對于響應慢或者內存低的服務器來說,更新腳本可能會超時或者被中斷,當更新超時或中斷后,wordpress 就會一直處于維護模式,同時總是顯示維護頁面.
如何解決WordPress“Briefly unavailable for scheduled maintenance. Check back in a minute”的問題呢?
很簡單,在wordpress的根目錄下,你可以找到一個叫 .maintenance 的文件,但是這個文件是隱藏的,找到這個文件后,刪除它,你的網站就能正常訪問了.
shell下刪除 .maintenance,進入wordpress的根目錄(wordpress的安裝目錄)
#ls -a
就可以看到有 .maintenance 文件
然后刪除它:#rm -rf .maintenance
再次打開網站,可以正常訪問了.
FTP下你就設置ftp軟件顯示隱藏文件夾,然后手動刪除就可以了.
如何自定義維護模式的提醒頁面?
避免出現默認的維護模式提醒的最簡單的方法就是將訪問者重定向到一個臨時的維護頁面,在升級前,將你的網站設置為維護模式,讓用戶暫時不能訪問.
當然,如果你不想手動設置網站進入維護模式,你可以創建一個維護頁面,而無需使用插件(如果懶,可以使用 Maintenance Mode plugin 或者 WP Maintenance Mode 插件),簡單的創建一個叫 maintenance.php 的文件,將下面的代碼粘貼進去.
- <?php
- $protocol = $_SERVER["SERVER_PROTOCOL"];
- if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol )
- $protocol = 'HTTP/1.0';
- header( "$protocol 503 Service Unavailable", true, 503 );
- header( 'Content-Type: text/html; charset=utf-8' );
- ?>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <body>
- <h1>We are updating the site, please check back in 30 minutes.</h1>
- </body>
- </html>
- <?php die(); ?>
將這個文件上傳到 wordpress的 wp-content 目錄中,現在無論你什么時候升級網站,這個頁面都會在維護模式下顯示,你也可以增加css來美化下頁面.
網上看到的另外一個方法:如果還是不行,或者你想讓它以后可以顯示 .maintenance,那就打開 /wp-admin/includes/class-wp-filesystem-direct.php,將下面代碼:
- function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
- // safe mode fails with a trailing slash under certain PHP versions.
- $path = untrailingslashit($path);
- if ( emptyempty($path) )
- return false;
- if ( ! $chmod )
- $chmod = FS_CHMOD_DIR;
- if ( ! @mkdir($path) )
- return false;
- $this->chmod($path, $chmod);
- if ( $chown )
- $this->chown($path, $chown);
- if ( $chgrp )
- $this->chgrp($path, $chgrp);
- return true;
- }
- //改為:
- function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
- // safe mode fails with a trailing slash under certain PHP versions.
- if ( ! $chmod )
- $chmod = $this->permission;
- if(ini_get('safe_mode') && substr($path, -1) == '/')
- {
- $path = substr($path, 0, -1);
- }
- if ( ! @mkdir($path) )
- return false;
- $this->chmod($path, $chmod);
- if ( $chown )
- $this->chown($path, $chown);
- if ( $chgrp )
- $this->chgrp($path, $chgrp);
- return true;
- }
然后刷新FTP目錄,是不是看到.maintenance了,刪除它吧.
新聞熱點
疑難解答
圖片精選