PostgreSQL上にMediaWiki環境を構築 (1)
NTT オープンソースソフトウェアセンタ 板垣 貴裕
PostgreSQL はソースコードでの配布の他に、バイナリ・パッケージとしても配布されています。今回はバイナリ・パッケージを使った手軽なインストール方法を紹介します。また、データベースである PostgreSQL は、それ単体では特に「遊べる」ものでは無いため、MediaWiki も一緒に導入してみます。MediaWikiはWikipediaでも使われているWikiです。OS 環境は Windows XP および Vista を想定しています。
Windows 版のバイナリ・パッケージは http://www.postgresql.org/ftp/binary/ からダウンロードできます。執筆時には最新版である postgresql-8.3.5-1.zip をダウンロードしました。パッケージは以下のファイルを含んでいます。
- PostgreSQL データベースサーバ
- pgAdmin III (GUI の管理コンソール)
- アプリケーション スタックビルダ
アプリケーション スタックビルダは各種サードパーティ製アプリケーションのダウンロードとインストールを行うユーティリティで、接続ドライバやウェブアプリケーションなどを一括導入できます。今回はこれを使って環境を構築します。
PostgreSQL データベースサーバのインストール
postgresql-8.3.5-1.zip を展開して postgresql-8.3.msi を起動するとインストールが始まります。今回の目的である「PostgreSQL をバックエンドとして MediaWiki を使う」ためであれば全てデフォルト設定で「次へ」をクリックし続ければ十分なのですが、せっかくなので少し解説を加えながら見て行きます。
Vista の場合 : インストールの途中で「ユーザーアカウント制御 (UAC)」に関する許可を求めるダイアログが数回表示されますが、そこで「続行」を選択すれば問題なくインストールできます。
最初にサービスの設定をします。サービスのインストールを行うと、Windows の起動に合わせて PostgreSQL サーバも起動します。このとき、セキュリティを確保するため、PostgreSQL サーバは Administrator ではなく、専用の Windows ユーザアカウントの下で起動されます。
データベースクラスタの初期化では、デフォルトの設定「ロケール = C, Encoding (Server) = UTF8, (Client) = SJIS」をそのまま使うことをお勧めします。
次に、手続き言語 (PL: Procedure Language) を選択します。SQL のみでもユーザ定義関数を作成できますが、PL ではフロー制御などの高度な機能が使用できます。サーバの管理やトリガの定義で便利ですので、PL/pgsqlはインストールしておくのが良いでしょう。「信頼される」「信頼されない」という記述がありますが、これは PL 言語がサンドボックス環境で実行されるかどうかを表します。「信頼される」ものはサンドボックス環境で実行され、外部ファイルの実行などデータベース以外の環境に影響を与える操作ができません。アクセスできるのはPostgreSQLから許可されたテーブルなどに制限され、サーバ環境を破壊するような関数は作成できません。一方、「信用されない」ものは、外部リソースにもアクセスできますが、特にセキュリティ面での扱いに注意が必要です。
図1 では、インストールする追加モジュールを選択します。拡張データ型、サーバ管理用の関数、ユーザ定義関数のサンプルなどさまざまなものがあります。以下のモジュールは、今回は使用しませんが、サーバを管理する上でお勧めなので一緒にインストールしておくと良いと思います。
- Adminpack
- 遠隔から設定ファイルやサーバログの読み書きを行います。pgAdmin III から設定ファイルを変更するために必要です。
- Page Inspect
- 8.3で追加されたモジュールで、特定のページの格納状態を表示します。データ量の見積りを含む、データベースの物理設計を行う場合に役立ちます。
- Buffer Cache
- 共有バッファ(shared_buffers)の内容を取得します。どのテーブルやインデックスがキャッシュされているかを調べられます。パフォーマンス解析(特に、肥大化するテーブルがキャッシュを圧迫しているような場合)に役立ちます。
- Freespace Map
-
再利用可能なページの管理状態を調べるモジュールです。再利用可能なページを管理し切れないためにVACUUMが効果を発揮できなくなることが無いよう監視できます。
- Row lock functions
- 行ロックの状態を調査します。特定の行の更新が競合してトランザクションがシリアライズされ、スループットが得られない状況を解析するために役立ちます。
- PGStatTuple
- テーブルとインデックスの密度や行の配置状態を確認する pgstatuple()、pgstatindex() が利用できるようになります。定期メンテナンスの必要性を判断するのに有用です。ただし、テーブルやインデックス全体を読み込むため多くの I/O が発生します。負荷の低い時間帯に行いましょう。
図1 : 貢献モジュール
最後にファイルのコピーとデータベースの初期化が行われ、しばらく待っていると完了します。その後、アプリケーション スタックビルダが自動的に起動します。
アプリケーション スタックビルダで追加アプリケーションの導入
続いて 8.3 のインストーラから新しく追加されたスタックビルダが起動します。ここでは、サードパーティ製のアプリケーションや、PostgreSQL への各種プログラミング言語用の接続ドライバなどを追加でインストールできます。特に最近はパッケージの品数も増えてきています (図2) 。今回は以下の2箇所のチェックボックスを ON にします。
- Web Applications > mediaWiki v1.13.2-1
- Web Development > ApachePHP v2.2.10-5.2.6-1
スタックビルダが指定したパッケージをダウンロードした後に、Apache と MediaWiki のセットアップが始まります。ここでは特に設定の変更は不要ですので、デフォルトのまま「次へ」をクリックすれば十分です。MediaWiki のインストール中に、自動的にデータベース・ユーザとして "mediawikiuser" が、Wiki 用のデータベースとして "mediawiki" が作成されます。
図2 : アプリケーション スタックビルダ
スタックビルダはスタートメニューにも登録されます。後から追加でインストールを行うこともできます。
Vista の場合 : ダウンロードの後、インストール中に権限不足のエラーが表示され、インストールに失敗するかもしれません。ファイルそのものは
- C:\Users\<ユーザ名>\AppData\Local\Temp\edb_apachephp.exe
- C:\Users\<ユーザ名>\AppData\Local\Temp\edb_mediawiki.exe
などの場所にダウンロードされていますので、exe ファイルを再度実行してインストールを継続してください。edb_mediawiki.exe の実行中に入力を求められる PostgreSQL の場所には「C:\Program Files\PostgreSQL\8.3」を入力します。
Windows の通知領域にアイコンを追加する
今回インストールを行った PostgreSQL と Apache は、Windows のサービスとして以下の名前で登録されています。これらは Windows の起動時に自動的に実行されます。
- PostgreSQL Database Server 8.3
- EnterpriseDB ApachePHP
もちろん Windows のサービス管理から起動/停止はできるのですが、手軽に制御するためには通知領域(システムトレイ)にアイコンがあると便利です。
Apache のアイコンを追加するには「C:\Program Files\PostgreSQL\EnterpriseDB-ApachePhp\apache\bin\ApacheMonitor.exe」を起動 します。これは Apache 本体と共にインストールされています。
一方、PostgreSQL のアイコンを追加するには、追加のプログラムとして pgtray (http://pgfoundry.org/projects/pgtray/) を導入します。サーバの起動や停止はスタートメニューから行うこともできますが、アイコンがあると起動中かどうかが一目でわかります。
それでは次に MediaWiki の初期設定を行います。