旧ブログ

sambaiz.net に引っ越しました

Djangoのデプロイ

pythonで書いたプログラムの入出力をAPIとして提供するためにDjangoを使ってみました。 デプロイに当たって、巷に溢れてる古いバージョンの情報に流されて答えに行き着くまで大変苦労したので 現時点で動いた例を書いておきます。

環境

mod-wsgiのインストール

sudo aptitude install libapache2-mod-wsgi-py3
sudo service apache2 restart

設定

etc/apache2/sites-available/hogehoge.conf

WSGIScriptAlias / /project/application/application/wsgi.py (startprojectしたときに作成される)
WSGIPythonPath /usr/bin/python3

WSGIApplicationGroup %{GLOBAL}

<Directory /project/application/application>
<Files wsgi.py>
AllowOverride All
Require all granted
</Files>
</Directory>

wsgi.pyに追加

import os

### 追加
import sys

sys.path.append('/project/application/application') 
sys.path.append('/project/application')
### ここまで

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "python_api.settings")


from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

適用

sudo a2ensite hogehoge.conf
sudo service apache2 reload