Edited at

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

More than 1 year has passed since last update.


概要

いくつか参考資料見たけど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