2012年11月19日月曜日

MAMPにApacheモジュール追加してみた

ことの始まりは、MAMPのapacheにapxsコマンドでモジュール追加しようとしたら、config_vars.mkが無いという警告が出てビルドできないじゃないですか・・・。
というわけで、メモ

config_vars.mkが無いよ・・・

cannot open /Applications/MAMP/Library/build/config_vars.mk: No such file or directory at /Applications/MAMP/bin/apache2/bin/apxs line 217.


そんなわけで、いろいろ試したところapacheをソースからビルドして、
関連ファイルをコピーという、結局MAMPを使う意味が半減する罠にはまりました。

MAMPのapacheバージョン確認



/Applications/MAMP/bin/apache2/bin/httpd -v

Server version: Apache/2.2.22 (Unix)
Server built: Jul 4 2012 16:45:07


Apacheのソースからビルド



先ほど確認したバージョンと同じソースコードをダウンロードする

cd /usr/local/src
curl -L -O http://archive.apache.org/dist/httpd/httpd-2.2.22.tar.bz2
tar jxfv httpd-2.2.22.tar.bz2
cd httpd-2.2.22
./configure --enable-so --prefix=/tmp/httpd-2.2.22


errorが出ております・・・

configure: error: in `/usr/local/src/httpd-2.2.22':
configure: error: C compiler cannot create executables
See `config.log' for more details.


config.log見ると、ccが無くてNo such file or directoryが多数あるんですが、

./configure: line 4709: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory


MountainLionだから?かわかりませんが、パスが変わったみたいですね。
XcodeDefault.xctoolchainというパスがあったのでとりあえずシンボリックリンク張って対応

cd /Applications/Xcode.app/Contents/Developer/Toolchains
sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain


気を取り直して再実行

cd /usr/local/src/httpd-2.2.22
./configure --enable-so --prefix=/tmp/httpd-2.2.22
make
make install


必要なファイルおよびディレクトリーをコピーします。

cp -r /tmp/httpd-2.2.22/build /Applications/MAMP/Library/
cp -r /tmp/httpd-2.2.22/include /Applications/MAMP/Library/


必要に応じてconfig_vars.mkの中身のパスを書き換え

cd /Applications/MAMP/Library/build
perl -i -p -e 's/\/tmp\/httpd-2.2.22/\/Applications\/MAMP\/Library/g' *

環境により微調整が必要です。
vi /Applications/MAMP/Library/build/config_vars.mk
exp_sysconfdir = /Applications/MAMP/conf/apache
sysconfdir = /Applications/MAMP/conf/apache


これでApacheモジュール追加できるようになりました。

参考



  • http://zuzara.com/blog/2010/04/08/compiling-php5-3-2-on-mamp/

  • https://groups.google.com/forum/#!msg/phusion-passenger/5trJ1eoN6cE/phDt_M-UKIYJ