前フリ

DjangoをApacheで動かす場合には、mod_pythonを使う方法とmod_wsgiを使う方法があって、mod_wsgiを使う場合はコンパイル済みのバイナリが配布されている。コンパイルされたときのPython、Apacheのバージョンと、開発に使っているPython、Apacheのバージョンが異なると、Apacheのログにwarningログが出力されて、少し気持ち悪い。Linuxだとgccでコンパイルすればいいが、Windowsでのコンパイル方法があまり情報が少なかったので、まとめておく。

コンパイル方法

準備

Python、Apacheをダウンロードしてインストールする。

コンパイルにはVisualStudioが必要なので、C++のExpress Editionをダウンロードしてインストールする。

Visual Studio 2008 Express Edition

C:\Program Files\Microsoft Visual Studio\9.0\VC\binにnmakeという実行ファイルがあり、これを使ってコンパイルするので、パスを通しておくこと。

mod_wsgiのソースをダウンロードする。Source Code Downloadsの下にあるmod_wsgi-3.3.tar.gzがソースファイルなので、これをダウンロードする。

コンパイル

mod_wsgiのソースを解凍すると、win32-ap22py26.mkというファイルがある。これがVisualStudioのmakeファイル。エディタで開いてみると、includeディレクトリとlibディレクトリのパスが書いてあるので、VisualStudio、Apache、Pythonのインストール先ディレクトリへのパスを適宜変更する。

mkファイルに書いてあるパスが違うと、リターン コード ’0xc0000135’といったエラーとなるので、パスは自分の環境に合わせて変更しておくこと。

コンパイルに必要な環境変数を読み込むために、バッチファイルが用意されている。コマンドプロンプトから、このバッチファイルを実行する。

C:\Program Files\Microsoft Visual Studio\9.0\Common7\Tools\vsvars32.bat

コンパイルするには、nmakeコマンドを実行する。

nmake -f win32-ap22py26.mk

実行後にできるsoファイルをApache/modulesにいれて、完了。