いまさらながら、Djangoの実行環境を構築してみました。
OSパッケージ最新化、SELinux無効化
# yum -y update
# setenforce 0
# vi /etc/selinux/config
以下の通り編集
#SELINUX=enforcing
SELINUX=disabled
Python 3.6 のインストール
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
# yum install -y python36u python36u-libs python36u-devel python36u-pip
# pip3.6 install --upgrade pip
Django のインストール
# pip3.6 install django
# yum install -y python36u-mod_wsgi
# vi /etc/httpd/conf.modules.d/10-wsgi-python3.6.conf
以下を追加
# NOTE:
# Only one mod_wsgi can be loaded at a time.
# Don't attempt to load if already loaded.
<IfModule !wsgi_module>
LoadModule wsgi_module modules/mod_wsgi_python3.6.so
WSGIScriptAlias / /home/centos/sample/sample/wsgi.py
WSGIPythonPath /home/centos/sample/
Alias /static/ /home/centos/sample/static/
<Directory /home/centos/sample/static/>
Require all granted
</Directory>
<Directory /home/centos/sample/sample>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</IfModule>
# chmod -R g+rx ~centos
# chgrp -R apache ~centos
# systemctl start httpd
# systemctl status httpd
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --reload
Project(sample)を作成
$ django-admin.py startproject sample
$ cd sample
アプリケーション(web)を作成
$ python3.6 manage.py startapp web
$ vi sample/settings.py
以下のように編集
...
#ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'web',
]
...
STATIC_URL = '/static/'
STATIC_ROOT = '/home/centos/sample/static/'
$ vi sample/urls.py
以下のように編集
from django.urls import include, path
urlpatterns = [
path('web/', include('web.urls')),
path('admin/', admin.site.urls),
]
$ vi web/urls.py
以下のように編集
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
$ vi web/views.py
以下のように編集
# Create your views here.
from django.shortcuts import render
from django.template import loader
import hashlib
def index(request):
response = render(request, 'web/index.html')
return response
$ vi web/templates/web/index.html
以下のように編集
<p>Hello Django</p>
$ python3 manage.py collectstatic
ブラウザから http://ip/web/ にアクセスします。
参考
- https://udomomo.hatenablog.com/entry/2018/08/14/234153
- https://djandjan.hateblo.jp/entry/2018/03/08/225014