komorebikoboshiのブログ

プログラミング記事(趣味レベル)が多め。

超簡単にMediaWikiをローカルで使えるようにする方法

注意
セキュリティ的にかなり問題がある方法だと思うので、普段はパソコンがインターネットにつながっていないという奇特な人*1のみ試してみてください。あと動いたのを確認したぐらいなので実用できるかはわかりません。

1. PHPをインストールする

PHP: Hypertext PreprocessorからPHPの実行ファイル(5.4.0以降*2)をダウンロードして適当なところに解凍します。私はWindowsバイナリの「PHP5.5.4 VC11 x64 Thread Safe」というのを使いました。Apacheなどのサーバは要りません。

(2. PATHを通す)

必要に応じてPATHを通します。php.exeの場所を直打ちするよという人は要りません。私は通していません。

3. MediaWikiを取ってくる

MediaWiki/ja - MediaWikiからダウンロードします。私はバージョン1.21.2を使いました。適当な場所に解凍します。

4. php.iniを用意する

1.で手に入れたPHPのフォルダの中に「php.ini-development」という名前のファイルがあると思いますので、さっき解凍したMediaWikiのフォルダーにコピーして「php.ini」に名前を変更します。(変更しなくてもいいかもしれませんが)そのファイルをテキストエディタで開いて、720行目あたりの

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"

の「; extension_dir = "ext"」のコメントを外します。

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"

もうひとつ、890行目あたりの「;extension=php_pdo_sqlite.dll」のコメントを外します

;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll

変更がすんだら保存します。

5. PHPのビルトインウェブサーバーをたてる

コマンドプロンプトを起動してMediaWikiのフォルダをカレントディレクトリにします。そこで、

php -S localhost:8080 -c php.ini

とかと打ちます。ここは、

  • PATHを通してない場合は phpphp.exeのフルパスにする
  • localhost:のあとの数字はポート番号なので好みの数字(他のソフトが使ってない番号)に変えてよい
  • 4. で用意したファイルの名前によって -c php.iniのところを変更する

という風に環境によって適当に変更してください。これで簡易サーバーが起動します。あ、ちなみに終了するときはCtrl + cを入力してください。

6. MediaWikiの設定をする

ブラウザで「http://localhost:8080/mw-config/index.php」にアクセスします。(数字は5. で決めたポート番号にしてください)MediaWikiの設定ページが出るので、指示に従って設定していきます。途中でライブラリが足りないから機能を制限するみたいなことが書いてありますがスルー。

7. LocalSettings.phpを設置する

設定がすむとダウンロードダイアログが開いてLocalSettings.phpをダウンロード(?)しますので、それをMediaWikiのフォルダ内にコピーします。

8. サーバーを再起動する

一応念のために、簡易サーバーを再起動します。Ctrl + cで終了して、また5. と同じコマンドを打つだけです。

9. ブラウザでアクセスする

http://localhost:8080/」にアクセスするとメインページが表示されます。お疲れ様でした。

もう一回注意

とりあえずセキュリティに関しては全く考えていません。あと、私はPHPとかには全くの素人なのでたぶん質問されてもほとんど回答できないかなー、と。外部から切り離された環境でとりあえず動けばラッキーみたいな人*3用の記事でした。

*1:私のことです

*2:たぶんこの時点で何をしようとしているのか分かると思いますが

*3:私のことです