PHPのインストール

最終更新日時:2017-02-28 16:03:23
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(); ?>


お問い合わせは 掲示板 にて。