Gentoo へのインストール

このセクションでは、Gentoo Linux に PHP をインストールする際の注意事項とヒントについて説明します。

Portage (emerge) の使用

PHP ソースをダウンロードし独自でコンパイルすることも可能ですが、 Gentoo のパッケージシステムを使用することが、もっとも簡単でクリーンな インストール方法です。Linux でのソフトウエアのビルドに詳しく無いならば、 パッケージを使うと良いでしょう。

Gentoo システムのビルドをこれまでに行っていれば、Portage は 既に使用したことがあると思います。Apache と PHP のインストールは、 他のシステムツールのインストールと何ら変わる所はありません。

最初に、Apache 1.3.x をインストールするか Apache 2.x をインストールするか を決める必要があります。どちらでも PHP を使えます。ただし、以下に示すのは Apache 1.3.x を使う場合です。次に、Portage ツリーが最新かどうか チェックする必要があります。最近アップデートしていないなら、 まず emerge sync を実行します。これにより、 最新の安定版の Apache と PHP を使用できるようになります。

すべての用意が整ったら、以下の例のようにして、Apache と PHP を インストールできます。

例 4-7. Gentoo へのインストール例 (Apache 1.3 使用)

# emerge \<apache-2
# USE="-*" emerge php mod_php
# ebuild /var/db/pkg/dev-php/mod_php-<your PHP version>/mod_php-<your PHP version>.ebuild config
# nano /etc/conf.d/apache
  Add "-D PHP4" to APACHE_OPTS
  
# rc-update add apache default
# /etc/init.d/apache start

Gentoo のサイトには Portage についてのすばらしい マニュアル がありますので、参照してください。

Apache 2 を使う場合は、上記の例で、emerge apache とします。

設定の方法

上記では、PHP 拡張モジュールを有効にしないで emerge しました。 このマニュアルが書かれた時点で、Portage のデフォルトでは、 PEAR が必要とする XML 拡張モジュールだけが 有効とされます。 これでは不足の場合も、簡単に、MySQL, gettext, GD などの適当な拡張モジュールを 有効にすることができます。

PHP をソースからコンパイルする場合は、拡張モジュールを有効にするのに configure コマンドを使用しました。Gentoo では、「USE フラグ」を使って、configure スクリプトを自動的に設定します。 使用可能な USE フラグは、以下のようにすると表示されます。

例 4-8. 使用可能 USE フラグの一覧

# USE="-*" emerge -pv php

[ebuild  N    ] dev-php/php-4.3.6-r1  -X -berkdb -crypt -curl -debug -doc 
-fdftk -firebird -flash -freetds -gd -gd-external -gdbm -gmp -hardenedphp 
-imap -informix -ipv6 -java -jpeg -kerberos -ldap -mcal -memlimit -mssql 
-mysql -ncurses -nls -oci8 -odbc -pam -pdflib -png -postgres -qt -readline 
-snmp -spell -ssl -tiff -truetype -xml2 -yaz  3,876 kB

この出力から解る通り、多くの USE フラグが PHP に対して使用可能です。 よく見て、必要なものを選択してください。 選択したフラグに必要なライブラリがインストールされていない場合は、 Portage により適切にコンパイルされます。 emerge -pv をもう一度使用して、設定した USE フラグに応じて Portage が何をコンパイルするか確認してみるのも良いでしょう。 たとえば、X がインストールされていない場合に、X が必要となるような USE フラグを設定すると、PHP の前に X がコンパイルされます。このとき、 X のコンパイルには数時間もかかってしまいます。

MySQL, cURL および GD サポートを有効にして PHP をコンパイルする場合の コマンドは以下のようになります。

例 4-9. USE フラグを指定して PHP をインストールする

# USE="-* curl mysql gd" emerge php mod_php

この例で、php だけでなく mod_php も emerge することを忘れないようにしてください。 php はコマンドライン版の PHP に対応し、mod_php は Apache モジュール版の PHP に対応しています。

一般的な問題点