データベースサーバが動いたなら、やはりデータベースが管理するデータをWWWを使って検索・更新 を行いたい。そのためにはPHPの設定が必要である。
PHPも、もちろんデフォルトでインストールはされているが、設定を行わないことには使えない。
PostgreSQLの時と同じ参考書を使って設定したが、ずいぶん違っていたので、それを紹介する。
PHPをインストールすると、/usr/local/apache/libexecにlibphp3.soというファイル
ができると書いてあるが、findで調べたところ、/usr/lib/apacheにあった。
設定には直接関係無いけど、覚えておこう。
hhtpd.confを編集すると書いてあるが、srm.confも編集しなければならない。
Apacheのバージョンの違いなのか、Red Hat Linux 6.1だからかは分からないが、
設定ファイルが分散しているのだ。
しかも、参考書どおりにやってもうまくいかなかった。正しい(?)設定方法は次のとおり。
参考書には
| 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 |
と設定する。
参考書では、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の中にあるので、それを編集する。
参考書には、ここまでやってApacheを再起動すれば使えると書いてあるが、
この状態で再起動を掛けるとhttpd.confで文法エラーが出てしまう。
httpd.confに追加したLoadFileの行で文法エラーになってしまうのだ。
いろいろ悩んだが、あちこちいじくり回したら動いたので、いじった所を紹介する。
LoadFile行を追加した場所の上には、LoadModule行がたくさん
あるのだが、その最後にClearModuleListという行がある。
この行以降でLoadFileやLoadModuleを行うとエラーが出るよう
なので、ClearModuleList行を、LoadModule php3_module 〜
行の下に移動した。
これでApacheを再起動させたら、文法エラーは無くなった。
文法エラーはなくなったが、試しに参考書の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が実行された。
参考書では、DocumentRootのindex.htmlをindex.php3に変更し、 </body>行の上に<?phpinfo()?>という行を追加するように書いてあるので、 その通りに行った。
このページの「PHP Version 3.0.12」以下が、PHPの実行結果である。PHPがサーバマシンの情報を 収集して表示しているらしい。