環境
- CentOS: 7.3
- Apache: 2.4.6
- mod_wsgi: 3.4
- Python: 2.7
- Django: 1.11
Djangoの設定
Djangoのsettings.pyに以下の設定を追加し、デプロイ時のstaticディレクトリを指定する
STATIC_ROOT = "/var/www/static/"
デプロイユーザの作成
デプロイ用のユーザとしてwww-dataを追加。
ユーザ作成後はホームディレクトリにDjangoプロジェクトのデータを持ってくる。
(下の例ではgitからclone)
また、Apacheユーザからアクセスするためにはホームディレクトリに実行権限を持たせる必要があるため権限を変更する。
# useradd www-data -g apache # su - www-data $ git clone (gitリポジトリのURL) $ exit # chmod 770 /home/www-data/
staticディレクトリの作成
静的ファイルは専用のディレクトを用意。
その後、collectstaticコマンドで静的ファイルをコピーする。
こちらもApacheユーザ権限を追加する。
# mkdir /var/www/static # chown www-data:apache /var/www/static # su - www-data $ cd (gitリポジトリ名) $ python manage.py collectstatic $ exit # chmod -R 775 /var/www/static
Apacheの設定ファイルを編集
/etc/httpd/conf/httpd.confを編集し、以下を追記する。
以下の例は最小限の設定内容を記載している。
WSGIScriptAlias / /home/www-data/(gitリポジトリ名)/(Djangoプロジェクト名)/wsgi.py WSGIPythonPath /home/www-data/(gitリポジトリ名) Alias /static/ /var/www/static/ <Directory /home/www-data/(gitリポジトリ名)/(Djangoプロジェクト名)> <Files wsgi.py> Require all granted </Files> </Directory> <Directory /var/www/static> Order deny,allow Allow from all </Directory>
Apacheの再起動
systemctl restart httpd
確認
ブラウザで「http://127.0.0.1/」にアクセス