去年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)一文。”
安装该扩展后就没有这个提示了。
评论