Manual:Wiki family/ja

Below are instructions for how to set up MediaWiki to host more than one wiki. Multiple wikis located on the same server are called a wiki-family.

Giant switch statement
This will allow you to install more than one wiki on a single server, using the same source code checkout.


 * 1) Upload MediaWiki files to web folder on the webserver.
 * 2) Set up initial wiki as usual. 詳細は  を参照してください.
 * 3) After successful installation, move  into the root directory of your wiki and rename it in such a way to make it easy to track (e.g. LocalSettings_myFirstWiki.php)
 * 4) Repeat step two and three above for each wiki you wish to create, creating a new LocalSettings.php file for each wiki (e.g., LocalSettings_anotherWiki.php, etc.)
 * 5) If two or more separately installed wikis are to be merged to operate out of files of the main wiki, then after renaming and moving each of your LocalSettings.php files to the main wiki folder, change the variable  in each of the LocalSettings.php files to point to the main wiki's folder.
 * 6) Create a LocalSettings.php file for your global settings, then select one from the two possibilities below:


 * If you have different (sub)domains that link to one directory on your server, use this:


 * To set up multiple domains that point to the same MediaWiki code, you may need to modify your web server and possibly DNS configuration.

See the documentation of your web server and or web host for information on how to do that.


 * If your wikis are on the same domain but different paths (e.g.,   etc), you can use something like this:


 * If you use Short URL with the second case (directory based wikis), you need to check the two directories:, to symlink the sources , and adapt.

It is reccomended to use a different DB for each wiki (By setting a different for each wiki). However if you are limited to a single database, you can use a different prefix to separate the different installs.

It may also be useful to simply redirect any unrecognized wiki URL to the "main" url, instead of "This wiki is not available. Check configuration."

Updating wikifarm from the commandline
This method requires the to be present to run maintenance/update.php - which of course it isn't, from the commandline. This can be overcome by setting an environment variable:

If you were using the subdirectory method, you can use:

Drupalスタイルのサイト
上記において、同じソースコードを使用して単独のサーバ上で複数のwikiをインストールしました. このセットアップはユーザに対して完全に透過的で画像ディレクトリに観点からはかなり安全であるというアドバンテージを持っています.


 * すべてのMediaWikiを含むベースディレクトリを作成します. 例えば です.
 * バージョンを宣言するディレクトリにMediaWikiと追加ツールを通常通りにインストールする(例えば、/home/web/mediawiki/mediawiki-1.10.0)
 * バージョン宣言のディレクトリをコードディレクトリにリンクします. 例えば、
 * 画像と設定を含むsitesディレクトリを作成します:
 * 通常のものとして/codeディレクトリからwikiをセットアップします.
 * インストール成功後に、LocalSettings.phpをサイトがチェックされときにマッチするsitesディレクトリに移動させます. 例えば、http://mysite.com/mywiki を捕らえるために、mysite.com.mywikiディレクトリを作成します.  例えば、 です.  Drupalのsettings.phpファイルで詳細な情報を見ることが出来ます.
 * メディアファイルを使用するつもりでしたら. サイトのディレクトリにimagesディレクトリを作成します. 例えば、 です.  必要なら書き込み可能にしてください.
 * Manual:Wiki family/Drupal-style LocalSettings.phpファイルをメインディレクトリに設置してください:
 * LocalSettings.php を正しい位置を指定するように修正してください. 次の修正は特別な注意を払うのに値します:
 * First comment out the code relating to, (lines 16-20 in 1.15.3) as this is set to the code directory by.
 * 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.
 * Make further modifications as required.


 * Apache 2のインストールを準備してください. 例のサイトです: wiki.mysite.com
 * Create a link to the code directory, if required e.g.
 * 適切なVHostコンフィギュレーションを作成してください:

 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 #  


 * If you are setting the sites up locally, update your  file with the site names.

これでサイトは動作します. 私の場合、LocalSettings.phpとデータベースをインストールとアップデートするところから他のコードのコピーをしました.

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

共通のリソースを共有する複数のwiki
異なる言語でwikiを所有し、同じメディアファイルを他の単独のwikiで共有します.

例です:


 * en.yourwiki.org -
 * fr.yourwiki.org -
 * de.yourwiki.org -
 * pool.yourwiki.org - media-files for all of these wikis (like Commons).
 * Wikimedia Commonsのために と命名されたインターウィキが既に存在するので、我々のメディアファイルwikiを"pool"と命名します
 * 作る前に考えてください; メディアファイルウィキを"media"のように呼ぶ場合(例えば、media.example.com)、埋め込みメディア画像のための内部の名前空間と命名方に衝突する可能性があります. ( [[media:file.ext]] )

ファイルシステム上において、それぞれのwikiのためにフォルダを作成してください. その後、それぞれのディレクトリでインストール・スクリプトを実行して Mediawiki をインストールしてください.

この方法では複数のディレクトリに Mediawiki をインストールするため ソース・コード が重複します. To reduce this duplication and improve cache performance, you may wish to replace the  (≤ MW 1.20.x), ,  ,  ,  ,  ,   (≤ MW 1.17.x),  ,  ,  ,   and   (≥ MW 1.22.x ) directories for non-pool installations with symbolic links to the pool's directories: For example, enter  and then enter''

Don't forget to allow your Apache to Follow Symbolic Link editing your  adding   options

However, you should not replace the,  (  ≤ MW 1.16.x) and   directories.

To do the same in Windows, use

Wiki Configurations
It is imperative, that you modify LocalSettings.php of your different wiki installations right from the start (even before creating the symbolic links), or you will have  piling up in your server's memory. Include the line below into each LocalSettings.php.

$wgJobRunRate = 0;

Interwiki
MySQLデータベースを編集してすべてのwiki間のインターウィキリンクを設定しなければなりません
 * Interwikiテーブル
 *  iw_prefix - wikiの言語コードを入力します. ドイツ語は"de"、英語は"en"、"fr"はフランス語、mediapoolwikiは"pool"
 *  iw_url - wikiへの完全なURLのための場所です. 例えば" http://de.yourwiki.org/index.php/$1 "はドイツ語のwikiのためです("$1"を忘れずに!!!)

Enter as many records into table Interwiki than you have different wiki (so one record for German, one for English, one for media for example).

これで他の言語にある同じ記事にリンクすることが出来ます. Hauptseite を英語のMain_Pageに追加することで、ドイツ語のHauptseiteのページにリンクが作成されます. さらに詳細な情報についてはHelp:Interwiki linking/jaをご覧ください. For further information visit Help:Interwiki linking

Note to page Special:Interwiki: (you will see a long table) Add in the German wiki the prefix 'en' and the url http://en.yourwiki.org/index.php/$1 and set the checkbox 'Als lokales Wiki definiert'. Do it in the English wiki vice versa with checkbox 'Forward'. And in both wikis enter a second prefix 'pool' and http://pool.yourwiki.org/index.php/$1 and check the checkbox 'Forward'.

アップロード
pool-wikiの"images"フォルダが書き込み可能であることを確認してください.

"アップロードファイル"を変更しておくと便利です - 言語-wikiへのリンクがpoolwikiのアップロードサイトを指定します. それぞれの言語のwikiの"LocalSettings.php"を開き、以下のコードを追加します:

In 1.17, you'll also have to set $wgUploadMissingFileUrl to be redirected to the pool-wiki on red links.

共有ファイルを使用する
言語wikiでpoolwikiのファイルを使用するために、それぞれのwikiの"LocalSettings.php"を開き、以下の行を追加してください:

これで多言語間のwikiで によってpoolのファイルを統合できます.

画像の説明
それぞれの言語wikiにおいて、(管理者として)MediaWiki:Shareduploadメッセージを開きます.

次のようにテキストを変更します: This file is stored in our data-pool. For information and description, please visit the

description there. (And note the ':' at the beginning of the line, which stops 'pool' from being included in the interwiki list at the left of the page.)

PoolWikiで保存されたメディアの説明を出力したい場合、それぞれの言語wikiの"LocalSettings.php"に次のコードを追加してください:

共有設定
複数のwikiを所有している場合、おそらくそれらをまたがる同じような設定を共有したいでしょう. それは次のようにします. 下記で説明するように、他の設定よりも拡張機能の設定を他のファイルに分離することをお勧めします. それらに一つの大きなファイルを置くことが出来ますが、特定のニーズに依存していて柔軟性がありません.

ディレクトリ構造の例です:

en/ es/ pl/ ja/ pool/ ExtensionSettings.php WikiFamilySettings.php SharedMediaSettings.php

拡張機能の設定
ステップ 1 次の内容を持つExtensionSettings.phpと呼ばれるファイルを作成し上記の例と同じように設置します.

ステップ 2 共有設定を使用したいそれぞれのwikiのLocalSettings.phpファイルを編集し次の内容を追加します ステップ 3 様々な拡張機能へのすべての参照を追加してください

Wikiファミリー設定
wikiファミリー全体に適用したい設定があるとします. 例えば、すべてのwikiを同時にリードオンリーモードに設定できるようにしたいとします. またデータベース(単体または複数)のためにユーザ名/パスワード(すべて同じ)も保存したいとします. また、一つのファイルからwiki全体をまたがってユーザパーミッションをコントロールすることが出来ます.

ノート: Images/Media commonsまたはpoolを使用する場合、WikiFamilySettings.phpファイルでこれらの設定を適用しないことを推奨します. この情報はリポジトリよりもwikiファミリーですべてのwikiに適用することのみに当てはまります. それを個別のファイルに設定することをお勧めします.

Shared database tables
See Manual:Shared database for instructions on setting up shared database tables.

究極の最小解決方法
The "ultimate minimalist solution" consists of symlinks;

$ ls -og lrwxrwxrwx 1 16 2008-11-03 06:29 aaa.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 bbb.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 ccc.example.org -> mediawiki

Let's see a real example of. In real life we must deal with the slight differences in the names and databases of the sites we manage.

Note we still individually do database related tasks, e.g.,  (The above code should detect which wiki's update.php you are referring to.) Upgrading is simple if you download from Git. (Hopefully there is no more code that assumes there is only one wiki on the disk...)

画像
Unless you do not allow uploads or allow them only for your pool wiki, you will need to create separate image directories and alias them in your vhost configuration:, and in aaa.example.org's vhost: . Same for bbb and ccc.

However you may instead just prefer , where *.example.org/images/ just point to the same single directory. Or one could use e.g., *.example.org/$wgDBname/images/.

Adding new wikis
To add a wiki to a production
 * 1) add its configuration to your web server
 * 2) temporarily comment out the  check of config/index.php and then run it
 * 3) merge the config/LocalSettings.php produced into LocalSettings.php
 * 4) add some pages

Removing old wikis
To remove a wiki from a production
 * 1) remove its configuration from
 * 2) web server
 * 3) LocalSettings.php
 * 4) DROP DATABASE

Wikimedia Method
Another option is using the method that the Wikimedia Foundation uses. The rough steps are listed below. This method isn't for the faint of heart, but it has fairly good results, as can be seen by the success the Wikimedia Foundation has had by using this :-)  Configure a template copy of MediaWiki through the online configuration wizard. Edit the Main Page if you want a default main page for every wiki you create on your farm. After that, export your database with mysqldump, phpMyAdmin, etc. Save this on your server in the maintenance/ directory as something like . Now, write up a few quick scripts to create a new wiki. In a gist, you'll need to add it to a list of wikis, which can be flat-file based or MySQL/SQLite based, and then import the template database dump back into the database under the name of a new wiki. Use a standard suffix after the new database name (i.e. if the wiki is meta.yourdomain.net, then you might choose metawiki as the database name). In your configuration file, add something like this, fixing the database prefix and your domain as necessary:  Configure your DNS with a wildcard A record, and apache with a server alias (like ) and you should be in business. 

The script maintenance/update.php can be included from a another php script, update_farm.php for example, and this outer script will set the various SERVER values that are needed by your LocalSettings.php to set the correct $wgDBname:

and the command line for updating meta.yourdomain.net is, from your unique mediawiki directory:

Your unique LocalSettings.php (which usually consists in a few lines including a CommonSettings.php not directly accessible from the server) decodes the variable meta and will set the $wgDBname accordingly.

The DOCUMENT ROOT directory (similar to the value set in your httpd.conf) can also be used in your CommonSettings.php in order to have more flexibility, like using a test server.

You'll also need to fix the upload directories unless you want every wiki to use the same files. As said above, this is probably one of the hardest methods to do, and it requires more technical experience, but it can give really good, clean results.

Wiki Farm Extensions
There are several MediaWiki extensions that attempt to simplify hosting of several wikis by using just one code base: