DjangoをApacheで動かす

前提

最終的にhttp://example.com/django-site からアプリ閲覧ができるようにします。  

以下の構成のDjangoアプリをApacheで動かします。  

/var/www/django/
├── django-app
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ...
├── manage.py
├── static
│   ├── admin
│   ├── css
│   ├── fonts
│   └── js
└── django
    ├── __init__.py
    ├── __pycache__
    ├── settings.py
    ├── urls.py
    └── wsgi.py

構築手順

DjangoをApacheを使って動かすにはmod_sslが必要なのでインストールします。

$ yum install mod24_wsgi-python35 # Apache2.4, python3.5を使用している場合

次に、/etc/httpd/conf.d/virtual.confでApache側の設定を以下のようにします。

Alias /static/ /var/www/django/static/
<Directory /var/www/django/static>
  Require all granted
</Directory>

# IPはServerNameと同じ値
WSGIScriptAlias /django-site /var/www/django/django/wsgi.py process-group=example.com
WSGIDaemonProcess example.com python-home=/usr python-path=/var/www/django
WSGIProcessGroup example.com

<Directory /var/www/django/django>
<Files wsgi.py>
  Require all granted
</Files>
</Directory>

WSGIDaemonProcessのpython-homeは使用するPythonのprefixを指定します。以下のように確認することができます。

import sysconfig
sysconfig.get_config_vars('CONFIG_ARGS')
# 出力のうち--prefixの項目


また、Apacheで導入する際には静的ファイルの設定を別途行う必要があるため注意が必要です。
Django付属のWebサーバでは静的ファイル群を自動的に読み込んでくれますが、本番用にApacheなどを導入する際は別途設定する必要があります。
Django での static files の扱い方まとめ

/var/www/django/django/settings.pyのDEBUGの項目をFalseに変更

DEBUG = True
↓
DEBUG = False

また、最後の行に以下を追加します。

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

その後、以下のコマンドを実行すると、/var/www/django配下に静的ファイルディレクトリが設定されます。

$ python manage.py collectstatic

Apacheを再起動し、http://example.com/django-site から接続が確認できれば完了