php のバージョンを同居させる簡単な方法


■課題
php5.2はソースからインストールされている状態。

この状態でphp5.4をソースからインストールすると

パスが勝手に5.4のほうを向くようになってしまう。

php5.4はmake installしてしまったので

切り戻しなどもできなくて困った。

php5.2からmake installしなおしたらパスが戻った。

ならばcpしているソケットファイルで向き先が変わっていると予想。

以下の対応方法で同居(というか切り替え可能状態)に成功。

 

■対応方法

問題はapache/modules/libphp5.soが上書きされてしまうために起こる現象。

つまり、libphp5.soを切り替えられるようにしてやればよい。

 

make  したphp5.4からソケットファイルをもっていく。

cp .libs/libphp5.so /usr/local/apache2.2.17/modules/libphp5-php5.4.14.so

もともとあったlibphp5.soをリネームして切り替えられるようにしておく。

cd /usr/local/apache/modules

-rwxr-xr-x  libphp5-php5.2.14.so ←もともとあったソケットをリネーム
-rwxr-xr-x  libphp5-php5.4.14.so ←コピーしてもってくる
lrwxrwxrwx  libphp5.so -> libphp5-php5.2.14.so ←シンボリックリンク

 

このシンボリックリンクを切り替えれば向き先が変わる。

 ln -snf libphp5-php5.4.14.so libphp5.so

最後にapache restartするのを忘れずに。