Mediawiki这玩意还真难伺候呐!升级比wordpress不知道麻烦了多少……辣鸡辣鸡!
之前CheckUser这个Extension启用不了,今天有时间就来解决一下,开了Debug模式,发现调用了一个未定义的function [\CheckUser\specials\SpecialCheckUser.php Line118,Line451,Line615,Line911..etc.]
//...... protected function showForm( $user, $reason, $checktype, $ip, $xff, $name, $period ) { $action = htmlspecialchars( $this->getPageTitle()->getLocalUrl() ); //.....
这里调用了$this->getPageTitle(),导致报错。
查了一些资料发现getPageTitle()这玩意是Mediawiki1.23之后才有的特性,而部署在生产环境的Mediawiki是1.22.6……所以自然报错了orz 也怪当时似乎是直接git clone没有仔细看版本要求……
于是那就升级呗!第一次通过shell升级Mediawiki,却选择了Git……也是作死吧√
升级前建议在Localsettings.php里开启readonly模式,防止数据库出点什么毛病。
先备份,因为tar.gz打包中文文件会出现乱码……解决方案什么的也懒得查,于是直接zip -r wiki.zip …/../wiki/* 打包然后下载咯……
开了一个新目录放新版本的wiki文件,用git拉最新的版本
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git
_(:з」∠)_似乎会比官网的新一个版本,官网现在是1.23.2,git clone下来的是1.24alpha 管他呢 我又不怕bug www
直接覆盖原文件即可咯
/bin/cp -rf ./core/* wiki/
还是cp比mv好用……
然后就有两条路 一个是通过shell执行php update.php就可以,我选择了网页升级,因为数据量比较小,网页比较可爱0.0!
http://domain/mw-config/
访问这个地址然后填入一个升级秘钥一直下一步就好啦!
注意,从git上clone的Mediawiki没有带皮肤,而且1.24开始启用了新的皮肤调用方式,所以皮肤还得自己装。可以选择git clone也可以上传解压,最后在Localsettings.php里加一行
require_once("$IP/skins/vector/Vector.php");
就可以了 路径可能各人有不同
那么~这样就升级完毕咯 从Special:版本 可以确认升级情况