PHP4のApacheへの組み込み

PHPは「PHP(Personal Home Page):Hypertext Processor」の略で、これをWebサーバに組み込むことで高度なホームページを作成することができる。Apacheのモジュールの1つで、HTML埋め込み式のスクリプト言語であり、セキュリティ面においてもCGIよりも優れ、またデータベースとも容易に連携することができる。  PHPのインストールも他のアプリケーションと同じようにソースをコンパイルして行うことになるが、動作に必要なアプリケーションはあらかじめインストールしておく必要がある。この流れ上PHPのインストールは最後になることが多い。それに伴って、PHPの設定オプションは非常に多くてかなり厄介である。はじめは必要最小限のオプションだけで動かし、だんだんと慣れてきてからその都度必要になるオプションを増やして再コンパイルしていけばいいと思う。(LinuxのRPMパッケージはできるだけ使わないようにする)

php

1)PHPのソースを「/usr/local/src」以下に展開したあと、そのディレクトリ内へ移動する。(なおソースファイルは通常インストール後は削除してもかまわないのだが、PHPについては後からモジュールを追加するということが多いので消さずに残しておくことを推奨する。)

# cd /usr/local/src/
# tar zxvf php-4.2.2.tar.gz
# cd php-4.2.2/

(configureオプションに--with-tclを入れると、pgaccessというプログラムがコンパイルされる。これはX Window上で動作するGUIのデータベース操作プログラムである。当然X環境がなければ動かないが、XFree86やTcl/tkが入っている環境ではこのオプションをつけて、pgaccessを動かして試してみてもよいだろう。)

2)configureを行う。ここではApacheに組み込むので--with-apxsオプションを必ずつけて実行する。以下はこれまでインストールしたアプリケーションのほとんどを組み込んでいるが、実際は必要なものだけをインストールすればよい。逆に正しくインストールされていないものを指定するとエラーが出てしまうので注意する。なおインストール先は「/usr/local/php4」としてある。

# ./configure --prefix=/usr/local/php4 --with-apxs=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/php4/lib --with-openssl=/usr/local/openssl \
--with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql --with-ming=/usr/local \
--with-pdflib=/usr/local --with-gd=/usr/local --with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local --with-tiff-dir=/usr --with-xpm-dir=/usr \
--with-freetype-dir=/usr/local --with-ttf=/usr/local --with-curl=/usr/local \
--with-xml=/usr --with-zlib=/usr --enable-trans-sid --enable-track-vars \
--enable-gd-native-ttf --enable-ftp --enable-sockets --enable-mbstring \
--enable-mbregex --enable-mbstr-enc-trans

(--enable-trans-sidで、セッション機能が有効になる。--enable-track-varsは、GET/POST/Cookieからの値が参照される。--enable-gd-native-ttfは、GDでのTrueTypeフォントを有効にする。--enable-ftpは、FTP関数を有効にする。--enable-mb*は、日本語等のマルチバイト関数を有効にする。)

3)コンパイルおよびインストールを行い、設定ファイルをコピーする。設定ファイルで注意することは、register-globalsの値がデフォルトでOffになっていることである。もし前のバージョンのPHPで出来上がっている環境で、PHP-4.2.2をインストールしたことでフォームや認証で入力された値が渡されなくなった場合は、この値をOnに変更して試してみる。

# ln -s /usr/local/php4/bin/php /usr/local/bin/php

4)CGI(コマンドライン)版のPHPをコンパイルする場合、上の(2)で--with-apxsオプションをはずし、代わりに--enable-discard-pathオプションをつけて(3)と同じように再コンパイルする。するとphpの実行ファイルが出来上がるので、インストールディレクトリ下のbin/phpから/usr/local/bin等へシンボリックリンクを張っておく。 (--enable-discard-pathで、HTMLで表示したときに余分なヘッダが表示されなくなる。)

5)Apacheの設定ファイルを修正する。SSLを入れているとき、phpのモジュールがSSLでしか有効になっていない場合があるので、LoadModuleやAddModuleは<IfModule SSL></IfModule> の外に書いておく。

# cd /usr/local/apache/conf
# vi httpd.conf
    LoadModule php4_module libexec/libphp4.so
    AddModule mod_php4.c
    DirectoryIndex ... index.php ...
    <IfModule mod_php4.c>
       AddType application/x-httpd-php .php
       AddType application/x-httpd-php-source .phps
</IfModule>

6)Apacheをリスタートし、動作を確認する。

5)PostgreSQLを起動する。通常はpostgresユーザで起動するが、rootの場合はsuコマンドにオプションをつけて起動させることもできる(su - postgresql -c "コマンド")。必要に応じて自動起動の設定も行う(自動起動スクリプト)。

# ../bin/apachectl configtest # service httpsd restart

PHPの動作確認
 (PHPの動作状況がブラウザに出力される)
CGI版PHPの動作確認
 (CGIが実行できるディレクトリに置いて適切なパーミッションを設定する)
GDの動作確認
 (gdおよびpngライブラリを有効にした場合)
PDFの動作確認
 (pdflibを有効にした場合)
FLASHの動作確認
  (mingを有効にした場合)

TOP OF PAGE