Manual:Wiki family/zh

下面是如何设置MediaWiki来托管多个wiki的说明. 同一台服务器上的多个wiki被称为wiki家族或wiki农场. 知名wiki农场列表在提供.

基本流程
wiki家族最常见的配置是运行同一个版本的MediaWiki. 在此场景中需要执行以下步骤
 * 1) 安装一个普通的MediaWiki站点，安装完得到一个初始数据库. 这可以是完全空的(例如，任何表中没有行)，也可以有任何初始页面、用户、interwiki链接等. 这个是你想要在wiki家族添加多个网站的前提.  更多资料看
 * 2) 设置您的网络服务器以将来自多个地方的流量路由到一个 MediaWiki 安装.  这可以用于多个域、子域或子目录，并且可以通过软链接、别名、URL 重写或其他机制来完成.
 * 3) 在 LocalSettings.php 中配置该农场，有四个步骤 For wikis by domain name:
 * 4) 然后，设置基于 wiki 标识的配置变量.  这些包括：
 * 5) 接下来，为每个 wiki 设置不同的配置变量.  这些包括： 这些也可以包含在单独的文件中，例如 $code.

在家族中安装一个新的 wiki 就是创建数据库并导入数据库模板，然后运行. 升级和其他维护任务类似.

判断来源
这个允许你使用一份代码来安装多个站点基于单台服务器（虚拟主机、VPS、独立服务器），


 * 1) 上传MediaWiki文件到网站根目录
 * 1) 安装好之后，拷贝$LocalSettings到网站根目录并重命名为一个好记的名字(比如 LocalSettings_myFirstWiki.php)
 * 1) 重复第二、三个步骤，这个目的是为了创建多份（看你要开几个站点久重新安装几次）新的LocalSettings.php文件
 * 1) 创建全局设置文件LocalSettings.php，从下面的两种情况选择其一.

如果你使用同一个域名的不同子目录访问你的多个wiki站点，（例如 ， ）你可以这样编写：

Drupal-style sites
This setup has the advantage of being completely transparent to users and reasonably secure in terms of the images directory.

 ServerAdmin me@myserver.com DocumentRoot /home/web/wiki.mysite.com ServerName wiki.mysite.com CustomLog /var/log/apache2/wiki.mysite.log common # Alias for the site to be accessible Alias /mediawiki/code /home/web/mediawiki/code # Alias for Wiki so images work Alias /images /home/web/mediawiki/sites/wiki.mysite.com/images # If you want to password protect your site #  #   AuthType Basic #   AuthName "My protected Wiki" #   AuthUserFile /etc/apache2/htpasswd/users-mywiki #  require valid-user #  
 * 1) Create a base directory to contain all your MediaWiki files e.g..
 * 2) Install MediaWiki and additional tools as usual to a version-declaring subdirectory (e.g.,  ).
 * 3) Link the version-declaring directory to a code directory. e.g.,
 * 4) Create a sites directory to contain our images and settings:
 * 5) Setup the wiki as normal from the /code directory.
 * 6) After successful installation, move LocalSettings.php into a sites directory that will be a match when the site is checked. For example, to capture http://mysite.com/mywiki, one would create the directory mysite.com.mywiki. e.g.,  . See the Drupal's settings.php file for more information on this.
 * 7) If you intend to use media files, create an images directory in your site directory. e.g.,  .  Make it writable as necessary.
 * 8) Place the Drupal-style LocalSettings.php file in your main directory:
 * 9) Modify the LocalSettings.php of each subsite to point to the right places:
 * 10) First comment out the code relating to , (lines 16-20 in 1.15.3) as this is set to the code directory by.
 * 11) Next insert the following two lines to ensure that image files are accessible, e.g.:  and . These need to be put somewhere after the call to   (line 25 in 1.15.3), as the variables will otherwise be reset.
 * 12) Make further modifications as required.
 * 13) Prepare your Apache 2 installation. Example site: wiki.mysite.com
 * 14) Create a link to the code directory, if required e.g.
 * 15) Create an appropriate VHost configuration:
 * 11. If you are setting the sites up locally, update your  file with the site names. The site should now work.

In my case, I made another copy of the code from which to install and update my LocalSettings.php and databases. Note that in the companion Drupal code is undefined when running maintenance scripts from the command line, so this solution does not permit the use of maintenance scripts without some modification.

Modified Drupal-style method for Ubuntu
A simplified method for multiple wikis and multiple (or nested) subwikis on Ubuntu/Kubuntu that is loosely based on the above method can be found at:
 * Ubuntuguide.org MediaWiki tips

多个维基共享公共资源
你希望在一个单独的维基包含一些不同语言的其它维基，它们共享相同的媒体文件.

例如：


 * en.example.org -
 * fr.example.org -
 * de.example.org -
 * pool.example.org - 所有这些wiki的media-files（如Commons）.

共用数据表
有关设置共享数据库表的说明，请查看 Manual:Shared database.

跨Wiki
现在你必须通过编辑它们的MySQL-数据库，来设置所有wiki之间的跨wiki链接. （或者安装使用） 在表格 Interwiki 中输入与不同 wiki 一样多的记录（例如，一条记录用于德语，一条用于英语，一条用于媒体）.

在您的英语 Main_Page 上添加 Hauptseite ，将在导航栏下创建链接“Deutsch”，该链接指向德语 wiki (Hauptseite) 的 Main_Page. 更多信息请参见.

sd

上传
首先确认 pool-wiki 文件夹的“images”权限是可写的.

将language-wikis的"Upload file"链接更改为指向 poolwiki 的上传站点很重要. 打开每个language-wiki的“LocalSettings.php”并添加：

在 1.17 中，您还必须将 $wgUploadMissingFileUrl 设置为重定向到红色链接上的 pool-wiki.

如果想要只允许pool wiki上传，使用以下内容：

共享文件
要在languagewikis中使用 poolwiki 的文件，需要在每个languagewikis的“LocalSettings.php”中添加：

现在就可以在languagewikis中使用池（pool）文件了（例如 ）.

图像描述
在每个languagewiki中打开（以管理员身份）消息 MediaWiki:Sharedupload-desc-here.

将文本更改为：

该文件存储在数据池中（data-pool）. 有关信息和说明，请访问

在那里描述.

（注意行首的 ':'，它阻止了 'pool' 被包含在页面左侧的跨维基列表中. ）

如果要显示存储在 PoolWiki 中的媒体描述，请添加到languagewikis的“LocalSettings.php”：

维基农场拓展
有几个 MediaWiki 扩展试图通过仅使用一个代码库来简化多个 wiki 的托管，但目前只有一个值得参考：


 * - beta.


 * : 用于的本地化问题并分别自定义相关参数, ,  ,  ,  ,  的皮肤：

其它说明

 * 配置数据库
 * MediaWiki农场用户组和邮箱：维基农场
 * — 用户帐户可以有一个额外的'central'标识符的机制.
 * MediaWiki农场用户组和邮箱：维基农场
 * — 用户帐户可以有一个额外的'central'标识符的机制.
 * — 用户帐户可以有一个额外的'central'标识符的机制.
 * — 用户帐户可以有一个额外的'central'标识符的机制.