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で設定も可能だよ

php/kowaza0.txt · 最終更新: 2012/01/06 18:22 by miyako
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0