Djangoインストール · 3 min read · Dec 22, 2025
Debian 11にDjangoフレームワークをインストールする方法

Djangoは、Pythonで書かれた無料でオープンソースのWeb開発フレームワークです。複雑でデータベース駆動のPythonアプリケーションを開発するために使用されます。Pythonプロジェクトを作成するための一連のPythonスクリプトが付属しています。Windows、macOS、Linux/Unix、Solarisを含む、Pythonを実行できる任意のオペレーティングシステムで実行できます。開発者が少ないコードを書き、短時間で新しいWebサイトを作成するのに役立ちます。
このチュートリアルでは、Debian 11でPostgreSQLデータベースを使用してPython仮想環境にDjangoをセットアップする方法を説明します。その後、DjangoのリバースプロキシとしてNginxをインストールして構成します。
前提条件
- Debian 11を実行しているサーバー。
- サーバーIPにポイントされた有効なドメイン名。
- サーバーに設定されたルートパスワード。
始めに
始める前に、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドを使用して行うことができます:
apt-get update -yすべてのパッケージが更新されたら、次のコマンドを使用して他のPythonツールとNginxパッケージをインストールします:
apt-get install python3-pip python3-dev libpq-dev curl nginx -y必要なすべてのパッケージがインストールされたら、次のステップに進むことができます。
PostgreSQLデータベースサーバーのインストール
ここでは、PostgreSQLをデータベースバックエンドとして使用します。次のコマンドを使用してインストールしましょう:
apt-get install postgresql postgresql-contrib -yPostgreSQLがインストールされたら、次のコマンドを使用してPostgreSQLシェルに接続します:
su - postgres
psql次に、次のコマンドを使用してDjango用のデータベースとユーザーを作成します:
CREATE DATABASE django;
CREATE USER django WITH PASSWORD 'password';次に、次のコマンドを使用して必要なロールを付与します:
ALTER ROLE django SET client_encoding TO 'utf8';
ALTER ROLE django SET default_transaction_isolation TO 'read committed';
ALTER ROLE django SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE django TO django;次に、次のコマンドを使用してPostgreSQLシェルから退出します:
\q
exitこの時点で、PostgreSQLデータベースはDjango用に準備が整いました。次のステップに進むことができます。
Python仮想環境の作成
次に、Djangoプロジェクトを作成するためにPython仮想環境を作成する必要があります。
まず、次のコマンドを使用してPIPパッケージを最新バージョンにアップグレードします:
pip3 install --upgrade pip次に、次のコマンドを使用してPIPのバージョンを確認します:
pip --versionサンプル出力:
pip 21.2.4 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)次に、次のコマンドを使用して仮想環境パッケージをインストールします:
pip3 install virtualenv次に、Djangoプロジェクト用のディレクトリを作成し、Django仮想環境を作成します:
mkdir ~/djangoapp
cd ~/djangoapp
virtualenv djangoenv次に、以下のコマンドを使用してDjango仮想環境をアクティブにします:
source djangoenv/bin/activate次に、次のコマンドを使用してDjango、Gunicorn、および他のパッケージをインストールします:
pip install django gunicorn psycopg2-binaryこの時点で、DjangoはPython仮想環境にインストールされました。次のステップに進むことができます。
Djangoのインストールと構成
Djangoは、プロジェクトを作成するためのdjango-admin.pyスクリプトを提供します。次のコマンドを実行してDjangoプロジェクトを作成できます:
django-admin.py startproject djangoapp ~/djangoapp次に、settings.pyを編集してデータベース設定を定義する必要があります:
nano ~/djangoapp/djangoapp/settings.py次の行をドメイン名に変更します:
ALLOWED_HOSTS = ['django.example.com', 'localhost']デフォルトのデータベースバックエンドのコメントを解除し、PostgreSQLデータベース設定を追加します:
#DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
#}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'django',
'USER': 'django',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}ファイルの最後に次の行を追加します:
STATIC_URL = '/static/'
import os
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')ファイルを保存して閉じたら、初期データベーススキーマをPostgreSQLデータベースに移行します:
./manage.py makemigrations
./manage.py migrateサンプル出力:
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 admin.0003_logentry_add_action_flag_choices... 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 auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK次に、次のコマンドを使用してDjangoのスーパーユーザーアカウントを作成します:
./manage.py createsuperuser以下のように管理者のユーザー名とパスワードを設定します:
Username (leave blank to use 'root'): dadmin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.次に、すべての静的コンテンツをディレクトリに集めます:
./manage.py collectstaticDjango開発サーバーの実行
この時点で、Djangoはインストールされ、構成されています。次のコマンドを使用してDjango開発サーバーを開始できます:
./manage.py runserver 0.0.0.0:8000すべてが正常であれば、次の出力が得られるはずです:
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
August 27, 2021 - 10:02:05
Django version 3.2.6, using settings 'djangoapp.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.今、Webブラウザを開いて、URL http://django.example.com:8000/admin/ を使用してDjangoプロジェクトにアクセスします。Djangoのログインページにリダイレクトされます:

管理者のユーザー名とパスワードを入力し、ログインをクリックします。次のページにDjangoダッシュボードが表示されるはずです:

次に、ターミナルに戻り、CTRL + Cを押してDjango開発サーバーを停止します。
GunicornでDjangoを確認する
次に、GunicornがDjangoを提供できるかどうかをテストする必要があります。次のコマンドを使用してGunicornサーバーでDjangoを起動できます:
gunicorn --bind 0.0.0.0:8000 djangoapp.wsgiすべてが正常であれば、次の出力が得られるはずです:
[2021-08-27 10:04:22 +0000] [47383] [INFO] Starting gunicorn 20.1.0
[2021-08-27 10:04:22 +0000] [47383] [INFO] Listening at: http://0.0.0.0:8000 (47383)
[2021-08-27 10:04:22 +0000] [47383] [INFO] Using worker: sync
[2021-08-27 10:04:22 +0000] [47384] [INFO] Booting worker with pid: 47384CTRL + Cを押してGunicornサーバーを停止します。
次に、次のコマンドを使用してPython仮想環境から非アクティブにします:
deactivateGunicornのためのSystemdサービスファイルを作成する
次に、Djangoアプリケーションサーバーを開始および停止するためのGunicornのsystemdサービスファイルを作成する必要があります。
次のコマンドを使用してGunicornを作成できます:
nano /etc/systemd/system/gunicorn.socket次の行を追加します:
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.targetファイルを保存して閉じたら、Gunicornのサービスファイルを作成します:
nano /etc/systemd/system/gunicorn.service次の行を追加して、Djangoプロジェクトパスに一致させます:
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/root/djangoapp
ExecStart=/root/djangoapp/djangoenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock djangoapp.wsgi:application
[Install]
WantedBy=multi-user.targetファイルを保存して閉じたら、Djangoプロジェクトディレクトリに適切な権限を設定します:
chown -R www-data:root ~/djangoapp次に、次のコマンドを使用してsystemdデーモンをリロードします:
systemctl daemon-reload次に、Gunicornサービスを開始し、システム再起動時に開始するように有効にします:
systemctl start gunicorn.socket
systemctl enable gunicorn.socket次に、以下のコマンドを使用してGunicornのステータスを確認します:
systemctl status gunicorn.socket次の出力が得られるはずです:
? gunicorn.socket - gunicorn socket
Loaded: loaded (/etc/systemd/system/gunicorn.socket; disabled; vendor preset: enabled)
Active: active (listening) since Fri 2021-08-27 10:05:46 UTC; 6s ago
Triggers: ? gunicorn.service
Listen: /run/gunicorn.sock (Stream)
CGroup: /system.slice/gunicorn.socket
Aug 27 10:05:46 debian11 systemd[1]: Listening on gunicorn socket.NginxをDjangoのリバースプロキシとして構成する
次に、Djangoを提供するためにNginxをリバースプロキシとして構成する必要があります。
そのために、Nginx構成ファイルを作成します:
nano /etc/nginx/conf.d/django.conf次の行を追加します:
server {
listen 80;
server_name django.example.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /root/djangoapp;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}ファイルを保存して閉じたら、次のコマンドを使用してNginxの構成エラーを確認します:
ginx -t出力:nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful最後に、次のコマンドを使用してNginxサービスを再起動して変更を適用します:
systemctl restart nginxNginxのステータスを確認するには、次のコマンドを実行します:
systemctl status nginxサンプル出力:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-08-27 10:06:59 UTC; 6s ago
Docs: man:nginx(8)
Process: 47494 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 47495 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 47496 (nginx)
Tasks: 2 (limit: 2341)
Memory: 2.5M
CPU: 49ms
CGroup: /system.slice/nginx.service
??47496 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??47497 nginx: worker process
Aug 27 10:06:59 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 27 10:06:59 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Aug 27 10:06:59 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.今、URL http://django.example.com/admin を使用してDjangoアプリケーションにアクセスできます。また、URL http://django.example.com/ を使用してDjangoアプリケーションにアクセスすることもできます。

結論
おめでとうございます!GunicornとNginxをリバースプロキシとして使用してDjangoアプリケーションを正常にインストールしました。これで、Djangoフレームワークを使用してPythonアプリケーションのデプロイを開始できます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。