PR

サーバ内で複数のPHPバージョンを切り替える

php-multi-version Linux
php-multi-version

同じサーバ内で違うバージョンのPHPを使ってサイトを動かしたい場合のやり方をまとめました。

1.phpのソースファイルをダウンロード

PHP: Releases

2.サーバ内の下記にアップロードします。

/usr/local/src

今回は「php-5.3.9」「php-5.4.45」の2種類をインストールします。
php-5.3.9.tar.gz
php-5.4.45.tar.gz

3.php-5.3.9をインストール

# cd /usr/local/src
# tar zxvf php-5.3.9.tar.gz
# cd php-5.3.9
# ./configure  --prefix=/usr/share/php-5.3.9 \
--with-config-file-path=/usr/share/php-5.3.9 \
--enable-force-cgi-redirect \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-track-vars --enable-mbregex \
--with-libdir=lib64 \
--with-mysql=/usr/bin/ \
--without-pgsql \
--with-zlib-dir=/usr/include/ \
--with-gd \
--with-jpeg-dir=/usr/include \
--with-png-dir=/usr/include \
--with-openssl

依存関係にあるパッケージが不足しているとエラーが表示される場合があるので適宣追加してください。
エラーがなくなったら下記コマンドでmakeインストールを実行します。

# make
# make install

4.php-5.4.45をインストール

# cd /usr/local/src
# tar zxvf php-5.4.45.tar.gz
# cd php-5.4.45
# ./configure  --prefix=/usr/share/php-5.4.45 \
--with-config-file-path=/usr/share/php-5.4.45 \
--enable-mbstring \
--without-mysql \
--without-pgsql \
--with-zlib-dir=/usr/include/ \
--with-gd \
--with-jpeg-dir=/usr/include \
--with-png-dir=/usr/include \
--with-openssl

依存関係にあるパッケージが不足しているとエラーが表示される場合があるので適宣追加してください。
エラーがなくなったら下記コマンドでmakeインストールを実行します。

# make
# make install

5.シンボリックリンクを有効にする

vi /etc/httpd/conf/httpd.conf

ScriptAliasの場所を確認しておきます。
自分の環境だと588行目あたり

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"<br />

OptionsにFollowSymLinksが設定されていない場合設定します。
自分の環境だと594行目あたり
「Options None」→「Options FollowSymLinks」に変更

<Directory "/var/www/cgi-bin">
	AllowOverride None
	Options FollowSymLinks
	Order allow,deny
	Allow from all
</Directory>

6.シンボリックリンクを作成

.htaccessで指定するためにシンボリックリンクを設定します。
前工程で確認したScriptAlias配下にシンボリックリンクを作成します。

ln -s /usr/share/php-5.3.9/bin/php-cgi /var/www/cgi-bin/php-cgi-5.3.9
ln -s /usr/share/php-5.4.45/bin/php-cgi /var/www/cgi-bin/php-cgi-5.4.45

7.php.iniファイルの設定

php.iniファイルをコピーします。

現在動作している物を使いたい場合は現状動作しているphp.iniファイルをコピーします。

cp -rp /etc/php.ini /usr/share/php-5.3.9/php.ini
cp -rp /etc/php.ini /usr/share/php-5.4.45/php.ini

バージョンごとのphp.iniファイルを使用したい場合下記のファイルをコピーします。
この場合初期設定を行わないと正常に動作しないので各自php.iniの設定を環境に合わせて変更してください。

cp -rp /usr/local/src/php-5.3.9/php.ini-development /usr/share/php-5.3.9/php.ini
cp -rp /usr/local/src/php-5.4.45/php.ini-development /usr/share/php-5.4.45/php.ini

8..htaccessでphpのバージョン切り替え

.htaccessに下記の設定を記述

php-5.3.9にする場合

Action php5-cgi /cgi-bin/php-cgi-5.3.9
AddHandler php5-cgi .php

php-5.4.45にする場合

Action php5-cgi /cgi-bin/php-cgi-5.4.45
AddHandler php5-cgi .php

9.設定確認

phpinfo.phpなどファイルを作成しphpinfoでphpのバージョンを確認

<?php phpinfo(); ?>

php-5.3.9の設定にしたサイト
php-5.3.9

php-5.4.45の設定にしたサイト
php-5.4.45

これでそれぞれ変わっていれば成功!

タイトルとURLをコピーしました