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
というわけで、めでたしめでたし。