mod_wsgiをWindowsでコンパイルする方法
前フリ
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’といったエラーとなるので、パスは自分の環境に合わせて変更しておくこと。
コンパイルに必要な環境変数を読み込むために、バッチファイルが用意されている。コマンドプロンプトから、このバッチファイルを実行する。
コンパイルするには、nmakeコマンドを実行する。
実行後にできるsoファイルをApache/modulesにいれて、完了。