Як встановити Django на хостинг-сервер: повний покроковий посібник
Django — це високорівневий веб-фреймворк Python, розроблений для сприяння швидкому розробленню та чистому, прагматичному дизайну. Він залишається одним із найпопулярніших виборів для створення масштабованих, безпечних і легко підтримуваних веб-додатків — від простих блогів до складних корпоративних платформ. У цьому комплексному посібнику ми проведемо вас через кожен крок, необхідний для встановлення Django на хостинг-сервер, від підготовки вашого середовища Linux до запуску вашого першого проекту та його підготовки до виробництва.
Чому вибрати Django для вашого веб-додатку?
Перш ніж переходити до процесу встановлення, варто зрозуміти, чому Django продовжує домінувати в ландшафті веб-розробки Python:
- Батарейки включені: Django поставляється з вбудованою аутентифікацією, панеллю адміністратора, ORM, обробкою форм і функціями безпеки з коробки.
- Масштабованість: Django живить високотрафічні платформи, такі як Instagram та Pinterest.
- Дизайн, орієнтований на безпеку: Django захищає від поширених уразливостей, включаючи SQL-ін’єкції, XSS, CSRF та clickjacking за замовчуванням.
- Швидка розробка: Його філософія convention-over-configuration дозволяє розробникам швидше випускати функції.
- Величезна екосистема: Тисячі повторно використовуваних пакетів і велика спільнота означають, що рішення для майже будь-якої проблеми вже існує.
Щоб максимально використати Django, вам потрібне надійне серверне середовище. План VPS Hosting надає вам корінь доступ, виділені ресурси та гнучкість, які вимагають додатки Django.
Передумови
Перш ніж розпочати процес встановлення, переконайтеся, що у вас є наступне:
- Хостинг-сервер, що працює на дистрибутиві Linux (рекомендуються Ubuntu 20.04/22.04 або Debian)
- SSH доступ до сервера з привілеями sudo
- Python 3.8 або вище (рекомендується Python 3.10+)
pip(менеджер пакетів Python) встановлений- Базове знайомство з командним рядком Linux
> Професійна порада: Якщо ви запускаєте виробничий додаток Django, уникайте середовищ спільного хостингу. План VPS Hosting або Dedicated Server надасть вам контроль і продуктивність, які потребує ваш додаток.
Крок 1: Підключіться до вашого сервера через SSH
Відкрийте ваш термінал і встановіть SSH-з’єднання з вашим хостинг-сервером:
ssh username@server_ipЗамініть username на ваше фактичне ім’я користувача системи та server_ip на публічну IP-адресу вашого сервера. Якщо ви використовуєте користувацький SSH-порт або файл аутентифікації на основі ключа, відповідно налаштуйте команду:
ssh -i /path/to/your/key.pem username@server_ipПісля підключення у вас буде інтерфейс командного рядка для вашого сервера, де ви можете розпочати процес налаштування.
Крок 2: Оновіть вашу систему та встановіть Python і pip
Оновлення пакетів вашої системи — це критичний перший крок як для безпеки, так і для сумісності.
Оновіть індекс пакетів
sudo apt update && sudo apt upgrade -yВстановіть Python 3 та pip
Більшість сучасних дистрибутивів Ubuntu та Debian поставляються з попередньо встановленим Python 3. Спочатку перевірте вашу версію Python:
python3 --versionЯкщо Python 3 не встановлено або вам потрібен pip, встановіть їх за допомогою:
sudo apt install python3 python3-pip -yПеревірте встановлення:
python3 --version
pip3 --versionВи повинні побачити номери версій, які підтверджують, що обидва інструменти доступні.
Крок 3: Налаштуйте віртуальне середовище Python
Використання віртуального середовища — це не просто рекомендація — це вважається найкращою практикою для кожного проекту Python. Віртуальні середовища ізолюють залежності вашого проекту від системної установки Python та від інших проектів на тому ж сервері, запобігаючи конфліктам версій і зберігаючи ваше середовище чистим.
Встановіть virtualenv
sudo pip3 install virtualenvКрім того, ви можете використовувати вбудований модуль venv Python (доступний у Python 3.3+):
sudo apt install python3-venv -yСтворіть каталог вашого проекту та віртуальне середовище
Перейдіть до каталогу, де ви хочете розмістити ваш проект, або створіть новий:
mkdir myproject
cd myprojectТепер створіть віртуальне середовище всередину каталогу вашого проекту:
virtualenv venvАбо, використовуючи вбудований модуль venv:
python3 -m venv venvАктивуйте віртуальне середовище
source venv/bin/activateПісля активації ваш командний рядок змінить відображення, щоб показати ім’я віртуального середовища, наприклад:
(venv) username@server:~/myproject$Усі команди pip install, виконані під час активного віртуального середовища, встановлять пакети лише в цьому ізольованому середовищі. Щоб деактивувати його в будь-який час, просто запустіть:
deactivateКрок 4: Встановіть Django
З активним віртуальним середовищем встановіть Django за допомогою pip:
pip install djangoЩоб встановити конкретну версію Django (рекомендується для виробництва, щоб забезпечити сумісність):
pip install django==4.2Перевірте встановлення:
django-admin --versionВи повинні побачити номер встановленої версії Django, надрукований у терміналі.
Крок 5: Створіть новий проект Django
Використовуйте вбудований інструмент командного рядка django-admin Django для створення каркасу нового проекту:
django-admin startproject myproject .> Примітка: Крапка в кінці (.) повідомляє Django створити файли проекту в поточному каталозі, а не створювати вкладений підкаталог. Це чистіша структура для більшості розгортань.
Ваш каталог проекту тепер буде містити таку структуру:
myproject/
├── manage.py
└── myproject/
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.pymanage.py— утиліта командного рядка для взаємодії з вашим проектом Django.settings.py— центральний файл конфігурації для вашого проекту.urls.py— конфігурація маршрутизації URL.wsgi.py/asgi.py— точки входу для веб-серверів, сумісних з WSGI та ASGI.
Крок 6: Налаштуйте параметри бази даних
Відкрийте файл settings.py для налаштування з’єднання з базою даних:
nano myproject/settings.pyЗа замовчуванням: SQLite (тільки розробка)
За замовчуванням Django налаштований на використання SQLite, який підходить для розробки та тестування, але не рекомендується для виробництва:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}Варіант виробництва: PostgreSQL
PostgreSQL — це найбільш рекомендована база даних для Django у виробництві. Спочатку встановіть необхідні пакети:
sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binaryПотім оновіть параметр DATABASES у settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}Варіант виробництва: MySQL / MariaDB
Якщо ви віддаєте перевагу MySQL або MariaDB, встановіть необхідний адаптер:
sudo apt install default-libmysqlclient-dev -y
pip install mysqlclientПотім налаштуйте параметр DATABASES:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
}
}Налаштуйте ALLOWED_HOSTS
Також у settings.py оновіть параметр ALLOWED_HOSTS, щоб включити IP-адресу або ім’я домену вашого сервера. Це необхідно для того, щоб Django обслуговував запити в режимі без налагодження:
ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']Крок 7: Застосуйте міграції бази даних
Django використовує систему міграцій для управління змінами схеми бази даних. Запустіть початкові міграції, щоб створити всі необхідні таблиці бази даних:
python 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
...Створіть суперкористувача (необов’язково, але рекомендується)
Створіть обліковий запис адміністратора для доступу до вбудованого інтерфейсу адміністратора Django:
python manage.py createsuperuserВам буде запропоновано ввести ім’я користувача, адресу електронної пошти та пароль.
Крок 8: Запустіть сервер розробки Django
Тепер ви можете запустити вбудований сервер розробки Django, щоб перевірити ваше встановлення:
python manage.py runserver 0.0.0.0:8000Ця команда прив’язує сервер розробки до всіх доступних мережевих інтерфейсів на порту 8000. Відкрийте ваш веб-браузер і перейдіть на:
http://your_server_ip:8000Ви повинні побачити сторінку вітання Django — ракету з повідомленням «Встановлення пройшло успішно! Вітаємо!»
Щоб отримати доступ до панелі адміністратора, перейдіть на:
http://your_server_ip:8000/admin> Важливо: Вбудований сервер розробки Django не придатний для виробництва. Він однопотоковий, не оптимізований для продуктивності та не має посилення безпеки. Завжди використовуйте веб-сервер виробничого класу для живих розгортань.
Крок 9: Підготуйте Django до виробництва (рекомендується)
Для виробничих розгортань вам потрібно налаштувати належний стек веб-сервера. Найпоширеніша та рекомендована установка — Nginx + Gunicorn.
Встановіть Gunicorn
З активним віртуальним середовищем:
pip install gunicornПеревірте, що Gunicorn може обслуговувати ваш додаток:
gunicorn --bind 0.0.0.0:8000 myproject.wsgiВстановіть та налаштуйте Nginx
sudo apt install nginx -yСтворіть файл конфігурації блоку сервера Nginx:
sudo nano /etc/nginx/sites-available/myprojectДодайте наступну конфігурацію:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}Увімкніть конфігурацію та перезавантажте Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxЗберіть статичні файли
Оновіть settings.py за допомогою каталогу статичних файлів:
STATIC_ROOT = BASE_DIR / 'staticfiles'Потім зберіть усі статичні файли:
python manage.py collectstaticЗахистіть ваш додаток за допомогою SSL
Для будь-якого виробничого додатку Django HTTPS є неминучістю. SSL Certificate шифрує дані під час передачі між вашим сервером та вашими користувачами, захищає конфіденційну інформацію та необхідна для сучасних індикаторів довіри браузера. AlexHost пропонує SSL-сертифікати, які безперебійно інтегруються з вашим хостинг-середовищем.
Додаткові міркування виробництва
Змінні середовища для конфіденційних параметрів
Ніколи не кодуйте конфіденційні значення, такі як SECRET_KEY, паролі бази даних або ключі API у settings.py. Замість цього використовуйте змінні середовища:
pip install python-decoupleУ settings.py:
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)Встановіть DEBUG на False у виробництві
DEBUG = FalseЗапуск з DEBUG = True у виробництві розкриває детальні сторінки помилок та конфіденційну інформацію про конфігурацію потенційним зловмисникам.
on All Hosting Services
