環境としてはPHP5はyumでパッケージ管理しようと思う。
PHP4はサポートが切れてるのでソースでインストールしてバージョンアップは基本的にしない方向で構築をする。
# yum -y install php
ソースファイルのダウンロード
# wget http://jp2.php.net/get/php-4.4.9.tar.gz/from/jp.php.net/mirror # tar zxvf php-4.4.9.tar.gz # cd php-4.4.9
このままインストールするとMAGIC TYPEがPHP5とかぶってしまってApacheが正常に起動しなくなるので以下のファイルを修正する
# vi sapi/apache2handler/sapi_apache2.c 以下の設定行をみつけて修正をします。 #define PHP_MAGIC_TYPE "application/x-httpd-php" ↓ #define PHP_MAGIC_TYPE "application/x-httpd-php4" 変更が完了したら保存して終了
で・・・環境が整っていればこのままコンパイルしてインストールすればいいのだけど最低限の機能は必要なので以下をインストールしておく
# yum -y install httpd-devel # yum -y install libjpeg-devel # yum -y install libpng-devel # yum -y install freetype-devel # yum -y install postgresql-devel # yum -y install mysql-devel
このくらいインストールしとけば問題ないかな?
PHP4をコンパイル、インストールしよう!
# ./configure \ --prefix=/usr/local/lib/php-4.4.9 \ --with-apxs2=/usr/sbin/apxs \ --enable-mbstring \ --with-pear \ --with-openssl \ --with-gd \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib-dir \ --enable-pcntl \ --with-mysql \ --with-pdo-mysql \ --with-pgsql \ --with-pdo-pgsql \ --enable-ftp \ --enable-sockets ※コンフィグオプションはそれぞれの環境にあわせて修正する # make 本当はテストした方が良いんだけどたぶん大丈夫なのでインストールしちゃう(w # make install
# cp php.ini-recommended /usr/local/lib/php-4.4.9/lib/php/php.ini # vi /usr/local/lib/php-4.4.9/lib/php/php.ini 以下の設定行をみつけてコメントアウトを外して修正 ;include_path = ".:/php/includes" ↓ include_path = ".:/usr/local/lib/php-4.4.9/lib/php" aliasを設定しておこう # vi /etc/profile 最終行に以下を追加 alias php4=/usr/local/lib/php-4.4.9/bin/php alias pear4=/usr/local/lib/php-4.4.9/bin/pear 追加し終わったら保存して終了 設定を反映させるのに以下のコマンドを実行 # source /etc/profile
PHP5のバージョンが表示されましたか??
PHP4のバージョンが表示されましたか??
【追加:2009年3月25日】
このままapacheを起動するとphp4⇒php5の順にモジュールをロードしてしまいエラーとなるのでhttpd.confとphp.confの修正を行う。
# vi /etc/httpd/conf.d/php.conf LoadModule php5_module modules/libphp5.so ↓ コメントアウトします。 # LoadModule php5_module modules/libphp5.so # vi /etc/httpd/conf/httpd.conf php4のLoadModuleよりも上にphp5のLoadModuleを追加 LoadModule php5_module modules/libphp5.so
基本はPHP5を使い、必要に応じてPHP4に変更する事にするためには
AddType application/x-httpd-php4 .php
を必要に応じたconfファイル内で設定すればおっけ~
.htaccessで設定も可能だよ