Manual:Wiki family/zh

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

基本流程
wiki家族最常见的配置是运行同一个版本的MediaWiki. 在此场景中需要执行以下步骤
 * 1) 安装一个普通的MediaWiki站点，安装完得到一个初始数据库. 这可以是完全空的(例如，任何表中没有行)，也可以有任何初始页面、用户、interwiki链接等. 这个是你想要在wiki家族添加多个网站的前提.  更多资料看
 * 2) 设置您的网络服务器以将来自多个地方的流量路由到一个 MediaWiki 安装.  这可以用于多个域、子域或子目录，并且可以通过软链接、别名、URL 重写或其他机制来完成.
 * 3) Add code to the top of , to detect the current wiki. For wikis by domain name:
 * 4) Configure settings that must differ for all wikis. For example:
 * 5) Configure per-wiki overrides. This should include at least   and  . 这些也可以包含在单独的文件中，例如 $code.

To create a new wiki, create its database and add its settings first, and then run.

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


 * 1) Install the first wiki as normal, via the web or CLI installer, which sets up your database and generates a  file.
 * 1) After installation, rename the generated   file to include the wiki ID (e.g. database name), like.
 * 1) 重复第二、三个步骤，这个目的是为了创建多份（看你要开几个站点久重新安装几次）新的LocalSettings.php文件
 * 1) Create a new   file that will load the correct one.

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

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


 * 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   into a sites directory that will be a match when the site is checked. For example, to capture http://example.com/mywiki, one would create the directory example.com.mywiki. e.g.,  . See the Drupal's   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   file in your main directory:
 * 9) Modify the   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.example.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  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链接. （或者安装使用） If the wikis are language editions, it is recommended to name the interwiki prefix after the exact language code. For example, "de" for the German wiki in your family. This way, you can connect pages about the same subject using language links.

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

If you have a central wiki for files, create a prefix for this as well. E.g.  to https://pool.example.org/wiki/$1 and enable the "Forward" checkbox to recognise it as a local wiki in the same family.

上传
首先确认 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'标识符的机制.