中国分布式计算论坛

 找回密码
 新注册用户
搜索
查看: 6409|回复: 6

MediaWiki系统升级的步骤(shell 版)「應該可以執行的版本」

[复制链接]
发表于 2013-9-19 03:07:48 | 显示全部楼层 |阅读模式
本帖最后由 StephDC 于 2013-9-26 12:07 编辑

之前我一直都没敢直接升级是担心一个升级过去所有的界面什么的都变得一团糟……后来发现原来像美工之类的东西都是用的是 GuMax 皮肤自带的,这样的话升级就简单了

首先确认下有没MediaWiki所在服务器的shell access,有的话,连上——如果在 CPanel 里面有提供 shell/SSH 之类的东西的话,打开它,然后在本机用PUTTY(Windows)或ssh命令(Linux/Mac/其他类Unix系统)连上;如果是自己配置的服务器而且是 LAMP 的话,装 openssh-server 然后启动它,然后在本机用PUTTY(Windows)或ssh命令(Linux/Mac/其他类Unix系统)连上;如果服务器就在你旁边而且是 LAMP 的话,恭喜,你只要打开终端或者进入控制台就可以了。

如果没有以上任何一种……那就有些麻烦了。我不大确定Crontab是否足以执行这些指令。或者只能勉强用ftp和phpMyAdmin这类东西来改。以下我先假设你有 shell access

首先

第一步、备份!

参考 http://www.mediawiki.org/wiki/Backup

先备份最重要的数据库
  1. mysqldump -h {{{hostname|localhost}}} -u {{{userid|yourLoginName}}} --password --default-character-set={{{whatever|utf8}}} {{{dbname|wiki}}} > {{{filename|backup.sql}}}
复制代码
原谅我用MediaWiki模板参数的语法来写这行命令……好吧前面是 mysqldump,后面先指定 mysql 服务器地址,如果是 localhost 可以省略 -h 参数;然后指定用于访问数据库的用户名,如果和你登陆shell的用户名一致也可以省略;然后 --password 强制要求我们输入密码;然后是默认字符编码方式,如果是utf-8就可以省略,不是的自己改;然后写下MediaWiki用的数据库表名称,例如 wiki 或者 mw 什么的;最后再写下导出的文件名,例如 backup.sql 。除了 --password,数据库表名称和导出的文件名为必填项外,其他全部都是选填的。

然后文件备份——请容许我偷个懒
  1. cd /var/www/
  2. mv wiki wiki-bak
复制代码
好了,瞬间搞定 :D

當然如果不要偷懶精確備份關鍵文件而減少備份文件體積的話……那就
  1. cd /var/www
  2. mkdir wiki-bak
  3. mv wiki/extensions wiki-bak
  4. mv wiki/images wiki-bak
  5. rm -fr wiki
复制代码
第二步、更新MediaWiki文件

http://www.mediawiki.org/wiki/Download 上面下载一份选定版本的 .tar.gz 包。你可以下载到本机然后解压缩了之后上传,或者像我一样偷懒——
  1. wget http://download.wikimedia.org/mediawiki/1.21/mediawiki-1.21.2.tar.gz
  2. tar xf mediawiki-1.21.2.tar.gz
  3. mv mediawiki-1.21.2 wiki
复制代码
理论上说服务器的网速比本机应该是快很多的,所以这样应该会比下载再上传快。

或者如果想用最新版本而且还不用担心未来的升级问题的话,欢迎使用git,傻瓜的版本控制系统。前提是你服务器上有装 git 。
  1. git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git wiki
复制代码
这样以后如果版本更新了,只要 cd /var/www/wiki 然后执行 git pull 就可以自动升级了。如果有支持 Crontab 的話還可以把以下命令寫進去,這樣每日/周/月都會自動更新到最新版本了:
  1. cd /var/www/wiki && time git pull
复制代码
第三步、将旧版的信息移回新版——主要是以下几个文件/目录:

  • wiki/LocalSettings.php
  • wiki/extensions/*
  • wiki/images/*

全部 cp 过去就好了 :D
  1. cd /var/www/wiki
  2. cp ../wiki-bak/LocalSettings.php .
  3. cp -fr ../wiki-bak/extensions .
  4. cp -fr ../wiki-bak/images .
复制代码
第四步、刷数据库(危险!)

由于这步极易出错,因此一旦出现问题,请马上从备份还原整个MediaWiki,并联系 MediaWiki 开发组。
  1. cd /var/www/wiki/maintenance
  2. php update.php
复制代码
如果没问题,那就去网站那里看看效果吧~~~

所以最后总结shell命令文件(updategit.sh):
  1. mysqldump --password $1 > backup.sql
  2. mv wiki wiki-bak
  3. git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git wiki
  4. cp wiki-bak/LocalSettings.php wiki
  5. cp -fr wiki-bak/extensions wiki
  6. cp -fr wiki-bak/images wiki
  7. cd wiki/maintenance
  8. php update.php
复制代码
把文件 updategit.sh 放在 网站根目录下,然后用 chmod a+x 加入执行权限,然后 ./updategit.sh

第五步、把原來的 GuMax 皮膚裝回來

由于之前我們并沒有改動 LocalSettings.php 和數據庫,因此只要將 GuMax 皮膚文件下載到該在的地方就可以了。這裏就直接參考 GuMax 的網站來下載吧

http://www.paulgu.com/wiki/Horizontal_Navigation_Menu_Series

檢查過應該這樣就沒問題了。老大來幫忙升個級試試吧~有問題記得戳我 :D @equn
发表于 2013-9-20 11:02:00 来自手机 | 显示全部楼层
大赞
不过貌似Mediawiki:Common.css之类的页面没用
是GuMAX把它覆盖掉了?
【反正我不是管理员关我毛事】
--~~~~来自: Android客户端

点评

MW:Common.css 這類東西都保存在數據庫的,GuMax 皮膚確實會覆蓋很多  发表于 2013-9-27 11:15
发表于 2013-9-27 00:59:45 | 显示全部楼层
恩 我们是该来约的时间考虑升级的事情了。很抱歉工作忙都没怎么联系你。
发表于 2013-10-4 06:23:02 来自手机 | 显示全部楼层
后排求ParserFunctions,MobileFrontend,wglocalsettings简繁转换以及GuMax去掉几个覆盖的东西……求Common.css正常工作来自: iPhone客户端
 楼主| 发表于 2013-10-4 21:23:42 | 显示全部楼层
arthur200000 发表于 2013-10-4 06:23
后排求ParserFunctions,MobileFrontend,wglocalsettings简繁转换以及GuMax去掉几个覆盖的东西……求Commo ...

如果换回标准正方形logo并且能说服老大我们就换回Vector皮肤,common.css就不是问题了

不然GuMax咱们还得好好研究下源代码……

ParserFunctions和MobileFrontend这两个Extensions不算什么,wgLocalSettings这个就更简单了,把LocalSettings.php的Language那里改成zh就可以了 :D

点评

顺便求WikiSEO。  发表于 2013-10-14 17:51
您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

小黑屋|手机版|Archiver|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2019-10-18 17:20

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表