当前位置

MediaWiki从1.23.5升级到1.24.2

James Qi 在 2015年4月22日 - 15:14 提交
内容摘要:去年10月份开始,把使用了好些年的MediaWiki从1.16.0升级到1.23.5,这个过程延续了差不多半年时间,其中还进行了多个wiki网站搬迁到一套MediaWiki程序中的工作。好不容易基本上......

  去年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)一文。”

  安装该扩展后就没有这个提示了。

自由标签: