Hero Image
Djangoの開発・本番環境構築

0. 初めに Dockerを利用しPython、Django、PostgreSQL、Gunicorn、Nginxの開発・本番環境の構築します。 Dockerとはコンテナ型の仮想環境を作成・配布・実行できるプラットフォームとのことです。Dockerを使えばWebアプリケーションだけでなくサーバーの設定などのインフラもまとめて管理できて、かつバージョンやOSの差を気にすること無く環境の構築ができるというメリットがあります。 Pythonの仮想環境としばしば比較されることがありますが、Pythonの仮想環境はあくまでPythonの依存関係のみをカプセル化し、DockerはOS全体をカプセル化するという違いがあります。 ※参考サイト1 0-1. 開発環境 OS : Ubuntu 22.04.1 LTS on WSL2 Docker : 20.10.22 Docker Compose : v2.14.1 0-2. VPS環境 WebARENA Indigo : メモリ 4G, ストレージ:SSD 80GB, CPU:2コア OS:Ubuntu 22.04 Docker : 20.10.22 Docker Compose : v2.14.1 VPS-IP : 160.248.11.107 Container : Debian GNU/Linux 11 (bullseye) 0-3. 共通環境 Python : 3.11.1 Django:4.1.4 Nginx:1.23.3 Gunicorn:20.1.0 PostgrSQL:14.0 psycopg2-binary:2.9.3 0-4. Python3.11 Python 3.11はPython 3.10と比べて平均で 25%速くなりました。ワークロードにも寄りますが、10%から60%の速度向上が見込めます。これは「起動時の高速化」と「実行時の高速化」の二つによって達成されています。 起動時の高速化:起動時間が10-15%高速化 実行時の高速化:最大 2~20%の速度向上 SSLモジュール Python 3.

Hero Image
Djangoのインストール

1. Djangoの開発環境を構築 ここでは、wsl+ubuntu+python+djangoの開発環境を構築します。 Django は、動的な Web サイトやアプリケーションを開発するためのフル機能の Python Web フレームワークです。Django を使用すると、Python Web アプリケーションをすばやく作成し、フレームワークに依存して手間のかかる作業を大幅に行うことができます。 このガイドでは、Ubuntu22.04サーバーでDjangoを起動して実行します。インストール後、サイトの基礎として使用する新しいプロジェクトを開始します。 1-1. パッケージからのグローバルインストール 参考URL:DigitalOcean Windows11 WSL:Linux 用 Windows サブシステム ディストリビューション OS:“Ubuntu 22.04.1 LTS” Python 3.10.6 pip 22.3.1 from /home/matsu/.local/lib/python3.10/site-packages/pip (python 3.10) sudo apt update python3 -V Output Python 3.10.6 sudo apt install python3-django django-admin --version Output 4.1.4・・・OK 1-2. サンプルプロジェクトの作成 Django をインストールすると、プロジェクトのビルドを開始できます。プロジェクトを作成し、仮想環境を使用して開発サーバーでテストする方法について説明します。 プロジェクトのディレクトリを作成 mkdir ~/django-test cd ~/django-test 仮想環境を作成します。 python3 -m venv my_env 環境をアクティブ化します。 source my_env/bin/activate (my_env) matsu@RYZEN-PC:~/workspace/django-test$ Djangoをインストールします。 pip install django (or pip install django==4.

Hero Image
Ubuntu 22.04でPostgres、Nginx、Gunicornを使用してDjangoをセットアップ

1. 初めに Djangoは、PythonアプリケーションやWebサイトを軌道に乗せるのに役立つ強力なWebフレームワークです。Djangoには、コードをローカルでテストするための簡略化された開発サーバーが含まれていますが、本番環境に関連するものでも、より安全で強力なWebサーバーが必要です。 このガイドでは、Djangoアプリケーションをサポートおよび提供するために、Ubuntu22.04にいくつかのコンポーネントをインストールして構成します。デフォルトのSQLiteデータベースを使用する代わりに、PostgreSQLデータベースを設定します。アプリケーションとインターフェイスするように Gunicorn1 アプリケーションサーバーを構成します。次に、GunicornにリバースプロキシするようにNginxを設定し、アプリを提供するためのセキュリティ機能とパフォーマンス機能にアクセスできるようにします。 Digtal Ocean2を参考にWSL上に構築していきます。 2. 前提条件と目標 VPS : Ubuntu22.04 on WebAREANA Indigo フレームワークはDjango DBはPostgreSQL アプリケーションサーバはGunicorn WebサーバはNginx VSCodeからSSH接続環境 VPS-IP : 160.248.11.107 ubuntu : password Djangoは仮想環境内にインストールします。プロジェクトに固有の環境にDjangoをインストールすると、プロジェクトとその要件を個別に処理できるようになります。 データベースとアプリケーションを稼働させたら、Gunicornアプリケーションサーバーをインストールして構成します。これはアプリケーションへのインターフェイスとして機能し、クライアント要求をHTTPからアプリケーションが処理できるPython呼び出しに変換します。次に、Gunicornの前にNginxをセットアップして、高性能の接続処理メカニズムと実装が簡単なセキュリティ機能を利用します。 Python 3.11は、以前の3.10よりも10〜60%高速であると主張し、次の機能を備えています。 3. VPSへのログイン 3-1. OSの初期設定(アップデート、アップグレード) sudo apt update apt list --upgradable (root change) sudo su - 4. 新規ユーザーを追加 以下rootで実行します。 adduser vpsadmin 新しく追加したユーザーにsudo権限を持たせ、sudo権限を持ったユーザーを表示して確認します。 gpasswd -a vpsadmin sudo (確認) cat /etc/group | grep sud sudo❌27:ubuntu,vpsadmin 追加したユーザーのパスワード設定 passwd vpsadmin 5. VSCodeでSSHログイン WebArena Indigoの環境設定を参照