python3.doc_42
R e i - D r e a m
for Laravel
TOP > Python3 > Django(apacheから実行)
Guest
login

最終投稿日:2022年6月18日

Django(apacheから実行)
apache 経由で Django を実行する
● 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 にアクセスすると例のロケットが打ち上がります!!
ログインしてコメントを残そう!!


きっぷる