コード溜め

備忘録的コンピュータ日記

Windows XPにてMediaWikiをPostgresSQL 8.3を使って動かす

2008-05-01 01:27:33 | Windowsコマンド CMD/WSH

Windows XPにてMediaWikiをPostgresSQL 8.3を使って動かす

参考図書:PostgreSQL徹底入門 第2版

8.3で動作が高速化されたPostgreSQLについて勉強する目的で,PostgreSQL8.3と組み合わせてWikiを動作させる方法を実践したので記述しています.また,手元でいろいろ勉強できるようにWindowsをターゲットプラットフォームにしています.

Wikiシステムとしては8.3への対応がはっきりしていたmediawikiを用いました.

使うもの:mediawiki 1.12.0,以下Windows版バイナリ PHP5.2.5 Apache2.2.8 PostgresSQL 8.3

準備 Apache2とPHP5が動くようにする

Apacheのインストール
・入手 http://httpd.apache.org/download.cgi Apacheのダウンロードページより apache_2.2.8-win32-x86-no_ssl.msiをダウンロード.

・msiを実行し,インストール開始
・インストール途中での入力など
 ・Server Infomationは特にこだわっては入力しない(実質スタンドアロンで使うため)つまり:
  ・Network Domain:localdomain
  ・server name : localhost
  ・Administrator's Email Address:webmaster@localhost.localdomain
  ・ラジオボタンもfor all Users,On port 80... のまま
  ・インストールタイプはTypicalでよし

PHPのインストール
・入手 http://www.php.net/downloads.php PHPのダウンロードページ
にてPHP 5.2.5 Installer版(php-5.2.5-win32-installer.msi)をダウンロード

・msiを実行しインストールを開始
 ・どのWebサーバに合わせたモジュールをインストールするか聞かれるので"Apache2.2"を選ぶ
 ・どこにApacheの設定ファイルがあるかを聞かれるので,apacheのインストールで特に変更をしていないのであれば,
C:/Program Files/Apache Software Foundation/Apache2.2/conf
を入力.これによりApacheの設定ファイル(httpd.conf)に自動的にPHPを呼び出すための設定が書き込まれる.

・インストール内容の選択ウインドウで,extensionをクリックし,下記の2つを選択する.
 ・PostgreSQL
 ・Multi-Byte String
 
 特にPostgreSQLエクステンションをインストールしないとmediawikiのコンフィグレーションの初めでPHPがDB対応になっていないとして,先に進めなくなる.

・インストール終了後,PHP.ini を編集する(スタートメニューのPHP 5->php.iniを選択)
 ・ファイルの最後でPostgre用のDLLなどの指定が行われているか確認する
    extension=php_pgsql.dll
    extension=php_mbstring.dll    
 ・文字コードの指定(特に指定しないでも動くように見える)
   mbstring.language = Japanese
   mbstring.internal_encoding = UTF-8
   mbstring.http_output = UTF-8

以上までやった段階で,PCをリブートするか,
apacheのアイコンをタスクトレイに出しているなら,右クリックメニューでOpen Apache Monitor を選択してでてくるWindowの右のrestartボタンを押す.
これによりPHPスクリプトをWebサーバから呼び出すことが出来る.

PostgresSQLのインストール


・入手 http://www.postgresql.jp/PostgreSQL/8_3/8_3_0 日本Postgreユーザ会のダウンロードページよりWindows版インストーラ(postgresql-8.3.0-1.zip)をダウンロード
・zipを解凍し,2つあるmsiのうちpostgresql-8.3.msiを実行する
・インストーラ実行中の入力は管理者パスワードを入力する以外,他はデフォルトのままインストール
(文字コード関連の指定もあるが,特にいじらず)

MediaWikのインストール&設定


・入手 http://www.mediawiki.org/wiki/Download mediawikiのダウンロードページからmediawiki-1.12.0.tar.gzをget
・解凍ソフトで展開し,c:/medawiki-1.12.0という名前で保存

Subversionを使って,リポジトリからセットアップし,最新版にアップデートしながら運用する方法もあるが,ここではアップデートの手動運用もDBのメンテナンスに絡んで勉強したいのでパッケージをインストール
備忘:http://meta.wikimedia.org/wiki/Help:Upgrading_MediaWiki

.Apacheの設定ファイルhttpd.confを編集(スタートメニューのApache HTTP Sever 2.2 -> Configure apache server -> edit the Apache httpd.conf configuration fileで呼び出せる)
#<IfModule mime_module>の次の行に
    AddType application/x-httpd-php .php
を加えておく# <- これをやらなくても動く

httpd.confにMediawikiの場所を教えるために
<IfModule alias_module>の次の行に
    Alias /mediawiki "C:/mediawiki-1.12.0"
    (以下略)
と下記のタグを記述する
<Directory "C:/mediawiki-1.12.0">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

さらに
<IfModule dir_module>の次の行に
    DirectoryIndex index.html index.php
    (以下略)

と記入し,再度apacheをリスタート.念のためブラウザのキャッシュもクリアする.

これでhttp://localhost/mediawiki/index.phpにアクセスするとmediawikiの画面になったら成功.
Please  set up the wiki first.とあるリンクを押して,Wikiページの設定に入る

Wikiの設定
・基本的な設定
 ・WikiName:Wikiに自分の好きな名前を付ける
 ・Languageとして" ja - 日本語"を選択
 ・Copyright:ややこしいことを考えずにデフォルトのまま" No licence metadata"
 ・Admin username: admin (忘れそうなので変えた)
 ・Password: wiki1(パスワードを決める)
 ・Password confirmに同じパスワードを入れる

 ・Object cacheing: No cahching

 ・メール関連の設定はすべてDisableにする(スタンドアロンで使うため)

・データベースの設定
 ・Database type: PostgreSQL
 ・database host: localhost
 ・database name: wikidb1 (後々足すことを考えて名前を変更)
 ・db username: wikiuser
 ・db password: wiki1 (次のDB password confirmも同様)
 ・Superuser account :チェック
 ・Superuser name: postgres
 ・Superuser password: g(Posgreのインストールのときに入れたもの)
 
 ・PostreSQL specific options(そのまま,以下のとおり)
  ・Database port:5432
  ・Schema for mediawiki: mediawiki
  ・Schema for tsearch: public

・上記を確認後Install MediaWiki!ボタン

なお,Installボタンを押したら,自動的にPosgreの操作などもやってくれた.pgsqlコマンドを使って直接操作が必要になるかと思っていたのに.つまらん.

仕上げ
 ・c:/mediawiki-1.12.0/configにあるLocalSetting.phpを 一つ上の c:/mediawiki-1.12.0にコピーする
  ・ついでに110行付近にある $wgDefaultSkin を例えば 'modern'等にするなどして遊ぶ
 ・さらに,セキュリティ的には configディレクトリ自体を削除したほうが良いらしいが,これは保留.