● mod_wsgi の入手
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
上記ページより、自分の環境にあった mod_wsgi をダウンロードする
例)
mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl
※[ap24]=apache24、[vc14]=apache のコンパイラー、[cp36]=python3.6、[win_amd64]=windows64bit
ダウンロードしたディレクトリにコマンドプロンプトを表示させ、以下を叩く
例)
pip install mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl
「Successfully installed mod-wsgi-4.5.24+ap24vc14」と表示されれば成功です。
次に以下を叩きます
mod_wsgi-express module-config
結果例)
LoadFile "c:/users/xxxx/anaconda3/python36.dll"
LoadModule wsgi_module "c:/users/xxxx/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/users/xxxx/anaconda3"
※上記コードはアパッチの設定に必要なのでメモしておく!
● アパッチの入手
windows64bit を使用している場合は 64bit 用の mod_wsgi が必要です。
それに対し、apache が 32bit だとエラーとなるため、64bit の apache を入手する必要があります。
https://www.apachelounge.com/download/
上記ページの左側のメニューより「VC14」を選択する
で、httpd-2.4.33-win64-VC14.zip を選択する。
ダウンロードできたら、Zip ファイルなので解凍して適当なディレクトリに配置して終了です。
例)
C:/Apache24 へ設置
[httpd.conf]の設定
AddDefaultCharset UTF-8 ※1行目に追記
erverRoot "c:/Apache24" ※そのまま
#ServerName www.example.com:80
⇒
ServerName localhost:80
DocumentRoot "c:/Apache24/htdocs" ※そのまま
<Directory "c:/Apache24/htdocs"> ※そのまま
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" ※そのまま
<Directory "c:/Apache24/cgi-bin"> ※そのまま
コマンドプロンプトを C:/Apache24/bin へ移動し以下を叩く
httpd ※特に何の変化もなければ読み込まれてるハズ!
その後 localhost にアクセスし「It works!」となれば成功です!
【メモ】
Windows 環境でも \ は使わずに / を使った方が事故らない!
● Django プロジェクトを作成する
D:/tmp/hoge に mysite プロジェクトを作成する
● Django に併せて apache を再度編集する
サンプルでは、バーチャルホストに Django のプロジェクトの実行環境を作成します
[httpd.conf]
LoadModule が連続するソースの最後に mod_wsgi-express module-config で取得したソースを追加する
LoadFile "c:/users/xxxx/anaconda3/python36.dll"
LoadModule wsgi_module "c:/users/xxxx/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/users/xxxx/anaconda3"
以下を追加
<Directory "D:/tmp/hoge/mysite/mysite"> ※wsgi.py がいる階層を指定する
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
以下のコメントを外す
Include conf/extra/httpd-vhosts.conf
[httpd-vhosts.conf]
以下の様に書き換えます
<VirtualHost *:80>
ServerAdmin dumy@localhost
DocumentRoot "c:/Apache24/htdocs"
ServerName localhost
ErrorLog "C:/Apache24/logs/hoge.log"
CustomLog "C:/Apache24/logs/hoge.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin
[email protected]
DocumentRoot "D:/tmp/hoge/mysite/mysite" ※wsgi.py がいる階層を指定する
ServerName djangolocalhost ※サーバ名を任意に決める
ErrorLog "C:/Apache24/logs/hoge.log"
CustomLog "C:/Apache24/logs/hoge.log" common
WSGIScriptAlias / "D:/tmp/hoge/mysite/mysite/wsgi.py" ※バーチャルホストにアクセスがあったら wsgi.py を実行する
</VirtualHost>
● C:/Windows/System32/drivers/etc/hosts の設定
以下を追記する
127.0.0.1 localhost djangolocalhost
これで以下の2つの URL でアクセスが可能となります。
localshot
djangolocalhost
以上の設定で apache を立ち上げ djangolocal にアクセスすると例のロケットが打ち上がります!!