WebDBの構築
Apache 1.3.20 + PHP 4.0.6 + PostgreSQL 7.1.3

to home

  1. 概 略
  2.  かねてよりフリーなソフトでWebDBを構築してみようと思っておりましたが、 この度ようやく重い腰を上げました。
     apache に 日本語対応PHP を DSO として組み込みます。 PHPは PostgreSQLにも対応させてコンパイルします。 また、PHPには日本語正規表現も組み込みます。
     Linuxディストリビューションは LASER5 Linux 日本語 6.2(FTP版)を 使用しました。
     PCは COMPAQ PROLINER 5150(Pentium@150MHz,メモリ40MB)です。

  3. ダウンロード
  4.  必要なファイルをダウンロードします。

  5. 既存のプログラムを削除
  6.  多くのディストリビューションは apacheなどもインストールしています。 今回はソースからビルドするので削除しておきます。私の環境では、 apache-1.3.12がインストールされていました。

  7. Apache 1.3.20のインストール
    1. インストール
    2. ( http://osb.sra.co.jp/PostgreSQL/7.1/php.htmlを参照)
      /usr/local/src に apache_1.3.20.tar.gz があるものとする。 ユーザー root で行います。

      で、うまくインストールできたら最後に以下のメッセージが現れます。

      /usr/local/apache/bin に実行ファイルがインストールされています。

    3. 設定ファイル /usr/local/apache/conf/httpd.conf
    4. 起動
    5. で起動します。下のメッセージが表示されれば正常に起動しています。

    6. 確認
    7. ネットワーク内の別ホストより、Webブラウザで http://www.hogehoge.bogus/ を指定します。無事インストールが終了した旨のページが表示されたらOKです。

    8. Webページ編集
    9. http://www.hogehoge.bogus/ でリクエストした場合、 /usr/local/apache/htdocs 以下の index.html(httpd.confに指定) が 表示されます。あとはご自由に。

    10. Basic認証
    11. apache 用の passwd ファイルを /home/foo/lib に作成します。 ユーザー`foo' と `bar' を追加します。 パスワードファイルは apache専用の htpasswd を使用します。

      この /home/foo/lib/passwd を使って認証が通って、 はじめてアクセスさせたいディレクトリがあれば、httpd.conf に追加します。

      335行目辺りに(どこでもいいんですが<Directory>がある辺りがよいと..) 以下を挿入します。

      で、編集した httpd.conf を有効にするために restart させます。

    12. 自動起動
    13.  ブートしたら自動的に起動するように設定します。 以下の httpd を /etc/rc.d/init.d に作成します。 起動や停止は、/usr/local/apache/bin/httpd を直接実行するのではなく、 専用の /usr/local/apache/bin/apachectl を使用します。 (rpm でインストールした場合は、apachectl がない場合がありますので、 その時は、httpd で)

      実行属性を付与しておきます

      chkconfig で自動設定します.

      これでOKです。

  8. PostgreSQL 7.1.3 のインストール
    1. PostgreSQL 6.5.3 の退避
    2. /usr/local/pgsql に 6.5.3 がインストールされています。 今回もここにインストールしたいので、とりあえずもしもに備えて リネームしておきます。

    3. ユーザー postgres
    4. ユーザー postgres で作業する必要があるが、6.5.3の時に作成してないので 特になにもしない。
      もし、ユーザーpostgresを作成してなかったら, root で

      パスワードも設定

    5. インストールディレクトリ
    6. インストール先は /usr/local/pgsql となる。このオーナーは postgres にしておく。

    7. 7.1.3 ソース展開用ディレクトリ
    8. ユーザー postgres でソースを展開する必要がるそうな. そんで、展開される予定のディレクトリを先に作っておいて、それから chownする. (なんかスマートではないけど.. ref: http://osb.sra.co.jp/PostgreSQL/7.1/install.html)

    9. 7.1.3 インストール
    10. /usr/local/src に postgresql-7.1.3.tar.gz があるものとします。 ユーザー postgres で行います

      ビルドします。
      7.1からは postgresql-7.1.X/src に移動する必要がなく、postgresql-7.1.X の直下で、./configure を実行します。マニュアルも同時にインストールされる ようです。

      regression test を行います

      ようやくインストールです。

      完了.

    11. データベースクラスタ(/usr/local/pgsql/data)の指定
    12. データベースを格納するディレクトリを指定します。 まず、作成します。postgres ユーザーで作成します。

      /usr/local/pgsql/data がデータベースクラスタとなります。 環境変数PGDATAに設定します(以下で説明)。

    13. 環境変数を設定
    14. ~/.bashrc にでも追加しておきます。

      編集したら以下で設定を更新しておきます。

    15. データベースクラスタの作成
    16. これも postgres ユーザーで行います. PGDATA からデータベースクラスタの 位置を知ります。( -D オプションで別途指定も可能)

      いろいろメッセージがでてきますが、最後に以下のような表示が出ればOKです。

    17. 起動
    18. postmaster を直接起動するよりも、それをラップした安全な pg_ctl を 利用します。 当然、ユーザーは postgresです。

      デーモンプロセスです。
      ちょっとテストでデータベースを作成して、削除してみます。

      うん、何かよさそう。

    19. 自動起動の設定
    20. サンプルのスクリプトがある。

      /usr/local/src/postgresql-7.1.3/contrib/start-scripts/linux

      rootで、 このファイルを postgres の名前で /etc/rc.d/init.d の下にコピーします。 ちょっと編集します。以下を、2行目に追加して下さい。

      上の行の 345 はランレベルです。85は start priority, 15 は stop priority です。ご自分の環境に合わせて設定して下さい。 実行属性を与えます。

      chkconfig で起動設定します。

      リブートして確認してみましょう。

    21. ユーザーの作成
    22. 現状ではデータベースにアクセスできるのは PostgreSQLのスーパーユーザー である postgres だけです。
      データベースにアクセスするユーザーを作成します。 /usr/local/pgsql/bin/createuser を使用します。

      当然、ユーザー postgres で行います。 ユーザー`foo' を登録。

      データベースを作成する権限を与えます。他に追加するユーザーがない場合は、 2つ目の質問で n と答えます。

      次に、データーベースを作成する権限がないユーザー`bar' を作成します。

      ついでに Web+DBの時に必要な Apache 用の nobody ユーザー も作成しておきます。

      nobody にはデータベース作成の権限は付与しない。

  9. PHP 4.0.6 + PHP4用日本語正規表現 1.2.1のインストール
  10. 「WEB+DB PRESS Vol.3」(技術評論社)の p.67を参考にしています。 PHP 4.0.6 から日本語対応となりました。ビルド方法も少し変っている ようです。
    また、日本語正規表現のパッチは、php-4.0.6/ext に tar ballを解凍して、 PHP 4.0.6のビルド時にオプション指定すれば同時にやってくれるようです。

    1. インストール
    2. root でよいです。 /usr/local/src 下に php-4.0.6.tar.gz を置きます。
      (./buildconfでlibtoolが必要です。)

      ここで、日本語正規表現用のソースを展開.
      /usr/local/src/php-4.0.6/ext に php4_mbregex-1.2.1.tar.gz があるものと します。

      PHP本体をコンパルします。
      configure で指定するオプション (5つ)

    3. 設定ファイル(/usr/local/lib/php.ini)
    4. PHPの設定ファイルは、/usr/local/lib/php.ini です。 用意されているのでコピーしましょう。

      これを編集します。

    5. Apache の設定
    6. /usr/local/apache/conf/httpd.conf を編集します。

    7. テスト
    8. phpinfo.php という以下の1行のファイルを作成して、Webブラウザから 拝見.

      OK だぜ。
      表示された表の項目で PostgreSQL があれば PostgreSQLとの連携もOKだ。


to home

by masu
e-mail: massun.masumoto@nifty.ne.jp
URL : http://member.nifty.ne.jp/~masumoto/