windows10+apache+modwsgi+djangoの設定
2022/04/23
PR
2020/09/28
コンテンツ内容
windows10+apache+modwsgi+djangoの設定
アナコンダ+DjangoでWebアプリを作成。完成したので公開する為にサーバのセットアップて所でエラー出まくり泣きそう。一応動くようになったのですがアナコンダで楽して後で痛い目にあった話。
このdjango開発するのはrunserverと言われる。テスト環境が用意されていて
開発するのも簡単にできるのです。・・・がいざ公開するとなるとrunserverではなくってwebサーバが必要になるのですね。
設定方法が昔と今で違うとかWindowsとlinuxの違いとかで悪戦苦闘。
一通りVM上で動くようになったので設定方法をメモします。
環境
VM+windows10+python3.7+apache24+modwsgi+django2
まず確認すること
modwsgiがなかなかくせ者この設定の為に下記を確認する必要あり
1.Windowsが32bitなのか64bitなのか。
2.pythonのバージョン。 python -Vで確認
3.apacheのVC15かVC16版なのか 9/28ではvc16版しかない。
※私がダウンロードした時はvc15版のmodwsgiがあったのでこれを使った
まずはこの3点を合わせる。
apacheインストール
1.apacheダウンロード
https://httpd.apache.org/ > apacheランジ を探してください。
apacheラウンジからwindows版apacheをダウンロード。
私はVC15版apacheを使ったが
最近のだとVC16版しかない。
解凍したものをc:\apache24にCOPY。
http.confのサーバ名
2.httpd -k installでインストール
VCRUNTIMEがないと出たらmicrosoftのサイトからVCランタイムを探してインストール
VC15かVC16かは正しいものをインストールする。
https://www.microsoft.com/ja-jp/download/details.aspx?id=48145
3.http -k startで起動
ブラウザからhttp://localhost
it work!と出たらOK。
pythonインストール
1.https://www.python.org/
python3.8.x とかpython3.7とあるのでお好きな方で。
私はpython3.7
2.普通にインストール。
https://www.python.org/downloads/windows/からカスタムインストール
インストール先をc:\python
pathのレはいらない。
3.インストールできたら
Windows環境変数にpathを追加
c:\ptrhon
c:\python\scripts
djangoインストール
pip install django
modwsgiインストール
私はこれをインストール。
mod_wsgi-4.7.0+ap24vc15-cp37-cp37m-win_amd64.whl
vc15がコンパイラのバージョン
cp37がpythonバージョン
amd64が64bit
今はmod_wsgi-4.7.1-cp37-cp37m-win_amd64.whlとかになっていてVC16のみ。
ダウンロートしたファイルを
pip install mod_wsgi-4.7.0+ap24vc15-cp37-cp37m-win_amd64.whl
c:\python37\lib\site-pakagesにインストールされる。
djangoのひな形を作る
mkdir c:\test
cd c:\test
django-admin startproject proj1
django-admin startapp app1
python manage.py runserver
動くか確認。
apache設定
http.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#django config LoadFile C:/Python37/python37.dll LoadModule wsgi_module c:/Python37/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd WSGIPythonHome c:/Python37 WSGIScriptAlias / c:/test/proj1/proj1/wsgi.py WSGIPythonPath c:/test/proj1/proj1 <Directory c:/test/proj1/proj1> <Files wsgi.py> Require all granted </Files> </Directory> Alias /static/ c:/test/proj1/static/ <Directory c:/test/proj1/static> Require all granted </Directory> |
django settings.py
settings.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
DEBUG = True #DEBUG = False ALLOWED_HOSTS = ['localhost','127.0.0.1','*'] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app1', ] LANGUAGE_CODE = 'ja' STATIC_URL = '/static/' STATIC_ROOT = 'c:/test/proj1/static' |
django wsgi.py
wsgi.py
1 2 3 |
import sys sys.path.append('c:/test/proj1') sys.path.append('c:/test/proj1/proj1') |
django static設定
css jsなどのフォルダをstaticフォルダに集めてくる。CSSなどがCOPYされる。adminの画面が崩れるなどはここに集まっていない為。
1 |
python manage.py collectstatic |
出ない時は
C:\Apache24\logsを見てデバッグ。
まとめ
知ってる人は常識とか言われるかもしれなが
linuxとwindowで違うことや世代ごとのバージョンで
違うことで嵌ったのでメモ。
次はwindowsServerにセットアップしてみよう。