PHPのインストール
PHP
最近の Linux 系であれば、yum 等のパッケージ管理ソフトでインストールするのが良いです。
が、ここではソースコードからビルドする例を紹介しておきます。
※Apache-1.3 系の話なので情報としては古いです。
インストール手順
php-5.2.12、Apache DSO 対応の例です。
まず、PHP: Hypertext Preprocessor からアーカイブを取得し、展開します。
% bzip2 -dc php-5.2.12.tar.bz2 | tar xvf - % cd php-5.2.12
必要なオプションを指定しつつ、configure スクリプトを実行します。
./configure --with-pgsql --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs --enable-mbstring
--with-pgsql
は、PostgreSQL対応、--with-mysql
は、MySQL対応です。
--with-mysql
の後の=/usr/local/mysql
は、MySQLのインストールパスです。
--with-apxs
は Apache の DSO モジュールを使用する指定です。
Apache-2.x系であれば、--with-apxs2
で指定します。
--enable-mbstring
は、マルチバイト対応関数を使用するための指定です。
ちなみに、4.2.x までは --enable-mbstr-enc-trans
を指定していたものですが、4.3.0 以降廃止となったようです。
代わりに、実行時の設定 mbstring.encoding_translation で設定を行うようです。
なお、上記設定で、mbstring 変換エンジンを使用した HTTP 入力の文字エンコーディング変換が有効となります。
この機能が有効の場合、 HTTP 入力文字エンコーディングは、自動的に mbstring.internal_encoding に変換される、とのことです。
あとは、make, make install して終わりです。
% make % su # make install
libxml2
configre 実行時に、以下のようなエラーが出力されることがあります。
checkig libxml2 install dir... no checking for xml2-config path... configure: error: xml2-config not found. Please check your libxml2 installation.
これは、libxml2 のヘッダファイル等が無いことが原因ですので、RedHat 系であれば libxml2-devel パッケージをインストールしましょう。
configureの振る舞いについて
例えば、mb_send_mail()という関数がphpにはありますが、この関数がデフォルトで使うメール送信用コマンドはconfigure実行時に設定されるようです。
これは何を意味するかと言うと、configure実行時にはsendmail等のメール送信コマンドをインストールしておらず、PHPをインストールした後にsendmailコマンドをインストールした、、と言った場合にはデフォルトではsendmailコマンドは使われない(要するにmb_send_mail()が期待通りに動かない)ことになります。
従って、configure実行後にsendmailコマンドをインストールした場合には、php.iniで明示的に指定する、もしくはconfigureからやり直してPHPを再インストールする、のいずれかの対処が必要となります。
今のところ私がこの手の問題でひっかかったのはmb_send_mail()だけですが、他にもそのような設定値があるかもしれません。
設定
make install すると勝手に httpd.conf に php のモジュールを読み込むように設定が追加されますので、あとは以下のようにphpを実行する MIME-Type を設定すればOKです。
AddType application/x-httpd-php .php
動作確認
以下のような内容のファイルを拡張子を .php にして作成し、ブラウザ越しにアクセスした時に、PHP のデータがずらずら表示されている画面がでればOKです。
<? phpinfo(); ?>