無料Wikiサービス | デモページ
Linuxなどのメモ書き

PHP FedoraCore4にPHP4のインストール


1. 概要

FedoraCore4にはPHP5.0.4が既にインストールされているが、追加でPHP4をインストールする時のメモ

2. 既存のPHP5の環境

表1 FedoraCore4の既存のPHP5環境

項目
説明
phpコマンドインストールpath
/usr/bin/php
PEARディレクトリ
/usr/share/pear

3. インストール

  • PHPはCLI SAPI/CGI SAPI両方インストールする(Apache用モジュールも)
  • 既存のPHP5と今回インストールするPHP4のCLI/CGI版はそれぞれ名前を分けて混乱しないようにする。

3.1 CLI SAPI + Apacheモジュールのインストール

(1) configure
configureでは以下のオプションを指定する。
  • --with-apxs2=/usr/sbin/apxs : Apache用モジュール(libphp4.so)も作成(*1)
  • --program-suffix=4 : 生成されるファイルに"4"を付けて、既存のphpファイルと混同しないようにする(例:php4)
  • --without-pear : PEARは既存のものを使用するのでインストールしない
# ./configure --with-apxs2=/usr/sbin/apxs --program-suffix=4 --without-pear --with-mysql

(*1) apxsがインストールされていない場合は、httpd-devel.i386にあるのでインストールしておく。(yum install httpd-devel.i386)

(2) make

# make
# make install

/usr/local/binにphp4がインストールされる。

(3) php.ini のインストール

php.iniファイルをコピーする。
# cp php.ini-dist /usr/local/lib/php.ini
(4) Apacheのconfigを修正

make installをすると、/etc/httpd/conf/httpd.confに以下の行が自動で追加されてしまうので、一旦削除しておく。(既存のphp5のconfigと競合してしまうため)

LoadModule php4_module        /usr/lib/httpd/modules/libphp4.so

3.2 CGI SAPIのインストール

(0) make clean
3.1でコンパイルしたCLIオブジェクトを削除
# make clean
(1) configure
--with-apxs2=/usr/sbin/apxs の代わりに--enable-cgiを指定する。また、--program-suffixに4.cgiを指定して、インストールされるコマンド名がphp4.cgiとなるようにする。
# ./configure --enable-cgi --program-suffix=4.cgi --without-pear --with-mysql

(2) make

# make
# make install

/usr/local/binにphp4.cgiがインストールされる。

4. Config

4.1 PHP4(モジュール動作)への切替え

PHP4をApacheモジュールとして動作させる場合は、既存のPHP5(モジュール動作)とは共存できないので、configの切替えによりPHP5<=>PHP4環境を切替える。

FedoraCore4ではPHPに関する設定は/etc/httpd/conf.d/php.confにある。(以下は抜粋)

FedoraCore4のPHP5関連設定

LoadModule php5_module modules/libphp5.so
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php
これを以下のようにすれば、PHP4のモジュール動作になる。
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
DirectoryIndex index.php

4.2 PHP4 - CGI動作の設定

PHP4をCGI動作させる場合は、既存のPHP5と混在が可能。以下ではVirtualHost(ホスト名:phpcgi)を設定して、phpcgiではPHP4(CGI)、それ以外では従来通りPHP5(モジュール)を動作させるようにする。CGI設定の詳細は「PHP CGIでの実行」参照。

CGI動作のhttpd.conf設定例
# PHP4(CGI)動作用のVirtualHost
<VirtualHost *:80>
    ServerAdmin tomita@xxxxxx.com
    DocumentRoot /usr/local/www
    ServerName phpcgi.xxxxxx.com

    # PHP4 CGI設定
    ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"
    <Directory /usr/local/www>
      AddHandler php4-script .php
      # (*1)
      Action php4-script /cgi-bin/php
      Options +ExecCGI +FollowSymLinks
    </Directory>
</VirtualHost>

(*1) Action設定により、.phpファイルへのリクエストは/usr/local/www/cgi-bin/phpへリダイレクトされる。cgi-bin/phpは"ln -s /usr/local/bin/php4.cgi ."のようにして、あらかじめphp4.cgiへのリンクにしておく必要がある。

関連ページ


最終更新 2007/07/12 13:35:29 - kztomita
(2007/07/12 12:55:00 作成)