Macportsで入れたPHP5.3と直接入れたPHP5.1の共存とapacheでの使いっぷりだよー
最初にmacportsでphp5(5.3.17)を導入。macのローカルでPHP5.3+cakePHP2のプログラムを開発してました。
その後で5.1使いたくなってPHP5.1.6を直接コンパイルでぶっこみました。(でも結局使いませんでした)
そんな事すっかり忘れてしばらくローカルでの環境のいらない暮らしを続け、再び5.3+cake2の開発に戻ろうとローカルにアクセスしたらcakephpが動かない。
エラーを吐くわけでもなくじっとしてる。あれー?と思ってwebrootにphpinfoのファイルを置いてアクセスしてみたらPHPが5.1.6との表示。そりゃー動かないわー。
5.3さんはご健在なので
$ php -v php 5.3.17
多分5.1導入時にlibphp5.soをうっかり5.1に上書きしてしまったんですねぇ。おっかないですねぇ。
という訳でとりあえず現在の5.1用phplib5.soをコピーしておいて
$ cp /opt/local/apache2/modules/libphp5.so /opt/local/apache2/modules/libphp5.1.so
macportsでもう一回php5入れたらいいんじゃないかな…という事でやってみました。
$ sudo port install php5 +postgresql +apache2 +pear
Warningが出て「port definitions are more than two weeks old, consider using selfupdate」とかなんとか。
なのでmacportsのupdateをかけてやったよ。
$ sudo port -d selfupdate $ sudo port upgrade outdated $ sudo port upgrade installed
するとPHP Versionは5.3.19に。アップデートされたみたいなんでapxsをアレします
別にphp入れなおさなくてもこの作業だけでいいよね多分。
$ cd /opt/local/apache2/modules $ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
無事に5.3用のlibphp5.soが生成されたので httpd.confでlibphp5.soを読み込んでいるか確認。
LoadModule php5_module modules/libphp5.so
5.1で動かしたい時はさっきのコピーした方を読み込めばいいね。
LoadModule php5_module modules/libphp5.1.so
そんなわけで無事にapacheが5.3で動いてくれました。cakeちゃんも動きます。よかった。
本当はphpenv+php-buildで切り替えしたかったんだけどphp-buildでphpインストール失敗するから諦めた。
それはまた元気な時に試したい。