python(Django)とapacheの連携(mod_wsgi)
DjangoとApacheで苦戦したのでメモ
Apacheはここで落とす
http://www.apachelounge.com/download/
wsgiと合わせる必要あり。32bit版推奨。展開して任意のフォルダへ。
WindowsならCドライブ直下に置くとhttp.confの編集量が減る。
mod_wsgiはココから落としてApacheのpluginフォルダへ。
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
Apacheのエラーメッセージ対策でhttpd.confに下記を追加
ServerName localhost:80
mod_wsgiを使用するためApacheのhttpd.confに下記を追加 (パスは適宜変更のこと)
LoadModule wsgi_module modules/mod_wsgi.so WSGIPythonPath C:/HPLC_database/myproject/myproject WSGIScriptAlias / C:/HPLC_database/myproject/myproject/wsgi.py <Directory "C:/HPLC_database/myproject/myproject/"> Order deny,allow Allow from all </Directory>
そのままだと403が出るため、
httpd.confの下行をコメントアウトする。
(苦戦した一番の原因がココ)
#<Directory /> # AllowOverride none # Require all Deny #</Directory>
Apacheのhttpd.exeはコマンドラインで動かすと挙動がわかりやすい。
httpd.exe -k install #インストール httpd.exe -k uninstall #アンインストール httpd.exe -k start #開始 httpd.exe -k stop #終了
wsgi.pyはWSGIScriptAliasに記載した位置に作成
#wsgi.py # -*-coding: sjis -*- import os #Djangoの環境設定ファイル(settings.py)を指定 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings") import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
こんなところか。4時間位使ってしまった。