LinuxにDjango(ジャンゴ)をインストールする手順を紹介します。
Djangoとは、Pythonで作られているのWEBフレームワークです。
Djangoには、画面生成・DB処理・アプリケーション処理など多くの機能が標準で使用できます。
またDjangoは多く導入実績やナレッジもあるため、学習にもおススメです。
インストールにはPythonが必要なので、まだ導入していない人は↓を参考に導入してみてください。
-
-
LinuxにPython3系をインストールする手順
こんにちは!シミダイ(@shimidai2100)です。 LinuxにPythonをインストールする手順を紹介します。 LinuxにはデフォルトでPython2.xがインストールされています。 今回は ...
インストール環境
今回のインストール環境は以下になります。
uWSGIは後ほどWebサーバとの連携で必要となるため導入しておきます。
- CentOS:CentOS Linux release 7.4.1708 (Core)
- Python:Python 3.6.3
- Django:Django 1.11.7
- uWSGI:uWSGI 2.0.15
※これらの環境は仮想マシン上CentOSに構築しております。
インストール手順
手順の流れは以下になります。
- 仮想実行環境の作成
- Djangoのインストール
- uWSGIのインストール
仮想実行環境の作成
まずは仮想実行環境を作成します。一番初めにディレクトを作成します。
1 2 3 |
mkdir -p /django/apps/myproject chmod -R 755 /django/apps/ cd /django/apps/myproject |
次に仮想実行環境を構築します。
1 2 |
python -m venv <仮想実行環境名> ls -lt |
↓が実行ログです。
1 2 3 4 |
[root@centos7-local myproject]# python -m venv venv [root@centos7-local myproject]# ls -lt 合計 0 drwxr-xr-x 5 root root 74 11月 19 12:37 venv |
これで仮想実行環境の作成は完了です。アクティベートしておきましょう。
アクティベートのコマンドは↓になります。
1 |
source <インストールディレクトリ>/venv/bin/activate |
↓が実行ログです。(仮想実行環境) # となれば成功です。
1 2 |
[root@centos7-local myproject]# source venv/bin/activate (venv) [root@centos7-local myproject]# |
Djangoのインストール
Djangoをインストールしていきます。
仮想実行マシンがあるディレクトリに移動し、アクティベートを必ず行ってください。
1 |
pip install django |
↓が実行ログです。
1 2 3 4 5 6 7 8 9 10 11 |
[root@centos7-local ~]# cd /django/apps/myproject/ [root@centos7-local myproject]# source venv/bin/activate (venv) [root@centos7-local myproject]# (venv) [root@centos7-local myproject]# pip install django Collecting django Using cached Django-1.11.7-py2.py3-none-any.whl Collecting pytz (from django) Using cached pytz-2017.3-py2.py3-none-any.whl Installing collected packages: pytz, django Successfully installed django-1.11.7 pytz-2017.3 (venv) [root@centos7-local myproject]# |
これでDjangoのインストールは完了です。簡単でしょ?
uWSGIのインストール
最後にuWSGIのインストールを行います。
uWSGIは、Webサーバ ⇔ uWSGI ⇔ Djangoのように動作しWebサーバとDjangoの橋渡しがあります。
後々必要になるため、このタイミングでインストールします。
↓がインストールコマンドになります。
1 |
pip install uwsgi |
↓が実行ログになります。
1 2 3 4 5 6 |
(venv) [root@centos7-local myproject]# pip install uwsgi Collecting uwsgi Using cached uwsgi-2.0.15.tar.gz Installing collected packages: uwsgi Running setup.py install for uwsgi ... - done Successfully installed uwsgi-2.0.15 |
これでインストールは完了です。
プロジェクトの作成
この章では実際にプロジェクトを作って正常にインストール出来ているか確認します。
始めにプロジェクトを作成します。
作成時には仮想実行マシンがあるディレクトリに移動し、アクティベートを必ず行ってください。
1 |
django-admin.py startproject <プロジェクト名(プロジェクトインストールディレクトリ)> |
↓が実行ログになります。
1 2 3 4 5 |
(venv) [root@centos7-local myproject]# django-admin.py startproject mysite (venv) [root@centos7-local myproject]# ls -lt 合計 0 drwxr-xr-x 3 root root 37 11月 19 15:01 mysite drwxr-xr-x 5 root root 100 11月 19 12:58 venv |
プロジェクトの起動
ここは結構ハマるポイントなので要注意です。
まず作成したプロジェクトを起動してみましょう。
1 |
python <プロジェクトインストールディレクトリ>/manage.py runserver |
実際に作成したプロジェクトを起動してみます。これでDjangoは起動しています。
1 2 3 4 5 6 7 8 9 10 11 12 |
(venv) [root@centos7-local myproject]# python mysite/manage.py runserver Performing system checks... System check identified no issues (0 silenced). You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. November 19, 2017 - 06:08:20 Django version 1.11.7, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. |
仮想マシンのIP「192.168.56.101」です。
「http://192.168.56.101:8000」にアクセスしてみます。
↑のようにアクセスできません。Django側で接続元IPを許可する必要があります。
接続元を許可するコマンドは以下になります。
1 |
python mysite/manage.py runserver <接続許可IP>:<ポート番号> |
↓が実行ログになります。「0.0.0.0」と指定するとすべてのIPからのリクエストを受け付けることができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
(venv) [root@centos7-local myproject]# python mysite/manage.py runserver 0.0.0.0:8000 Performing system checks... System check identified no issues (0 silenced). You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. November 19, 2017 - 06:14:59 Django version 1.11.7, using settings 'mysite.settings' Starting development server at http://0.0.0.0:8000/ Quit the server with CONTROL-C. |
もう一度「http://192.168.56.101:8000」にアクセスしてみます。
まだ微妙に怒られています。。。
「DisallowedHost」と許可されていないホストから勝手にアクセスしているよ。
と怒られています。Djangoの設定ファイルを修正しましょう。
「settings.py」ファイルの「ALLOWED_HOSTS」に許可ホスト名をシングルクォーテーションで記載します。
1 2 3 4 5 6 7 8 |
vi <プロジェクト名>/mysite/settings.py ↓ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True #ALLOWED_HOSTS = [] ALLOWED_HOSTS = ['IPアドレス'] |
今回は上のように「*(ワイルドカード)」で記載しました。IPを直接指定してカンマ区切りで指定することもできます。
これにより全てのIPからのアクセスを許可されます。
1 2 3 4 5 6 |
(venv) [root@centos7-local myproject]# cp -p mysite/mysite/settings.py mysite/mysite/settings.py.20171119 (venv) [root@centos7-local myproject]# vi mysite/mysite/settings.py ↓のようにALLOWED_HOSTSを変更 ALLOWED_HOSTS = ['*'] |
最後に設定を適用させましょう。コマンドは↓になります。
1 |
python <プロジェクトインストールディレクトリ>/manage.py migrate |
↓が実行ログになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
(venv) [root@centos7-local myproject]# python mysite/manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying sessions.0001_initial... OK |
では、プロジェクトを起動してブラウザアクセスしてみましょう。
↓が実行ログです。
1 2 3 4 5 6 7 8 |
(venv) [root@centos7-local myproject]# python mysite/manage.py runserver 0.0.0.0:8000 Performing system checks... System check identified no issues (0 silenced). November 19, 2017 - 06:29:55 Django version 1.11.7, using settings 'mysite.settings' Starting development server at http://0.0.0.0:8000/ Quit the server with CONTROL-C. |
「http://192.168.56.101:8000」にアクセスしてみます。
↑のように「It worked!」が出力されれば正常にプロジェクトが動いています。
これでDjangoライフを送れます。お疲れ様でした!