PHP3の設定

データベースサーバが動いたなら、やはりデータベースが管理するデータをWWWを使って検索・更新 を行いたい。そのためにはPHPの設定が必要である。

PHPも、もちろんデフォルトでインストールはされているが、設定を行わないことには使えない。
PostgreSQLの時と同じ参考書を使って設定したが、ずいぶん違っていたので、それを紹介する。

  1. インストール

    PHPをインストールすると、/usr/local/apache/libexecにlibphp3.soというファイル ができると書いてあるが、findで調べたところ、/usr/lib/apacheにあった。
    設定には直接関係無いけど、覚えておこう。

  2. Apacheの設定

    hhtpd.confを編集すると書いてあるが、srm.confも編集しなければならない。
    Apacheのバージョンの違いなのか、Red Hat Linux 6.1だからかは分からないが、 設定ファイルが分散しているのだ。
    しかも、参考書どおりにやってもうまくいかなかった。正しい(?)設定方法は次のとおり。

    1. httpd.confの設定

      参考書には

      LoadFile /usr/local/pgsql/lib/libpq.so ←この行を追加
      LoadModule php3_module libexec/libphp3.so ←この行のコメントアウトをはずす

      と書いてあるが、libpq.soはRed Hat Linux 6.1の場合、 /usr/local/pgsql/libの中には無く、/usr/libの中にあるので、 ディレクトリを置き換える。つまり、

      LoadFile /usr/lib/libpq.so
      LoadModule php3_module libexec/libphp3.so

      と設定する。

    2. srm.confの設定

      参考書では、httpd.confの以下の行のコメントアウトをはずすと書いてある。

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

      ところが、この行はhttpd.confには存在しない。実際にはsrm.confの中に 記述されているので、そちらで設定を行う。srm.confでは、

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

      となっているので、この行のコメントアウトをはずせばいい。上の行の.phtml.php3になっているが、このままにしておく。

      続いて、httpd.conf内のDirectoryIndexという行にindex.php3を 追加するように書いてあるが、これもsrm.confの中にあるので、それを編集する。

  3. Apacheの再起動

    参考書には、ここまでやってApacheを再起動すれば使えると書いてあるが、 この状態で再起動を掛けるとhttpd.confで文法エラーが出てしまう。
    httpd.confに追加したLoadFileの行で文法エラーになってしまうのだ。
    いろいろ悩んだが、あちこちいじくり回したら動いたので、いじった所を紹介する。

    1. ClearModuleList行の移動

      LoadFile行を追加した場所の上には、LoadModule行がたくさん あるのだが、その最後にClearModuleListという行がある。
      この行以降でLoadFileLoadModuleを行うとエラーが出るよう なので、ClearModuleList行を、LoadModule php3_module 〜 行の下に移動した。
      これでApacheを再起動させたら、文法エラーは無くなった。

    2. Extra Modulesの編集

      文法エラーはなくなったが、試しに参考書のHTMLを表示させたところ、 PHPが全く実行されなかった。
      で、httpd.confを眺めていたらExtra Modulesというところがあり、 ここを編集したら動いたので、これを紹介する。
      httpd.confの下のほうに

      # Extra Modules
      # AddModule mod_php.c
      # AddModule mod_php3.c
      # AddModule mod_perl.c

      という行があるが、これを

      # Extra Modules
      # AddModule mod_php.c
      AddModule mod_php3.c
      # AddModule mod_perl.c

      と、3行目のコメントアウトをはずす。
      これでApacheを再起動したら、PHPが実行された。

参考書では、DocumentRootindex.htmlindex.php3に変更し、 </body>行の上に<?phpinfo()?>という行を追加するように書いてあるので、 その通りに行った。

このページの「PHP Version 3.0.12」以下が、PHPの実行結果である。PHPがサーバマシンの情報を 収集して表示しているらしい。