2009年9月12日

Snow Leopard で mod_wsgi を設定する

Snow Leopard で mod_wsgiをコンパイルして動作させてみます。

curl -O http://modwsgi.googlecode.com/files/mod_wsgi-3.0c4.tar.gz
tar xvfz mod_wsgi-3.0c4.tar.gz
cd mod_wsgi-3.0c4
./configure

もし Python2.6.2 を独自インストールしている場合は Makefile の修正が必要です。以下の修正を実施しないと、デフォルトでインストールされている 2.6.1 の方を参照しようとします。

--- Makefile.org        2009-09-12 20:35:02.000000000 +0900
+++ Makefile    2009-09-12 20:35:44.000000000 +0900
@@ -20,8 +20,8 @@

 CPPFLAGS =  -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -DNDEBUG
 CFLAGS =  -Wc,'-arch x86_64' -Wc,'-arch i386' -Wc,'-arch ppc7400'

-LDFLAGS =   -L/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config  -arch x86_64 -arch i386 -arch ppc7400
-LDLIBS =  -lpython2.6 -ldl
+LDFLAGS =   -L/Library//Frameworks  -arch x86_64 -arch i386 -arch ppc7400
+LDLIBS =  -framework Python -ldl

 all : mod_wsgi.la

コンパイルしてインストールします。

make
sudo make install

Apache の設定ファイルにモジュール設定を記述します。特にこだわりがないなら「/etc/apache2/httpd.conf」に追加してください。

LoadModule wsgi_module libexec/apache2/mod_wsgi.so

Trac を wsgi で動作させてみます。

「/Users/ユーザ名/Sites/trac/index.wsgi」として以下のようなファイルを作成します。

import sys
sys.stdout = sys.stderr

import os
os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/trac"
os.environ['PYTHON_EGG_CACHE'] = '/path/to/trac/eggs'

os.environ["HGENCODING"] = "UTF-8"

import trac.web.main

application = trac.web.main.dispatch_request

「/private/etc/apache2/other」以下に「wsgi.conf」のファイル名で以下のようなファイルを作成します。

WSGIScriptAlias /trac /Users/ユーザ名/Sites/trac/index.wsgi


<Directory /Users/ユーザ名/Sites/trac>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>

設定ファイルの文法が正しいことをチェックします。

apachectl configtest

Apache を再起動します。

sudo apachectl restart

「http://localhost/trac」にアクセスして動作が確認できれば成功です。

blog comments powered by Disqus