WordPress自動(dòng)升級(jí)失敗的解決辦法

2011-06-01 09:11:37來源:作者:

WordPress版本更新非常頻繁。這個(gè)月WordPress 3.2的Beta 1版本已經(jīng)發(fā)布,如果不出意外,下個(gè)月我們會(huì)迎來3.2正式版。如果你可以從后臺(tái)管理面板升級(jí),更新到WordPress新版本不是難事:你只需要登錄、點(diǎn)擊若干個(gè)按鈕、

WordPress版本更新非常頻繁。這個(gè)月WordPress 3.2的Beta 1版本已經(jīng)發(fā)布,如果不出意外,下個(gè)月我們會(huì)迎來3.2正式版。如果你可以從后臺(tái)管理面板升級(jí),更新到WordPress新版本不是難事:你只需要登錄、點(diǎn)擊若干個(gè)按鈕、等上幾分鐘然后就升級(jí)成功了。不過WordPress自動(dòng)升級(jí)帶來的不只是方便,你也有可能遇到升級(jí)失敗的問題。如果自動(dòng)升級(jí)沒有成功,你沒法像在WORD里一樣撤銷之前的操作,下面我們就來說說怎么在自動(dòng)升級(jí)失敗后恢復(fù)網(wǎng)站并確保成功升級(jí)。

如果自動(dòng)升級(jí)失敗......

在后臺(tái)點(diǎn)擊自動(dòng)升級(jí)(假設(shè)從WordPress 3.1.0升級(jí)到3.1.1)后,升級(jí)界面會(huì)出現(xiàn)如下信息:

  • 從http://wordpress.org/wordpress-3.1.1.zip…下載更新
  • 解壓更新
  • 驗(yàn)證解壓文件...
  • 安裝最新版本...

一直到這里都很正常,但是之后有可能會(huì)出現(xiàn)兩種情況,一種是升級(jí)成功,另一種就是今天要討論到的升級(jí)失。

\

“Installation Failed(安裝失敗)”前的狀態(tài)信息解釋了WordPress認(rèn)為的升級(jí)失敗原因所在,有時(shí)候系統(tǒng)可能不顯示任何狀態(tài)信息。無論在哪種情況下,這時(shí)用戶已經(jīng)失去對(duì)網(wǎng)站的控制權(quán)了。自動(dòng)升級(jí)失敗后,加載任何網(wǎng)站頁面——后臺(tái)、首頁、登錄頁等——都只能看到類似這樣的WordPress維護(hù)頁面:

\

在無法登入網(wǎng)站管理界面的情況下,要解決問題真是件讓人沮喪的麻煩事。幸好這時(shí)候不登入后臺(tái)也可以把網(wǎng)站找回來。登入FTP,進(jìn)入根目錄,刪除.maintenance文件。文件名的開始部分是一個(gè)點(diǎn),如果你沒有用FTP找到這個(gè)文件,可以試試登入服務(wù)器的控制板,然后通過文件管理器找到這個(gè)文件并刪除。下面是.maintenance文件在根安裝目錄下的顯示截圖:

\

.maintenance文件包含一個(gè)wp_maintenance函數(shù)使用的變量,類似于:

<?php $upgrading = 1302115706; ?>

如果你被自己的網(wǎng)站拒之門外了,刪除.maintenance文件可以讓你回到管理后臺(tái)以及網(wǎng)站的其他頁面。當(dāng)你回到后臺(tái)后,WordPress會(huì)提醒你最近更新失敗并顯示如下信息:

\

這時(shí)候你有(至少)兩個(gè)選擇:繼續(xù)嘗試自動(dòng)升級(jí),或者下載最新版本并手動(dòng)上傳。即使你這一次選擇了手動(dòng)升級(jí),最好也了解一下怎么解決自動(dòng)升級(jí)失敗問題。

檢查文件權(quán)限

正確的文件權(quán)限是成功完成任何自動(dòng)程序的關(guān)鍵所在。WordPress手冊(cè)在介紹后臺(tái)升級(jí)子菜單時(shí),在其中的疑難解決部分建議到:確保你的WordPress目錄由Apache服務(wù)器的用戶名所有。

除此之外,你可能還需要更改/upgrade/目錄權(quán)限。從下面的截圖中可以看到,WordPress用/upgrade/目錄存儲(chǔ)升級(jí)過程中的臨時(shí)文件。

\

對(duì)需要新建的臨時(shí)WordPress文件來說,/upgrade/目錄應(yīng)是服務(wù)器可寫入的。為確定這是否問題所在,可以試著把目錄權(quán)限改為 777(或CHMOD等值),然后重試自動(dòng)升級(jí)。如果升級(jí)成功,問題就解決了,但從此你需要一直使用可能的最高權(quán)限。這需要你去研究、嘗試或者咨詢主機(jī)提供商,但了解最高權(quán)限之后,你就可以安心地自動(dòng)升級(jí)了。

關(guān)閉安全模式

禁用安全模式有可能讓你的自動(dòng)升級(jí)重新奏效。根據(jù)PHP手冊(cè),PHP 5.3.0開始不再采用安全模式。

我們可以通過多種方式關(guān)閉安全模式。如果你不能通過服務(wù)器的控制臺(tái)關(guān)閉安全模式,可以在php.ini文件里加上下面的代碼實(shí)現(xiàn)安全模式禁用:

safe_mode = Off

或者你也可以在Apache配置文件里加上下面的代碼:

<Directory /var/www/public>   php_admin_flag safe_mode off  </Directory>

只要在httpd.conf文件添加上面的內(nèi)容然后重啟Apache即可。

在wp-config.php文件內(nèi)定義FTP變量

在你的wp-config.php文件里定義必需變量,是讓自動(dòng)升級(jí)重新工作的又一個(gè)方法。這種方法有很多不同形式,所以你需要根據(jù)以往的經(jīng)驗(yàn)根據(jù)自己的具體情況進(jìn)行定義。下面是一個(gè)示例,僅供參考:

define('FS_CHMOD_FILE', 0755);
define('FS_CHMOD_DIR', 0755);
define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/httpdocs/');
define('FTP_CONTENT_DIR', '/httpdocs/wp-content/');
define('FTP_PLUGIN_DIR ', '/httpdocs/wp-content/plugins/');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', '123.456.789');
define('FTP_SSL', false);

把上面的代碼貼入wp-config.php文件中”That’s all, stop editing! Happy blogging.”的上方。別忘了把代碼里的用戶名、密碼等變量換成自己的信息。

可能你覺得上面這些操作有些麻煩,不過WordPress自動(dòng)升級(jí)為我們節(jié)省了如此多的時(shí)間,完全值得我們多花一點(diǎn)時(shí)間來解決自動(dòng)升級(jí)遇到的問題,成功實(shí)現(xiàn)事半功倍的效果。

\

翻譯原文:http://www.wordpress.la/deal-with-auto-upgrade-failture.html
英文原文:http://digwp.com/2011/04/wordpress-auto-updates/
關(guān)鍵詞:WordPress

贊助商鏈接: