読者です 読者をやめる 読者になる 読者になる

てきとう

ワーワーゆうとります

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インストール失敗するから諦めた。
それはまた元気な時に試したい。