這兩天WordPress后臺提示我更新3.5版本,像往常一樣,我仍是準備通過在線的方式更新,結果試了N次,每次都提示升級失敗,出現如下錯誤:
無法安裝這個包。: PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature
經過分析,由于更新包的源在國外服務器,而本站服務器在國內,所以在線更新時的下載速度就比較慢(有時可能因為國際網絡連接抽風,下載甚至將直接中斷),又由于這次是程序升級而不是普通的模板或者插件升級,壓縮包較大(像這次的包接近7M大小),所以在達到了等待時間上限后,升級程序提前終止了下載并開始解包。因為文件不完整,解包當然就會失敗,所以就出現了上述錯誤。
按照一般的解決方法,我們需要手動下載升級包進行人工升級,而參照了WordPress的升級說明后,我發現其遠比在線更新麻煩的多(WordPress正以在線更新方便、快捷為一大亮點),所以我就試圖尋找一種更方便的方法解決這個問題。
在分析了在線更新的流程和方式后,我發現每次升級時,WordPress會將下載的包在網站目錄的wp-content文件夾里,以wordpress-3.tmp作為文件名(根據升級內容和需要更新的版本等因素的不同,該文件名可能會有所變化,不過應該都是以.tmp作為文件后綴的),所以我靈機一動,在下載開始前將手動下載下來的壓縮包上傳到該目錄,然后等在線更新開始后刪除.tmp文件,并將上傳好的壓縮包更名為wordpress-3.tmp。等待幾分鐘后(目的是為了讓更新程序觸發等待時間上限從而開始第二步),便可看到升級程序開始解包并安裝更新了。
最后要說的是,這個解決方法同樣適用于在線下載、更新模板和插件時出現這個錯誤的情況。如果你遇到了上述問題,不必急著去手動操作,不妨試試這種方法,繞過下載步驟,達到自動更新的效果。
評論