Mac OSX Leopardにmod_pythonを使おうとしたらエラーになる件

Pythonを使って、しっぽりとレビューの自動生計ツール作成等を
やっていたら楽しくなってきてしまいました。

じゃぁ、もう少し色々と知りたいのでdjangoでも触ってみようか
っと思い、まずmod_pythonを入れてみた。

こっから取ってきて
http://httpd.apache.org/modules/python-download.cgi

そのままいけんだろ!っと

./configure
make
sudo make install


して
httpd.confに

LoadModule python_module libexec/apache2/mod_python.so

を追加。


まぁ、なにもないだろうなぁと思いつつ


apachectl configtest

httpd: Syntax error on line 116 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_python.so into server: dlopen(/usr/libexec/apache2/mod_python.so, 10): no suitable image found. Did find:\n\t/usr/libexec/apache2/mod_python.so: mach-o, but wrong architecture


おおう?(゚ロ゚
あー。wrong architecture・・・。うーん・・・。

file /usr/libexec/apache2/mod_python.so.org
/usr/libexec/apache2/mod_python.so.org: Mach-O bundle i386


んーー。別にいいんじゃね?いや良くないな!

なるほどなぁ・・これじゃあi386のじゃ動かないよね
さてどうしようか・・・っと

http://www.modpython.org/pipermail/mod_python/2007-October/024394.html

これをみたら、 src/Makefileに-Wc,"arch -x86_64"を入れ込めば良いらしい。
make cleanして早速やりなおす。。


file /usr/libexec/apache2/mod_python.so.org
/usr/libexec/apache2/mod_python.so.org: Mach-O bundle i386

あれえ・・・。コピペじゃだめか。
どうもARCHFLAGSという環境変数をどうにかしないとだめっぽい。
結局以下のURLにて解決方を発見
http://d.hatena.ne.jp/paraches/20080126


でも、ウチはIntel MacなのでPPCに付いての記述は省いて

# requires flex 2.5.31 for reentrant support
LEX=/usr/bin/flex
INCLUDES=-I/Users/tmp/mod_python-3.3.1/src/include -I/usr/include/apache2 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
INCLUDES+= -Wc,-arch -Wc,i386 -Wc,-arch -Wc,x86_64
INCLUDES+= -Wl,-arch -Wl,i386 -Wl,-arch -Wl,x86_64
export ARCHFLAGS='-arch i386 -arch x86_64'
LIBS=-lm -framework Python -ldl
LDFLAGS= -Wl,-framework,Python -u _PyMac_Error -framework Python -Wl,-F.
OPT=
CFLAGS=$(OPT) $(INCLUDES)
srcdir=.


っとして再度makeしてinstall

file /usr/libexec/apache2/mod_python.so
/usr/libexec/apache2/mod_python.so: Mach-O universal binary with 2 architectures
/usr/libexec/apache2/mod_python.so (for architecture i386): Mach-O bundle i386
/usr/libexec/apache2/mod_python.so (for architecture x86_64): Mach-O 64-bit bundle x86_64


ん。よしよし。

apachectl configtest
Syntax OK

というわけで、めでたしめでたし。