[SD0604#9] MediaWikiインストール&設定解説 ###はじめに こんにちは,しばむらしのぶです.今回は,本誌2月,3月号の本連載でご紹介したウィキペディアが動作しているWikiである,MediaWikiのインストール方法や各種設定方法をご紹介します.インストールの手順のほか,稼動する前に行っておきたい設定,MediaWikiのグループと権限,スキンの変更方法について解説します.なお,本原稿を執筆するにあたり,ウィキペディアのSysopであるSuisuiさんにさまざまなアドバイスをいただきました.感謝です. ###ターゲットバージョン 本原稿を執筆している段階(2/9)で,最新バージョンは1.5.6です.今回はこのバージョンをインストール・設定しました.ウィキペディアの運用仕様変更にともない,1.6の開発が進められていると聞いているので,本稿の掲載誌が発売されるころには,1.6のダウンロードが開始されているでしょう.しかし,インストールおよび設定の基本は同じでしょうから,差し支えはないはずです. なお,レガシーバージョンとして,1.4系,1.3系も依存するソフトウェア(PHPやMySQL)のバージョンアップやセキュリティ上の必要があれば,バージョンアップされているようです. ###システム要件 MediaWikiをインストールには,Apache,PHP,MySQLが動作している環境が必要です. 単体動作の最小限のスペックは,48MBのRAMでPentium133上で動作した報告があるそうですが,最小の推奨スペックは256MBのRAMです. なお,WikiMedia財団が使用しているサーバのスペックが以下のURLにあります. - http://meta.wikimedia.org/wiki/Wikimedia_servers ###検証環境 今回のインストールおよび動作検証の環境は,ロリポップとさくらインターネットのスタンダートコース(以下,さくらインターネット)の2つのホスティングサービスで試しました.どちらも手軽にMediaWikiを動かすことができました(註1). 「表1 検証環境」に今回利用したロリポップとさくらインターネットの環境(バージョンなど)を記しておきます.(同じホスティングサービスでも,サーバごとに若干バージョンが異なる可能性があります). 表1 検証環境 ,項目,ロリポップ,さくらインターネット ,Apache,1.3系,1.3.3 ,PHP,4.3.10,4.3.10 ,MySQL,不明,4.0.2x ,ftp環境,有,有 ,telnet環境,無,有 註1) MediaWikiのmath機能を利用したい場合,texvcが動作する環境が必要となります.この場合,安価なレンタルサーバでは大抵,texvcが動作しないため,math機能を利用できません. ###インストール手順 ##0.ダウンロード 次のURLから最新版をダウンロードします. - MediaWiki公式サイトのダウンロードページ -- http://www.mediawiki.org/wiki/Download ##1.DBの作成 インストールする前に,MySQLのDBを用意しておく必要があります. 今回の検証環境のようにレンタルサーバ環境などで,CREATE DATABASE権限がないMySQLをご利用の方で,まだDBを作成されていない方は作成しましょう.すでにDB作成済みの方は必要な情報を手元にそろえましょう.必要な情報はDBを作成する際指定する4つの項目と同一です. DBは,「DBサーバ」「データベース名」「ユーザ名」「パスワード」の4つの項目を指定して作成しますが,レンタルサーバの場合はあらかじめ指定された中から選択したり,自動的に付与される項目もあります.この4つの項目は,後にMediaWikiインストール時に入力必須な項目ですので,必ず覚えておいてください. なお,事前にMySQLとMySQLdをインストールしてある環境で,CREATE DATABASE権限を持つ方の場合,MediaWikiのインストールスクリプトの設定画面で上記4つの項目を入力すれば,DBを自動生成してくれます. # 初心者の方にワンポイントアドバイス Q.レンタルサーバですでにDBを作成していて他のCGIで利用しています.この場合,MediaWikiをインストールすることはできますか? A.できます. すでにDBを作成済みで使われている方も,「DBサーバ」「データベース名」「ユーザ名」「パスワード」の4つの項目を手元に揃えれば,MediaWikiを新たにインストールするのに差し支えありません.初心者にありがちな誤解として,ひとつのDBはひとつのCGIのみに対応しているのではないか,というのがありますが,そんなことはありません. ひとつのDBには,テーブル名が重ならなければ,基本的にいくつでもテーブルを作成することができます.DBを利用するCGIは,大抵,インストール時にテーブル名が重ならないよう,「Database table prefix」(テーブル名の先頭に付ける文字)を指定することができます. たとえば同一サーバ上に複数のMediaWikiをインストールしたい場合,「Database table prefix」をインストールごとに異なるものを指定すれば,それが可能です. ##2.アーカイブの展開 # アーカイブのアップロード ロリポップなどtelnetが使えないレンタルサーバの場合,ダウンロードしたアーカイブをあらかじめ展開しておいて,サーバにftpでアップロードします. さくらインターネットなどtelnetが使えるレンタルサーバの場合,アーカイブをそのままサーバにftpでアップロードし,サーバ上のコマンドで展開すると便利です. 以降,MediaWikiをインストールしたホームディレクトリを「$WIKI_HOME」と記載します. # $WIKI_HOME/configの属性変更 インストールスクリプトを起動する前に,$WIKI_HOME/configの属性を777または755に変更します(註2).これはインストーラが入力されたデータや,収集した環境情報を保存するLocalSettings.phpファイルを生成する際,書き込み権限が必要になるためです. 註2) $WIKI_HOME/configの属性 プロバイダによって,セキュリティポリシーの違いからCGIの動かせる属性の設定が異なります.さくらインターネットの場合は755,ロリポップの場合は777にしてください. ##3.インストーラーの起動および設定 MediaWikiのインストールスクリプトはWebブラウザから動作します.最初に次のURLにアクセスします.example.com/mediawikiはあなたがインストールしたサーバ/ディレクトリに適宜,読み替えてください. - http://example.com/mediawiki/index.php シンプルなWelcome画面があらわれ,その画面にある「set the wiki」リンクをクリックすると,各種設定項目を入力する設定画面があらわれます. ●図1 Welcome画面 {{file(index.php.jpg)}} ●図2 設定画面 {{file(config.jpg)}} 設定項目は大きく分けて,サイト設定(Site config),E-mailの通知および認証の設定(E-mail, e-mail notification and authentication setup),データベース設定(Database config)の3つがあります. 以下,各項目の詳細について解説します. #3.1 サイト設定項目 サイト設定には次の6つの項目の指定があります. - サイト名 - 連絡先e-mail - 言語 - メタデータの著作権とライセンス - シスオペのアカウント名 - Shared memory cachingの使用の有無 以下,選択や入力値の説明,注意点を記します. サイト名は空白,または"MediaWiki"は受け付けません.ここに入力された名前は,名前空間として,メタページやユーザインタフェース中に登場します.たとえば"Wikipedia"や"Openfacts"のように句読点を避けて記入してください. メタデータの著作権とライセンスは,「なし」,「GNU Free Documentation License 1.2」「Creative Commons license」の3つから選択できます.Wiki上で使用するデータの著作権やライセンスがインストール時点で不明瞭ならば,「なし」を選択してください. なお,「Creative Commons license」を選択する場合,「choose」をクリックしCreative Commons licenseの詳細を設定する必要があります.Creative Commonsのライセンス通知やアイコン,著作権メタデータをインストールするMediaWikiに組み込めます.この設定は外部サイトのhttp://creativecommons.org/上で行われます. ●図3 「Creative Commons license」選択画面 {{file(license.jpg)}} Shared memory cachingの使用の有無について,Turck MMCacheやeAccelerator,Memcachedなどをシステムを利用すると,MediaWikiの動作は速くなります.これらはとても良いソリューションだと言われていますが,インストールする必要性があります.今回の環境では使用はしませんでした. #3.2 E-mailの通知および認証の設定項目 MediaWikiではメール通知を行う機能が大きくわけて4つあります. - メールアドレス認証 メールアドレスを登録した際,いたずら防止などのため,登録されたメールアドレスに確認メールが届きます.届いたメールに記されたURLにアクセスすることで,メールアドレスの使用が有効になります. - パスワードリマインダー ログインユーザがパスワードを忘れて,ログインできなくなった際,メールでパスワードを通知する機能です. - メールフォーム 相手のメールアドレスを知らなくても,メールアドレスを登録してあるユーザにメールフォームを利用してメールを送信することができる機能です. ●図4 ユーザフォーム {{file(user-to-user-e-mail.jpg)}} - 更新通知 利用者自身の会話ページ,ウォッチリストに登録したページが更新された際,登録したメールアドレスに更新通知が届きます. ただし,1.5系では,この更新通知メールは件名部分が文字化けするバグがあります.1.6系では修正されているそうです. 以上,機能の概要です.次にインストール時に行う,それぞれの機能の設定項目について説明します. 「E-mail(general)」は,MediaWikiが稼動するサーバにメールの送信機能がない場合など,disableを選択すれば,その後の設定に関わらず,すべてのメールに関する機能が利用できなくなります. 「User-to-user e-mail」は,メールフォームの利用の有無を選択します.ここで利用できる設定にした場合,さらにユーザ自身がオプションで,利用の有無を選択することができます. 「E-mail notification」は,更新通知の利用の有無を選択できます.3つの選択肢があり,利用しない,ウォッチリストおよび会話ページに更新があった際通知,会話ページに更新があった際通知から選ぶことができます.ここで,利用できる設定にした場合,さらにユーザ自身がオプションで,利用の有無を設定できます. 「E-mail address authentication」は,メールアドレス認証の有無を選択できます. #3.3 データベース設定項目 データベースの設定は,次の7項目の指定や設定があります. - DBサーバ - データベース名 - DBユーザ - DBパスワード - テーブル名に付ける接頭文字 - charsetの選択 - スーパーユーザ DBサーバ,データベース名,DBユーザ,DBパスワード,接頭文字については本稿の「1.DBの作成」を参照してください. charsetの選択ですが,1.3や1.4系のMediaWikiがすでに稼動している環境でのアップグレードの場合,「Backwards-compatible UTF-8」を選択してください.「Experimental MySQL 4.1/5.0 UTF-8」はUTF-8環境を構築しますが,テストが不十分なので,壊れる可能性もあります. スーパーユーザの設定は,CREATE DATABASE権限を持つユーザで,まだDBをMySQL上に作成していない場合,スーパーユーザ名とパスワードを入力する必要があります.スーパーユーザの設定が不要な場合はデフォルト入力値のままインストールしてください. ##4.インストール後処理 インストールが成功すると,成功画面が表示されます. ●図5 インストール成功画面 {{file(after_instal_config.jpg)}} インストールが終わりましたら次の設定を行ってください. # $WIKI_HOME/configのパーミッション変更 インストール前に書き込み権限を付与していますが,不要な書き込み権限はなくした方がセキュリティ上好ましいので,インストール後は権限を600などに変更することを忘れないでください. # index.phpのパーミッション変更 ロリポップでは必要ありません.さくらインターネットなど実行phpファイルに特定の属性を与える場合,705(or 755)にします. # LocalSettings.phpの移動 $WIKI_HOME/config/LocalSettings.php を 親ディレクトリに移動します.コピーではなく,移動である点に注意してください. *$ mv $WIKI_HOME/config/LocalSettings.php $WIKI_HOME* # メインページの表示 LocalSettings.phpを移動すると,index.phpの表示画面がMediaWikiのメインページに変化します. ●図6 メインページ画面 {{file(after_install_indexphp.jpg)}} ###稼動する前に行っておきたい設定 稼動する前に行っておきたい設定をご紹介します. ##設定ファイル MediaWikiの設定ファイルには「表2 設定ファイル一覧」にある3つがあります.変更するのはLocalSettings.phpおよびLanguageJa.phpです.どんな設定項目があるのかはDefaultSettings.phpを見るとわかることがあります. なお,文字コードはいずれもUTF-8です. 「表2 設定ファイル一覧」 ,ファイル名,設置場所,記事 ,DefaultSettings.php,$WIKI_HOME/includes,設定を変更したい場合はLocalSettings.phpに項目をコピーして変更する ,LocalSettings.php,$WIKI_HOME,設定ファイル ,LanguageJa.php,$WIKI_HOME/languages,日本語表示に関する設定ファイル ##更新時刻の表示を世界標準時(GMT)から日本標準時(JST)に変える方法 LocalSettings.phpに以下の記述を追加します. *$wgLocalTZoffset = date("Z") / 3600;* または *$wgLocalTZoffset = "+9";* - http://meta.wikimedia.org/wiki/Timezone_adjustments ##ロゴの変更方法 サイトの左上に表示されるロゴ画像を変更します.デフォルトのサイズは135px×135pxです.変更方法は2通りあります. 一つ目は新たなパスを用意する方法です.用意した画像をサーバ上の画像が表示されるディレクトリにアップし,そのPathをLocalSettings.phpに記述します. *$wgLogo = '/path/to/your/logo.png';* 二つ目は既存のパスに新たな画像を上書きする方法です.次のパスにロゴ画像があります. *$WIKI_HOME/skins/common/images/wiki.png* ##ファイルのアップロード ファイルのアップロードを可能にしたい場合,設定が必要です.設定を行うと,ツールボックスに「アップロード」へのリンクが現れます.なお,この設定を行った場合,デフォルトでは,ログインユーザのみ,アップロードの利用が可能になります. # LocalSettings.phpの設定 $wgEnableUploadsをtrueにします.(コメントアウトされているので,#を外します). *$wgEnableUploads = true;* # 書き込み権限付与 サーバ上のMediaWikiをインストールしたディレクトリ直下にあるimagesディレクトリに書き込み権限を付与します. # 拡張子適用 アップロードできる拡張子の種類を増やすにはLocalSettings.phpに次の変数を追加し,配列に使用を許可する拡張子を追加します. *$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg');* ##サイドバーの変更 デフォルトで表示されるサイドバーの項目が構築するサイトに不適切な場合,次の方法で変更することができます.この設定は設定ファイルのほか,画面での設定も必要となります. # navigation変数設定 editinterface(MediaWiki名前空間の編集)権限を持つユーザでログインし,「特別ページ」の「表示メッセージ一覧」から「sidebar」を選択すると,navigation変数を設定できます. ●図7 sidebar画面{{file(Sidebar.jpg)}} 「sidebar」ページのnavigationの項目に次のような書式で変数が並んでいます.このURI変数および表示名変数はLanguageJa.phpで値が設定されています. ●リスト1 navigationの指定 URI変数|表示名変数 # LanguageJa.php値設定 URI変数|表示名変数の実値をLanguageJa.phpにセットします. ●リスト2 navigationの実値指定 '変数' => '実値', # 具体例 ナビゲーションに「ホームページ」と表示し,リンク先をhttp://example.com/index.htmlにしたい場合の「sidebar」ページとLanguageJa.phpの値の設定例です. - 「sidebar」ページのnavigationの項目 変数名は任意に付与しました。 *homeURI|home* - LanguageJa.php *'home' => 'ホームページ',* *'homeURI' => 'http://example.com/index.html',* ###MediaWikiのグループと権限 MediaWikiの権限は,現在,大きく仕様が変更・新規作成されている部分で,1.5系から1.6系になることで,権限の種類が大幅に増えます.今回は,1.5系の権限の解説を行いますが,1.6系増える予定の権限についても,少しだけ触れておきます. ## グループ MediaWikiでは,グループごとに使用できる権限がまとめられています.グループはLocalSettings.phpで新規作成もできますが,デフォルトのグループは以下の5つがあります.()内はLocalSettings.phpでのグループ表記です. - 未ログインユーザ(*) - ログインユーザ(user) - シスオペ(sysop) - ボット(bot) - ビューロクラット(bureaucrat) ユーザは1つ以上のグループに属します. なお,未ログインユーザおよびログインユーザは,ログイン状態によって自動的に割り振られるグループです.後述の「ユーザのグループ設定方法」で,この2つのグループをユーザに割り振ることはできません. また,デフォルトではコメントアウトされ使えませんが,開発者(developer)というグループもあります. ## 権限の種類とデフォルトグループ MediaWikiの権限およびデフォルトグループを「表3 MediaWikiの権限の種類とデフォルトグループ」にまとめます.次の項以下で解説をしている権限については,権限の脇にアスタリスクがついています. 「表3 MediaWikiの権限の種類とデフォルトグループ」 ,権限,権限内容,*,User,Sysop,Bot,bureaucrat,developer ,read,ページの閲覧,○,○,,,, ,edit,ページの編集,○,○,,,, ,move,ページの移動,,○,○,,, ,delete,ページの削除,,,○,,, ,protect,ページの保護(保護は1ページ単位),,,○,,, ,block,指定したユーザ(またはIP)をブロック,,,○,,, ,userrights,ユーザー権限の管理,,,,,○, ,createaccount,アカウントの作成,○,,○,,, ,upload(*),ファイルのアップロード,,○,○,,, ,rollback(*),ページ履歴差し戻し,,,○,,, ,patrol(*),パトロール機能,,,○,,, ,editinterface(*),MediaWiki名前空間の編集,,,○,,, ,siteadmin(*),データベースのロック,,,,,,○ ,bot(*),「最近更新したページ」無視,,,,○,, ,import,ページデータの取り込み ,,,○,,, ,importupload,XMLインポートによるページ作成,,,○,,, # upload ファイルのアップロードや保護されてないファイルの上書きをする権限です.この権限の使い方は「稼動する前に行っておきたい設定」の「ファイルのアップロード」を参照してください. # rollback ページ履歴中からの差し戻し権限です.荒らしなどのユーザから連続投稿があった際,該当ユーザの利用者ページのツールボックスにある「ユーザの投稿履歴」を開くと [rollback] リンクが現れます.このリンクをクリックすると,該当ユーザの連続投稿の直前までページを一気にロールバックすることができます. rollback機能の詳細は次のURLを参照してください. http://ja.wikipedia.org/wiki/Wikipedia:%E7%AE%A1%E7%90%86%E8%80%85(管理者#ページの差し戻し) # patrol パトロール機能は,「最近更新されたページ」に出てくるページの,赤い「!」記号を削除する機能です.赤い「!」記号は最新情報で内容の確認が取れてないことを意味します.権限を持つユーザがパトロール(該当ページの差分を閲覧)し,内容の確認ができたら,「パトロール済みにする」をクリックすることで,赤い「!」記号を削除することができます. パトロール機能の詳細については,次のURLを参照してください. http://ja.wikipedia.org/wiki/Wikipedia:%E4%BA%95%E6%88%B8%E7%AB%AF%E3%81%AE%E9%81%8E%E5%8E%BB%E3%83%AD%E3%82%B0/2005%E5%B9%B41%E6%9C%88(Wikipedia:井戸端の過去ログ/2005年1月#パトロール機能について説明して下さい) # editinterface editinterfaceは「MediaWiki名前空間の編集」権限です.「特別ページ」にある「表示メッセージ一覧」をクリックすると,「MediaWiki名前空間にある全てのシステムメッセージの一覧」が表示されます.権限を持つユーザは,このシステムメッセージの編集を行うことができます. # siteadmin siteadminはデータベースのロック/アンロックをする権限です.ロック時には特定のファイルを作成し,アンロック時には削除されます.このファイルの存在する場合,新しいページの追加や編集,またオプションの変更などデータベースの更新に関わる処理を受け付けず,ユーザにはメッセージが表示されます. # bot bot権限を持つユーザのページ編集は「最近更新したページ」にあがってこなくなります. 権限を付与するbotは通常,スペルミスなどを修正したり,ウィキペディアにおいては言語間リンクを張ったりするような良い振る舞いをするbotです.大量に記事を編集することになり,その振る舞いが「最近更新したページ」にあがってくると煩雑になるので,これを隠すために用意された権限です.なお,荒らしやSPAM行為を行う悪いbotに対しては,ユーザブロックで対処するのが一般的です. ## ユーザのグループ設定方法 ユーザのグループ設定は,画面操作によって行います. 1.userrights権限を持つユーザ(bureaucratグループに属するユーザ)でログインする. 2.「特別ページ」から「ユーザー権限の管理」ページをクリックする. 3.「ユーザーの所属グループの管理」に「ユーザ名」を指定し「編集」ボタンをクリックする. 4.「ユーザーの所属グループ」に「有効なグループ」を指定し「ユーザの所属グループを保存」ボタンをクリックする. ●図8 ユーザ権限の管理画面 {{file(userright.bmp)}} ## グループ権限の設定方法 グループの権限設定は,LocalSettings.phpでwgGroupPermissions変数に値を設定することで可能です.書式は次のとおりです. ●リスト3 グループ権限設定 $wgGroupPermissions['グループ名']['権限'] = true|false; たとえば,未ログインユーザに編集を禁止させる場合,次のように記述します. *$wgGroupPermissions['*']['edit'] = false;* グループ権限の設定方法の詳細は次のURLを参照してください. - http://meta.wikimedia.org/wiki/Help:User_levels ## 1.6系で追加される権限 筆者は未確認なのですが,1.6系では次の権限が追加されるそうです. - autoconfirmed  半保護を編集できるユーザー - createpage    新規ページの作成 - createtalk    新規ノートの作成 - reupload     メディアファイルの上書き - reupload-shared commonsでのメディアファイルの上書き - minoredit    細部の編集チェックの可否 - deletedhistory  削除された履歴の閲覧 - unwatchedpages  ウォッチされていないページの一覧の閲覧 ###スキンの変更方法 MediaWikiでは,スキンを外装と言います.スキンは$WIKI_HOME/skinsディレクトリに7種類格納されています.デフォルトでは,MonoBookスキンが適応されています. 次のURLにMediaWiki用のスキンがあるので,追加する際,利用できます.CSSの知識があれば自作も可能です. - http://meta.wikimedia.org/wiki/Gallery_of_user_styles ##ログインユーザによる変更 ログインユーザがスキンを変更したい場合,2種類の方法で変更することができます.この場合,どちらもスキン変更の影響範囲はログインしたユーザ自身のみです. 1つめは,「オプション」の「外装」ページで,$WIKI_HOME/skinsに格納されている好みのスキンを選択することができます. 2つめは,ログインユーザ自身の利用者ページのサブページ(註3)を利用した変更方法です.ユーザhogehogeが,自分が見えるスキンを変更したい場合,「利用者:hogehoge/monobook.css」や「利用者:hogehoge/monobook.js」を編集/保存することで,適応できます.なお,この設定はデフォルトはoffになっているため,使用するには,システム管理者がLocalsettings.phpに次の1行を追加しておく必要があります. *$wgAllowUserCss = true;* 註3) 親ページからスラッシュ「/」で分離された子ページのこと.詳細こちらを参照してください.サブページ http://ja.wikipedia.org/wiki/Wikipedia:%E3%82%B5%E3%83%96%E3%83%9A%E3%83%BC%E3%82%B8 ##Sysopによる変更 MediaWiki上で,Sysopグループに属しているユーザ,詳細に言うと,editinterface(名前空間の編集)権限を持つユーザは,デフォルトのスキンの設定を,MediaWiki上で行うことができます.この影響範囲は全ユーザです. 「特別ページ」にある「表示メッセージ一覧」にあるMonobook.cssおよびMonobook.jsを変更することで,スキンを変更することができます. ##システム管理者による変更 ftpができるシステム管理者は,「外装」ページで選択できるスキンの設置およびデフォルトのスキンの設定ができます.この影響範囲は全ユーザです. 選択できるスキンの設置場所は$WIKI_HOME/skinsです.設置さえすれば,すぐ「外装」ページの選択欄に反映されますので,稼動中のMediaWikiは注意してください. デフォルトスキンの設定はLocalsettings.phpで行います. *$wgDefaultSkin = 'monobook';* -Help:外装の詳細設定 - Meta http://meta.wikimedia.org/wiki/Help:%E5%A4%96%E8%A3%85%E3%81%AE%E8%A9%B3%E7%B4%B0%E8%A8%AD%E5%AE%9A#.E7.B7.A8.E9.9B.86.E3.83.9A.E3.83.BC.E3.82.B8 ###MediaWikiに関するオンラインドキュメント 最後にMediaWikiに関するオンラインドキュメントのリンクを記しておきます. - MediaWiki公式サイトのダウンロードページ -- http://www.mediawiki.org/wiki/Download - SourceFourge.netのMediaWikiプロジェクト -- http://sourceforge.net/projects/wikipedia/ - MediaZilla(MediaWikiのバグ管理) -- http://bugzilla.wikimedia.org/ - FAQ -- http://meta.wikimedia.org/wiki/MediaWiki_FAQ - ユーザーズガイド -- http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide - MediaWiki development -- http://meta.wikimedia.org/wiki/MediaWiki_development - ディスカッション用メーリングリスト -- http://mail.wikipedia.org/mailman/listinfo/mediawiki-l - リリース告知用メーリングリスト -- http://mail.wikipedia.org/mailman/listinfo/mediawiki-announce - IRC -- irc.freenode.netの#mediawikiチャネル