Python
Django
CentOS

CentOS 7 + python3 + Djangoの本番環境を動かしてみる

概要

いくつか参考資料見たけど2018/01時点の情報でまとまってる資料がない感じだったのでさっくり作業ログをまとめてみるテスト。
めんどいので、基本root作業で。

Python3のインストール

yum install -y https://centos7.iuscommunity.org/ius-release.rpm
yum install -y python36u python36u-libs python36u-devel python36u-pip

Djangoのインストール

pip3.6 install django

一般ユーザ(tetsuo)でDjangoの動作確認

su - tetsuo
django-admin.py startproject myapp

treeの出力結果

.
└── myapp
    ├── manage.py
    └── myapp
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

2 directories, 5 files

一般ユーザで開発用サーバの動作確認

まずはおまじない。

su - tetsuo
vi ~/myapp/myapp/settings.py

以下の内容で編集

編集前

ALLOWED_HOSTS = []

編集後

ALLOWED_HOSTS = ["*"]

開発用サーバの起動

python3.6 myapp/manage.py runserver 0.0.0.0:8000

ブラウザで

<サーバのグローバルIPアドレス>:8000

にアクセス。

こんな画面になってたらOK。
Kobito.2Ssap8.png

本番環境の準備

yumでmod_wsgiをインストール

yum install -y python36u-mod_wsgi

/etc/httpd/conf.modules.d/10-wsgi-python3.6.conf
に設定ファイルが出来ているので編集する。

vi /etc/httpd/conf.modules.d/10-wsgi-python3.6.conf

編集内容はこんな感じ。

編集前

<IfModule !wsgi_module>
    LoadModule wsgi_module modules/mod_wsgi_python3.6.so
</IfModule>

編集後

<IfModule !wsgi_module>
    LoadModule wsgi_module modules/mod_wsgi_python3.6.so
    WSGIScriptAlias / /home/tetsuo/myapp/myapp/wsgi.py
    WSGIPythonPath /home/tetsuo/myapp/
    <Directory /home/tetsuo/myapp/myapp>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
</IfModule>

apacheの実行ユーザが /home/tetsuo の下を見れるようにしておく

chmod -R g+rx ~tetsuo
chgrp -R apache ~tetsuo

apache再起動

service httpd restart

ブラウザで

<サーバのグローバルIPアドレス>

にアクセス。

こんな画面になってたらOK。
Kobito.7uxcSm.png