LinuxにDjangoをインストールする手順

LinuxにDjango(ジャンゴ)をインストールする手順を紹介します。

Djangoとは、Pythonで作られているのWEBフレームワークです。
Djangoには、画面生成・DB処理・アプリケーション処理など多くの機能が標準で使用できます。
またDjangoは多く導入実績やナレッジもあるため、学習にもおススメです。

インストールにはPythonが必要なので、まだ導入していない人は↓を参考に導入してみてください。

あわせて読みたい
LinuxにPython3系をインストールする手順 LinuxにPythonをインストールする手順を紹介します。 LinuxにはデフォルトでPython2.xがインストールされています。 今回はPython3.x系のダウンロード手順になりますの...

本手順のインストールが終わりましたら、ぜひDjangoの入門者向きのまとめ記事も確認してみてください。サンプルを作りながら一つ一つ学んでいけます。

Djangoの超初心者向け入門書

Djangoの最強入門書!手を動かしながらブログアプリ(CMS)を作成して脱初心者しよう!

目次

インストール環境

今回のインストール環境は以下になります。
uWSGIは後ほどWebサーバとの連携で必要となるため導入しておきます。

  • CentOS:CentOS Linux release 8.3.2011
  • Python:Python 3.9.6
  • Django:Django 4.0
  • uWSGI:uWSGI 2.0.20

インストール手順

手順の流れは以下になります。

  1. 事前準備
  2. 仮想実行環境の作成
  3. Djangoのインストール
  4. uWSGIのインストール

事前準備

まずはプロジェクトを作成するディレクトリを作成しましょう。

↓が実施コマンドとログです。

[libproc@centos8 ~]$ mkdir django
[libproc@centos8 ~]$ cd django
[libproc@centos8 django]$ pwd
/home/libproc/django

※ユーザーのホームディレクトリを、/home/libproc としています。

Pythonの仮想環境の作成

Pythonの仮想環境を作成します。

仮想環境とは、仮想的なPythonの開発環境を構築する機能で、Python3.3以降では標準機能として提供されています。仮想環境は1つのマシン上に複数構築することができますので、仮想環境ごとにpipでインストールするパッケージの状態を変えるといったことが可能となります。

↓が仮想環境が作成コマンドです。

python -m venv <仮想実行環境名>

※上記のコマンド python は、python3 のシンポリックリンクですので、シンボリックリンク未設定の場合は、python3 コマンドにて実施してください。

↓が実施ログです。仮想環境名に”venv”を指定(pythonコマンドの最後の引数)して仮想環境を作成し、アクティベートしています。

[libproc@centos8 django]$ python -m venv venv
[libproc@centos8 django]$ ls -l
total 4
drwxrwxr-x 5 libproc libproc 4096 Dec 18 15:43 venv
[libproc@centos8 django]$ source ./venv/bin/activate
(venv) [libproc@centos8 django]$

↑のようにコマンドプロンプトの前に指定した仮想環境名(venv)が表示されれば、仮想環境の作成とアクティベートは成功です。

Djangoをインストール

Djangoをインストールしていきます。

↓がDjangoインストールコマンドです。

pip install django

※仮想環境をアクティベートした状態での pythonpip コマンドは、仮想環境内のシンボリックリンクが使われます。

↓が実施ログです。仮想環境をアクティベートした状態で実施してください。

(venv) [libproc@centos8 django]$ pip install django
Collecting django
  Downloading Django-4.0-py3-none-any.whl (8.0 MB)
     |████████████████████████████████| 8.0 MB 3.4 MB/s 
Collecting sqlparse>=0.2.2
  Downloading sqlparse-0.4.2-py3-none-any.whl (42 kB)
     |████████████████████████████████| 42 kB 2.0 MB/s 
Collecting asgiref<4,>=3.4.1
  Downloading asgiref-3.4.1-py3-none-any.whl (25 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.4.1 django-4.0 sqlparse-0.4.2
(venv) [libproc@centos8 django]$python -m django --version
4.0

↑のようにDjangoのバージョンを確認(4.0)できたら仮想環境へのDjangoのインストールは成功です。

uWSGIのインストール

最後にuWSGIのインストールを行います。

uWSGIは、Webサーバ ⇔ uWSGI ⇔ Djangoのように動作しWebサーバとDjangoの橋渡しがあります。
後々必要になるため、このタイミングでインストールします。

↓がインストールコマンドになります。

pip install uwsgi

↓が実行ログになります。

(venv) [libproc@centos8 django]$ pip install uwsgi
Collecting uwsgi
  Using cached uwsgi-2.0.20.tar.gz (804 kB)
  Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for uwsgi, since package 'wheel' is not installed.
Installing collected packages: uwsgi
    Running setup.py install for uwsgi ... done
Successfully installed uwsgi-2.0.20

これでインストールは完了です。

uwsgiのインストールに失敗する場合は、yumコマンドにて python39-devel パッケージをインストールしてください。

↓が実行ログです。

[libproc@centos8 django]$ sudo yum install python39-devel
[sudo] password for libproc: 
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 2:22:34 ago on Sat Dec 18 13:50:29 2021.
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                    Architecture                       Version                                                           Repository                             Size
=============================================================================================================================================================================================
Installing:
 python39-devel                             x86_64                             3.9.6-2.module_el8.5.0+897+68c4c210                               appstream                             232 k

Transaction Summary
=============================================================================================================================================================================================
Install  1 Package

Total download size: 232 k
Installed size: 830 k
Is this ok [y/N]: y
Downloading Packages:
python39-devel-3.9.6-2.module_el8.5.0+897+68c4c210.x86_64.rpm                                                                                                1.0 MB/s | 232 kB     00:00    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                        304 kB/s | 232 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                     1/1 
  Installing       : python39-devel-3.9.6-2.module_el8.5.0+897+68c4c210.x86_64                                                                                                           1/1 
  Running scriptlet: python39-devel-3.9.6-2.module_el8.5.0+897+68c4c210.x86_64                                                                                                           1/1 
  Verifying        : python39-devel-3.9.6-2.module_el8.5.0+897+68c4c210.x86_64                                                                                                           1/1 

Installed:
  python39-devel-3.9.6-2.module_el8.5.0+897+68c4c210.x86_64                                                                                                                                  

Complete!

Djangoプロジェクトの作成

実際にDjangoプロジェクトを作成します。

↓がプロジェクト作成コマンドです。

jango-admin.py startproject <プロジェクト名> 

↓が実行ログです。プロジェクト名を”project”としています。

(venv) [libproc@centos8 django]$ django-admin startproject project
(venv) [libproc@centos8 django]$ ls -l
total 8
drwxrwxr-x 3 libproc libproc 4096 Dec 19 07:09 project
drwxrwxr-x 5 libproc libproc 4096 Dec 18 15:43 venv

プロジェクトの動作確認

ここからは、作成したDjangoプロジェクトの開発用サーバーを起動して動作確認をします。

事前準備

Djangoにて開発したアプリケーションを起動する場合は、設定ファイルにサーバーの実行を許可するホスト名を指定する必要があります。
これは、セキュリティ対策(HTTPヘッダインジェクションの回避)としてDjango1.5から導入されています。

アプリケーション用のディレクトリ「/home/libproc/django/project/project」に存在する「settings.py」ファイルの「ALLOWED_HOSTS」に許可ホスト名を列挙します。

↓が実施ログです。

(venv) [libproc@centos8 django]$ cd project/
(venv) [libproc@centos8 django]$ pwd
/home/libproc/django/project
(venv) [libproc@centos8 project]$ ls
db.sqlite3  manage.py  project
(venv) [libproc@centos8 project]$ ls -l project/
total 20
-rw-rw-r-- 1 libproc libproc    0 Dec 19 07:09 __init__.py
-rw-rw-r-- 1 libproc libproc  391 Dec 19 07:09 asgi.py
-rw-rw-r-- 1 libproc libproc 3225 Dec 19 07:16 settings.py
-rw-rw-r-- 1 libproc libproc  749 Dec 19 07:09 urls.py
-rw-rw-r-- 1 libproc libproc  391 Dec 19 07:09 wsgi.py
(venv) [libproc@centos8 project]$ vi project/settings.py 

↓
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

#ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']

今回は「’*'(ワイルドカード)」を指定しました。
これによりすべてのIPからのアクセスが許可されます。

開発用サーバーの起動と動作確認

作成したDjangoプロジェクトの開発用サーバーを起動して動作確認をします。

↓が開発用サーバーの起動コマンドです。

python manage.py runserver <接続許可IP>:<ポート番号> 

↓が実行ログになります。「0.0.0.0」と指定するとすべてのIPからのリクエストを受け付けることができます。

(venv) [libproc@centos8 project]$ python manage.py runserver 0.0.0.0:8000
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

December 18, 2021 - 22:55:43
Django version 4.0, using settings 'project.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

実際にWebブラウザでサイトにアクセスしてみましょう。

今回使用しているサーバーのIPアドレスは「192.168.56.101」ですので、Webブラウザから「http://192.168.56.101:8000/」と入力してみましょう。

Djangoインストール成功画面

↑のインストール成功画面が表示されれば、動作確認は成功です。

本手順のインストールが終わりましたら、ぜひDjangoの入門者向きのまとめ記事も確認してみてください。サンプルを作りながら一つ一つ学んでいけます。

参考:Djangoの最強入門書!手を動かしながらブログアプリ(CMS)を作成して脱初心者しよう!

  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次