====== phpの小技集 ======
===== PHP4とPHP5を同一サーバ上でモジュールとして設定する方法 =====
環境としてはPHP5はyumでパッケージ管理しようと思う。\\
PHP4はサポートが切れてるのでソースでインストールしてバージョンアップは基本的にしない方向で構築をする。\\
\\
* PHP5のインストール
# yum -y install php
* PHP4のインストール
ソースファイルのダウンロード
# 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
* PHP4の設定
# 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
バージョンの確認をしてみよう\\
php -v\\
PHP5のバージョンが表示されましたか??\\
php4 -v\\
PHP4のバージョンが表示されましたか??\\
最後にapacheでどう振り分けるかの設定をする\\
【追加: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で設定も可能だよ\\