同じサーバ内で違うバージョンのPHPを使ってサイトを動かしたい場合のやり方をまとめました。
1.phpのソースファイルをダウンロード
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.4.45の設定にしたサイト
これでそれぞれ変わっていれば成功!