去年10月份開始,把使用了好些年的MediaWiki從1.16.0升級到1.23.5,這個過程延續了差不多半年時間,其中還進行了多個wiki網站搬遷到一套MediaWiki程序中的工作。好不容易基本上全部搞定,想歇一口氣,但發現MediaWiki已經又升級到1.24.2了,而且原來的1.23.5有安全漏洞,必須安排升級,唉,真是麻煩啊。
今天嘗試着把祁勁松的維客空間這個老的Wiki網站進行了升級,過程如下:
1、下載新版本MediaWiki程序,解壓到mediawiki_code-1.24.2;
2、以前mediawiki_code中修改過的一些文件,在新版中也修改:
includes/CategoryViewer.php : mobile version 3 columns to 1 column includes/cache/FileCacheBase.php : purge multi-version file cache skins/Vector.php : not change! skins/MonoBook/MonoBookTemplate.php : clear menus etc. for mobile version(新版路徑、文件不同) skins/MonoBook/main.css : clear css for mobile version(新版路徑不同) maintenance/generateMobileSitemap.php : generate mobile version xml sitemap maintenance/multi_sites.php : run multi sites scripts CommonSettings.php : common settings extensions_more/* : more extensions other then default
3、交換新老版本目錄:mediawiki_code改為mediawiki_code-1.23.5,mediawiki_code-1.24.2改為mediawiki_code,wiki.jamesqi.com目錄中有少數幾個鍊接需要删除、重新創建(composer-example.json改為composer.json,RELEASE-NOTES-1.23改為RELEASE-NOTES-1.24)。
4、LocalSettings.php在1.24版本中需要加入皮膚文件的路徑、文件名:
require_once "$IP/skins/CologneBlue/CologneBlue.php"; require_once "$IP/skins/Modern/Modern.php"; require_once "$IP/skins/MonoBook/MonoBook.php"; require_once "$IP/skins/Vector/Vector.php";
5、運行升級程序php maintenance/update.php,升級涉及到的數據庫
然後全面檢查網站,如果需要清除文件緩存就把cache下對應站點的html文件都删除。
今天花了好幾個小時來升級這個站點,算是基本上搞定了,其它站點升級過程應該差不多,隻是遇到數據量大的站點運行update.php可能需要很長時間。升級後與升級前從站點上也基本上看不出來明顯差别(登錄後右上角用戶小圖标變了)。如果不是有安全問題真是不想去折騰。這個站點升級後先觀察一陣子,然後再去安排時間升級其它的站點。
補充:在繼續升級其它站點(郵編庫)的時候,發現文件緩存沒有使用gz壓縮,即使設置了$wgUseGzip = TRUE;也不行,最後隻有修改includes/cache/FileCacheBase.php:
/** * Check if the cache is gzipped * @return bool */ protected function useGzip() { //return $this->mUseGzip; return TRUE;//jamesqi 2015-5-21 }
把這個強制返回TRUE,就可以了,至于升級後到底是哪裡有毛病就先不管了,隻要達到效果。
再補充:2015年3月15日、2015年7月11日分别用web方式運行升級(/mw-config/index.php)的時候遇到這樣的提示:
“警告:因為尚未安裝 intl PECL 擴展(http://pecl.php.net/intl)以處理 Unicode 正常化,故隻能退而采用運行較慢的純 PHP 實現的方法。 如果您運行着一個高流量的站點,請參閱 Unicode 正常化(http://www.mediawiki.org/wiki/Unicode_normalization_considerations)一文。”
安裝該擴展後就沒有這個提示了。
评论