PostgreSQL + Apache/PHP のインストール
Last Modified: Tue Dec 27 00:06:02 JST 2011

PostgreSQL はフリーで使える優秀なデータベースマネージャで、データベースの構築と検索、管理などの機能を備えている。 PostgreSQL をコントロールするインターフェースは色々あるが、特に Apahe との連携を行うための PHP が便利だ。 PHP は元々 Apache にスクリプト言語を処理する機能を追加するモジュールなのだが、これにデータベースサーバとの交信機能も付属している。 この機能を利用すれば、データベースアクセス可能な Web サイトを構築できるというわけだ。

PostgreSQL の詳細については、PostgreSQL mailing list in Japan を参照するとよい。 現在の最新バージョンは 6.5.1 である。

PostgreSQL のインストールについては上記ページで丁寧に説明してあるのだが、 ここでは FreeBSD に特化したインストール手順を示すことにする。

PostgreSQL のインストール

詳細は install procedure of PostgreSQL 6.4 にも載っているので読んでおいてほしい。 FreeBSD でインストールした場合の手順を挙げておく。

  1. root になる
    以下の作業中、別のユーザへ su することがあるので注意すること。
  2. option SYSVSEM を追加して、kernel をリコンフィグ
    FreeBSD のインストールに従っているなら、もうできているはず。
  3. ユーザ postgres を作成
    adduser などを利用して作成する。 PostgreSQL の管理者となるユーザなので、きちんとパスワードや環境を設定すること。 ここでは postgres 専用ユーザとして作成するが、面倒だったら自分自身の rogin アカウントでもよい。 root ではインストールできないので注意する。
    環境変数に、以下の内容を追加する。
    setenv POSTGRES_HOME /usr/local/pgsql
    setenv PGLIB $POSTGRES_HOME/lib
    setenv PGDATA $POSTGRES_HOME/data
    setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH":"$PGLIB"
    setenv MANPATH "$MANPATH":$POSTGRES_HOME/man
    
  4. /usr/local/pgsql を作成
    root のうちに作業しておく。 というのも、postgres でインストールしようとしても、/usr/local に書き込み権利がないからだ。 ちゃんとオーナーシップを変更して、書き込めるようにしておく。
    # mkdir /usr/local/pgsql
    # chown postgres.postgres /usr/local/pgsql
    
  5. gmake をインストール
    PostgreSQL の Makefile は gmake 対応なので、gmake がインストールされているかどうかを確認する。 FreeBSD のデフォルトでは、gmake は入っていない。 なければ ports でインストールしてしまえばよい。
  6. 最新ソースをダウンロードし展開する
    /usr/local/src/postgres-6.5.1 というディレクトリに展開する。
  7. オーナーシップを変更
    postgres に変更しておく。
    # chown -R postgres.postgres postgres-6.5.1
    
  8. postgres でログイン
    root から su すればよい。
    # su postgres
    
  9. コンパイルを実行
    ソースディレクトリへ移動し、configure してからコンパイルする。
    % cd postgres-6.5.1/src
    % ./configure
    % gmake all
    
  10. インストールを実行
    できたファイルをコピーする。 manpage は別途指示しないとコピーしてくれない。
    % gmake install
    % gmake install-man
    
  11. データベースを初期化
    initdb コマンドでデータベースを初期化する。
    注)/usr/local/pgsql/bin に PATH が通っていても、インストール直後には起動できない。rehash すること。
    % initdb
    
  12. pg_hba.conf の変更
    ローカルからのアクセスならば、特に変更の必要はない。 もしリモートからのクエリーを受け付けるつもりなら、ホストに対してアクセス許可を与えるようスクリプトを書き直す。 詳細はマニュアルを参照すること。
  13. 起動スクリプトを作成
    root に戻って起動スクリプトを作成する。
    % exit
    # cd /usr/local/etc/rc.d
    # vi postmaster.sh
    
    内容はこう。
    #!/bin/sh
    export POSTGRES_HOME=/usr/local/pgsql
    export PGLIB=$POSTGRES_HOME/lib
    export PGDATA=$POSTGRES_HOME/data
    export LD_LIBRARY_PATH=$PGLIB
    postmaster=/usr/local/pgsql/bin/postmaster
    if [ -f $postmaster ]; then
            su postgres -c "$postmaster -S -i"
            echo -n ' postmaster'
    fi
    
  14. 起動スクリプトを使って起動
    直接 postmaster を起動してもよいが、root では起動できない。 おとなしくスクリプトを使うのが無難である。

PHP のインストール

PHP のオフィシャルページは www.php.net で、プログラムのソースはこのサイトで入手することができる。 一方、PHP の日本語化バージョンも存在する。 サポートページは PHP Internationalization だ。

インストール手順は以下の通りだが、実行する前に Apache のインストール/インストール指針 だけ読んでおいてほしい。 以下では、同じポリシーに従ってインストールすることを前提にいしている。

  1. 環境変数に値をセット
      # setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
    
  2. ソースをダウンロード
    本家英語版については、PHP3: Download PHP Engine を見れば、もっとも近いミラーサイトを教えてくれる。 日本語版は PHP Internationalization のトップページにリンクがあるので、それを落とせばよい。 これはパッチではなく、すべてのファイルがそろった tarball があるので、それをダウンロードすればよい。 ファイル名ならびに展開後のディレクトリ名が異なるが、インストール方法は全部同じなので、以下の説明は読み替えていってほしい。
  3. apache_1.3.9 を展開、httpd.h を変更
    httpd.h を変更して、HARD_SERVER_LIMIT を 400 に増やす。
      # tar zxf apache_1.3.9.tar.gz
      # cd apache_1.3.9
      # vi src/include/httpd.h
    
  4. configure を実行
    ディレクトリ名の 'p' は PHP 対応を表わす。
      # ./configure --prefix=/usr/local/apache-1.3.9p
    
  5. php-3.0.12 を展開、configure を実行
      # cd ..
      # tar zxf php-3.0.12.tar.gz
      # cd php-3.0.12
      # ./configure --with-pgsql --with-apache=../apache_1.3.9 --enable-track-vars
    
  6. php をコンパイル、セットアップ
      # make
      # make install
    
  7. php にあわせて、apache の configureを再実行
      # cd ../apache-1.3.9
      # ./configure --prefix=/usr/local/apache-1.3.9p --activate-module=src/modules/php3/libphp3.a
    
  8. apacheをコンパイル、インストール
      # make
      # make install
    
  9. php の設定ファイルをコピー
      # cd ../php-3.0.12
      # cp php3.ini-dist /usr/local/lib/php3.ini
    

あとは、通常のインストール手順 6 から同じようにやればよい。 ディレクトリの名前が異なるから、きちんと読み替えて実行すること。

それからもう一点、httpd.conf にも変更を加える必要がある。 .php3 という拡張子とタイプを結び付ける設定と、DirectoryIndex として index.php3 を追加することだ。

     #AddType application/x-httpd-php3 .php3
     #AddType application/x-httpd-php3-source .phps
       ↓
     AddType application/x-httpd-php3 .php3
     AddType application/x-httpd-php3-source .phps

     DirectoryIndex index.html
       ↓
     DirectoryIndex index.html index.php3

これをやっておかないと、せっかくの PHP スクリプトを解釈してくれない。


[back to index]