WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

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フラグの設定

GentooLinuxPHP パッケージは、とてもたくさんのUSEフラグを参照します。それらのリストはこちらのページにあります。

これらの多くは PHP パッケージでのみ使われるローカルUSEフラグですので、この数からしても、グローバルの "/etc/make.conf" で設定するのは適当ではありません。そこで、先日ご紹介した package.use で設定しましょう。たとえば、imap, xml, xsl フラグを有効にする場合は、以下のように記述します。

=dev-lang/php-4* imap xml xsl

もちろん、"/etc/make.conf" で設定することも可能です。私の場合、以下のフラグを有効にしました。

USEフラグ機能
apache2Apache バージョン2 のモジュールとをビルドする
berkdbBerkeley DB サポートを有効にする
cjk日本語サポートを有効にする
crypt暗号化サポートを有効にする
ctypeCharacter Type 関数を有効にする
dbadbm スタイルのデータベースの抽象化レイヤー
expatexpat ライブラリサポートを有効にする
ftpFTP サポートを有効にする
gdGD ライブラリサポートを有効にする
gdbmGNU database ライブラリサポートを有効にする
iconv文字コード変換機能を有効にする
imapIMAP サポートを有効にする
mhashmhash ライブラリのサポートを有効にする
mysqlMySQL サポートを有効にする
nlsNative Language Support を有効にする
pcrePerl 互換な正規表現を有効にする
sessionセッションサポートを有効にする
socketsローレベルなソケット関数を有効にする
sslSSL サポートを有効にする
xmlXML パーサーを有効にする
xmlrpcXML-RPC サポートを有効にする
xslXSLT サポートを有効にする

利用する 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 に戻る
関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles