Sidebar |
Django2 CGI handler + apache2.4 : メモ
執筆:2018.06.13
編集:2018.06.13 概要 python3.6 + django 2.0.6
基本的に wsgi_over_cgi.py 内の from wsgiref.handlers import CGIHandler
だけで動かないといけないのですが、django内の処理が間違っているために、環境変数名の変更 及びfrom . import wsgi app = wsgi.get_wsgi_application() CGIHandler().run(app) PATH_INFO、FORCE_SCRIPT_NAMEの変更設定がwsgi_emulate.py または wsgi_over_cgi.py および setting.py内に追加されています。 IfModuleで条件指定しているため wsgiモジュールが有効になった場合は自動的にwsgiで動作する 必要な設定 .htaccess # 追加分
<IfModule !mod_wsgi.c> <FilesMatch "\.(?i:pyc?)$"> order deny,allow deny from all # RewriteRule "" - [L,R=404] </FilesMatch> # wsgi_emulate.py 内で この値をもとに正しいURLを生成できるように成形される setenv BASE_URI / # / or /pathtositetop setenv SCRIPT_URL / # / or /pathtositetop/ RewriteRule "^$" start-django.cgi [L,T=application/x-httpd-cgi] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule "." start-django.cgi [L,T=application/x-httpd-cgi] </IfModule> apacheが古くて、環境変数が渡らない場合は start-django.cgi に以下を追加する os.environ.setdefault("BASE_URI", "/") # / or /pathtositetop
こちらに書き込んでいたほうが確実だろうos.environ.setdefault("SCRIPT_URL", "/") # / or /pathtositetop/ 表示されない場合
# https://pypi.python.org/pypi/pytz#downloads |
Sidebar |