Manual:Upgrading/zh



概要
请先查看 MediaWiki 发行包内的 UPGRADE 文件


 * 1) 检查运行 MediaWiki 所需要的环境
 * 2) 查看发行公告
 * 3) 备份当前数据库和文件
 * 4) 解压新发布的压缩包
 * 5) 运行升级程序
 * 6) 升级扩展
 * 7) 测试升级是否成功

系统要求
MediaWiki 1.20 依懒于以下运行环境

PHP

 * MySQL 5.0.2 或更高版本
 * MediaWiki 1.6.0 开始不再支持 MySQL 3.x

或者


 * PostgreSQL 8.1 或更高版本
 * 如果运行在 Postgres 8.1 或 8.2 上，还需要加载 tsearch2 和 plpgsql 模块.
 * 参见 升级 Postgres

阅读发行公告
在压缩包或者 SVN 导出的文件中，有一些名字全是大写英文字母的文件，其中一个是 RELEASE-NOTES. 如果要知道最新版本有什么变化的话，请查看这个文件.

备份现有文件和数据库
虽然升级程序经过良好的测试，也比较可靠，但是仍然是有可能出问题的. 所以在运行升级程序之前，请务必做一次完整的备份. 其中得包括相关数据库和相关文件：


 * 数据库里面和 wiki 相关的内容. 建议在导出SQL的同时也导出为XML，以策万全.
 * MySQL:
 * 导出为SQL： mysqldump --all-databases > file.txt
 * 导出为XML： mysqldump --all-databases --xml > file.xml
 * PostgreSQL:
 * 导出为 pg_restore ： pg_dump --create -Fc -i yourwiki > yourwiki.db.dump
 * 图片和其它文件 (在 images 目录内)
 * 配置文件 LocalSettings.php 和 AdminSettings.php</tt>
 * MediaWiki 的程序文件，包括所有的皮肤和扩展，特别是你修改和定制过的文件.

更详细的请查看 备份wiki 和 Latin-1 转换到 UTF-8

从压缩包安装
如果要从压缩包安装，先把包内的文件解压到现在运行 mediawiki 的服务器目录中. 默认的情况下解压新版本的压缩包会创建新的目录，然后您就需要把新目录中的文件移动到当前的 wiki 目录中. 当然，更好的办法是，直接解压到当前的 wiki 目录：

$ tar xvfz mediawiki-.tar.gz -C /path/to/your/wiki/ --strip-components=1

加上了--strip-components=1会直接解压在/path/to/your/wiki/目录下，如果不加--strip-components=1，会在/path/to/your/wiki/下自动创建一个mediawiki-1.20.2的目录并解压在该目录下； 如果是旧老本的 Linux 发行版，例如 RHEL/CentOS 4.x 的话，则需要：

$ tar xvfz mediawiki-.tar.gz -C /path/to/your/wiki/ --strip-path=1

对于老版本的 tar (例如 GNU tar 1.13.x)， 由于没有 --strip-components 或 --strip-path 选项，因此需要先用不带 -C 参数的命令来解然，之后再把解压后的文件覆盖到旧的 wiki 目录中. 具体操作如下：

$ tar xvfz mediawiki-.tar.gz $ cp -r mediawiki-/* /path/to/your/wiki/

(Open)Solaris 用户需要用 gtar ，或者：

$ gzip -dc mediawiki-.tar.gz | tar xf -

Windows 用户可以用 7zip 来解压

从 Subversion 安装
如果要用 Subversion 来安装，就先得从版本库中导出文件到一个新的目录，然后把这个目录中的文件移动到当前的 wiki 目录中.

运行升级程序
注意：请先确保有一个叫AdminSettings.php</tt>的文件在 wiki 的安装目录下，并且在这个文件内的设置信息是正确的. 执行升级的用户必须有完整的数据库操作权限，并能通过 shell 来访问.

首选的升级方式是通过命令行来执行升级程序，另一个候选方式是通过页面来执行安装程序.

Shell
进入到命令行，先切换到 maintenance</tt> 目录，然后执行升级程序. $ php update.php --aconf ../AdminSettings.php

(对于Windows平台下的某些一键安装包(如XAMPP)，如果 php.exe 关联到 .php 文件的话，您可以双击执行 update.php . 如果没有关联 .php 文件，您可以右击 update.php ，选“打开发方”，然后在程序中找到 php.exe . 注意要先确保服务器端软件(例如Apache)和数据库(例如MySQL)是正确运行的.

最后升级程序就会检查当前的数据库结构，并将其升级到最新版本.

当遇到“没有超级用户权限”的错误时怎么办
假如升级程序提示以下错误：

"No superuser credentials could be found. Please provide the details of a user with appropriate permissions to update the database. See AdminSettings.sample for more details"

这种情况下，您就需要检查 LocalSettings.php 文件中的 $wgDBadminuser 和 $wgDBadminpassword 是否设置正确了. 升级程序需要依赖这里的用户名和密码设置来访问数据库.

候选升级方式之一： phpShell
如果您没有 shell 的操作权限的话，请参考 phpShell，这是一个用 PHP 函数来模拟 shell 操作的项目. 但由于主机的限制，有可能有些功能用不了.

当使用这种方式来升级时，最好在运行脚本是加上参数 --quick</tt> 跳过开始的倒数，例如：

$ php update.php --quick

有些主机上安装了多版本的 PHP，可能需要运行 "php5" 命令而不是普通的 "php". 而且在使用 phpshell 时，可能要先修改 commandLine.inc 和 LocalSettings.php 来避免服务器上运行的 phpshell 退出，或者用以下方法来绕过这个限制：

$ unset REQUEST_METHOD; php update.php --quick

这样就可以注销系统变量 REQUEST_METHOD，因为该变量会使 phpshell 拒绝执行.

候选升级方式之二： 重新运行安装程序
还有另一种升级方法，就是重新执行一次安装脚本，步骤如下：


 * 1) 把 LocalSettings.php</tt> 改名为 LocalSettings.old.php</tt>
 * 2) 把 config</tt> 目录的读写权限开放给 Web 服务器
 * 3) 确保所使用的数据库用户有全部的权限
 * 4) 用浏览器打开安装界面
 * 按照之前安装时所填写的值，重新填一次安装表单
 * 当安装开始时，脚本会检查当前的 MediaWiki 数据表，更升级数据表的结构
 * 完成后，安装脚本会生成一个新的 LocalSettings.php</tt>
 * 1) 删掉新的 LocalSettings.php</tt>
 * 2) 把原有的 LocalSettings.old.php</tt> 重命名为 LocalSettings.php</tt>
 * 3) 恢复 config</tt> 目录应有的权限

检查升级是否成功
一但升级完成后，请查看各个 wiki 页面是否正常，并尝试以下操作是否成功：
 * 查看页面
 * 修改页面
 * 上传文件

最后查看一下 Special:Version 页面以确认版本号显示正确，以及相关的插件加载成功.