Djangoアプリケーションのデプロイ
Djangoでアプリケーション開発をする場合、Django付属の開発サーバー(manage.py)を使用していたが、どうもリロードが遅かったり、Linux用にデプロイするのが、めんどくさそうと思ったので、開発時からApacheを使ってホストできないか調べてみた。ちなみにリロードが遅いのは、pythonコードを読み込みなおしているから、という記述をどこかで見かけた。Apacheを使うと、リロードが必要になる。MaxRequestsPerChild 1を指定すればよいが、これだと、毎回リロードすることになり、Apacheを開発サーバーとして使う意味がなくなる。変更ファイルを検出して、自動でリスタートしてくれればいいけど、Windowsだとやり方が分からないので、とりあえず、Apacheは再起動することにする。
基本方針
- css、jsファイルなどのリソースファイルはリソース用Apacheのドキュメントルートに配置し、Django用Apacheではホストしない
- pythonコードはドキュメントルート外に配置する
- 開発に使用しているノートPCはネットにつなげない環境にいることも多いため、eclipseのワークスペースをそのまま配置できるようにしたい
方法
Apacheの設定ファイル
AllowとかOverrideとか、よく分かってないので、とりあえず動いた設定ファイル。Linuxで動かすときにはちゃんと調べとかないといけない。
httpd.confからextra/httpd-django.confを読み込むようにする。
WindowsのhostsファイルにローカルホストのIPアドレスを追加する。これで、VirtualHostに設定したServerNameでアクセスできるようになる。