CentOS7 への Django 環境構築

投稿者: | 2024年2月10日

いまさらながら、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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です