Web サーバーの構築 : PHP のインストール
今日は、PHP のインストール方法をご紹介します。PHP は Web アプリケーションの開発を主目的としたプログラミング言語で、Apache のモジュールとして実装されています(独立して動作させることもできます)。Linux, Apache, MySQL, PHP の頭文字をとって LAMP と称されるほど、Web アプリケーションの開発においてはメジャーな存在です。
PHP の最新バージョンは PHP5 系列ですが、広く普及している PHP4 とは完全な互換性がなく、まだ多くのアプリケーションが対応していません。そこで、今回は無難に PHP4 をインストールしようと思います。その気になれば、PHP4 と PHP5 をひとつのシステムに同居させることも可能なようです。そのあたりの詳細は Configure Apache to work with PHP4 and PHP5 をご覧ください。
それでは、Apache 用の PHP モジュール(mod_php)をインストールし、簡単な PHP ページを表示させるまでの手順をご紹介します。
PHP5 のマスク
前述のように、今回は PHP4 のみをインストールします。そのため、PHP5 が対象外になるように "/etc/portage/package.mask" でマスクします。以下のコマンドを実行すれば OK です。
echo '>=dev-lang/php-5.0.0' >> /etc/portage/package.mask
USEフラグの設定
GentooLinux の PHP パッケージは、とてもたくさんのUSEフラグを参照します。それらのリストはこちらのページにあります。
これらの多くは PHP パッケージでのみ使われるローカルUSEフラグですので、この数からしても、グローバルの "/etc/make.conf" で設定するのは適当ではありません。そこで、先日ご紹介した package.use で設定しましょう。たとえば、imap, xml, xsl フラグを有効にする場合は、以下のように記述します。
=dev-lang/php-4* imap xml xsl
もちろん、"/etc/make.conf" で設定することも可能です。私の場合、以下のフラグを有効にしました。
USEフラグ | 機能 |
---|---|
apache2 | Apache バージョン2 のモジュールとをビルドする |
berkdb | Berkeley DB サポートを有効にする |
cjk | 日本語サポートを有効にする |
crypt | 暗号化サポートを有効にする |
ctype | Character Type 関数を有効にする |
dba | dbm スタイルのデータベースの抽象化レイヤー |
expat | expat ライブラリサポートを有効にする |
ftp | FTP サポートを有効にする |
gd | GD ライブラリサポートを有効にする |
gdbm | GNU database ライブラリサポートを有効にする |
iconv | 文字コード変換機能を有効にする |
imap | IMAP サポートを有効にする |
mhash | mhash ライブラリのサポートを有効にする |
mysql | MySQL サポートを有効にする |
nls | Native Language Support を有効にする |
pcre | Perl 互換な正規表現を有効にする |
session | セッションサポートを有効にする |
sockets | ローレベルなソケット関数を有効にする |
ssl | SSL サポートを有効にする |
xml | XML パーサーを有効にする |
xmlrpc | XML-RPC サポートを有効にする |
xsl | XSLT サポートを有効にする |
利用する Web アプリケーションによって調整してください。
インストール
PHP もいつもどおり emerge でインストールできます。
emerge dev-lang/php
ただ、USEフラグの組み合わせによってはエラーが発生することがあるようです(私は berkdb フラグを設定したところ、dba も有効にしろと怒られました)。対処方法が emerge のメッセージの最後のほうに出力されるはずなので、それに従ってください。
なお、"dev-php/php" というパッケージもありますが、これは古いパッケージで、すでにメンテナンスされないことが決定しています。間違えないように注意してください。
設定
Apache モジュール版の PHP(mod_php)の設定は、"/etc/php/apache2-php4/php.ini" で行います。ほとんどはデフォルトで大丈夫ですが、日本語対応のために mbstring モジュールを適切に設定しなければなりません。私の場合は以下のように設定しています。
[mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = EUC-JP mbstring.http_output = EUC-JP mbstring.detect_order = auto
GentooLinux では、Apache のモジュールの有効・無効は Apache 起動時のコマンドラインで適切にシンボルを定義することで行います。PHP4 モジュールの場合は PHP4 というシンボルを定義します。具体的には、"/etc/conf.d/apache2" の APACHE2_OPTS に "-D PHP4" を追加します。以下は DEFAULT_VHOST("00_default_vhost.conf" を有効にするシンボル)と PHP4 を有効にした記述例です。
APACHE2_OPTS="-D DEFAULT_VHOST -D PHP4"
これらを変更したら、以下のようにして Apache を再起動しましょう。
/etc/init.d/apache restart
正常に再起動すれば OK です。もし失敗する場合は "/var/log/apache2/error_log" にエラーが出力されていると思いますので、適切に対処してください。
テストページを表示する
これまでの作業がうまくいっていれば、すでに PHP を使用する準備は完了しているはずです。さっそくテストページを表示させてみましょう。"/var/www/localhost/htdocs/test.php" というファイル名で以下の内容のファイルを作成してください(ドキュメントルートを変更している場合は適宜パスを読み替えてください)。
<?php phpinfo(); ?>
ファイルを保存したら、クライアントマシン上で Web ブラウザを起動して Web サーバーの "/test.php" にアクセスしてみてください。PHP の設定をリストアップしたページが表示されるはずです。このページは PHP の設定が一覧できるので、デバッグ用に便利です。しかし、Web 上で公開する場合には攻撃者に有利な情報を与えてしまうので、かならず削除しておいてください。
これで PHP が動作するようになりました。先日インストール方法をご紹介したMySQL と組み合わせれば、インターネット上で公開されている多数の Web アプリケーションが利用できます。どんどん試して、自分にあったものを見つけましょう!(^^)
|left:Apache の USE フラグ|right:FastCGI をサポートする|
> | center:HTTP に戻る |
詳しくはこちらの記事をどうぞ!
この記事にコメントする