Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Адміністрація

Як встановити Django на хостинг-сервер: повний покроковий посібник

Django — це високорівневий веб-фреймворк Python, розроблений для сприяння швидкому розвитку та чистому, прагматичному дизайну. Він залишається одним із найпопулярніших виборів для створення масштабованих, безпечних та легких у обслуговуванні веб-додатків — від простих блогів до складних корпоративних платформ. У цьому комплексному посібнику ми проведемо вас через кожен крок, необхідний для встановлення Django на хостинг-сервер, від підготовки вашого Linux середовища до запуску вашого першого проекту та його підготовки до виробництва.

Чому вибрати Django для вашої веб-програми?

Перш ніж перейти до процесу встановлення, варто зрозуміти, чому Django продовжує домінувати в ландшафті веб-розробки на Python:

  • Все включено: Django поставляється з вбудованою аутентифікацією, панеллю адміністратора, ORM, обробкою форм та функціями безпеки з коробки.
  • Масштабованість: Django живить високотрафікові платформи, такі як Instagram та Pinterest.
  • Дизайн, орієнтований на безпеку: Django за замовчуванням захищає від поширених вразливостей, включаючи SQL-ін’єкції, XSS, CSRF та clickjacking.
  • Швидка розробка: Його філософія convention-over-configuration дозволяє розробникам швидше випускати функції.
  • Величезна екосистема: Тисячі повторно використовуваних пакетів та велика спільнота означають, що рішення для майже будь-якої проблеми вже існують.

Щоб отримати максимум від Django, вам потрібне надійне серверне середовище. План VPS Hosting надає вам root-доступ, виділені ресурси та гнучкість, які потребують програми 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 django-admin командне середовище для створення нового проекту:

django-admin startproject myproject .

> Примітка: Крапка в кінці (.) повідомляє Django створити файли проекту в поточній директорії замість створення вкладеної піддиректорії. Це чистіша структура для більшості розгортань.

Ваша директорія проекту тепер міститиме таку структуру:

myproject/
├── manage.py
└── myproject/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • manage.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 — ракету з повідомленням «The install worked successfully! Congratulations!»

Щоб отримати доступ до панелі адміністратора, перейдіть на:

http://your_server_ip:8000/admin

> Важливо: Вбудований сервер розробки Django не придатний для виробництва. Він однопотоковий, не оптимізований для продуктивності та не має посилення безпеки. Завжди використовуйте веб-сервер виробничого класу для живих розгортань.

Крок 9: Підготовка Django для Production (Рекомендується)

Для production розгортань вам потрібно налаштувати правильний стек веб-сервера. Найпоширеніша та рекомендована конфігурація — 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

Для будь-якої production Django програми HTTPS є обов’язковим. SSL сертифікат шифрує дані під час передачі між вашим сервером та вашими користувачами, захищає конфіденційну інформацію та необхідний для сучасних індикаторів довіри браузера. 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 у виробництві розкриває детальні сторінки помилок і конфіденційну інформацію про конфігурацію потенційним зловмисникам.

Налаштуйте доменне ім’я

Якщо ви ще не зареєстрували доменне ім’я для свого проекту Django, Реєстрація доменів через AlexHost дозволяє легко спрямувати ваш домен на ваш сервер, з повним управлінням DNS включено.

Вибір правильного хостингу для вашого Django додатку

Середовище хостингу, яке ви виберете, має значний вплив на продуктивність, надійність і масштабованість вашого Django додатку. Ось короткий посібник:

Варіант використанняРекомендований хостинг
Розробка та тестуванняСпільний веб-хостинг
Малі та середні виробничі додаткиVPS Hosting
Додатки з високим трафіком або ресурсоємніВиділені сервери
Django додатки з машинним навчанням / AIGPU Hosting

Для більшості Django проектів, які переходять у виробництво, план VPS Hosting пропонує ідеальний баланс продуктивності, контролю та економічної ефективності. Ви отримуєте root доступ, можливість встановлювати будь-який стек програмного забезпечення та виділені ресурси, які спільний хостинг не може забезпечити.

Усунення типових проблем установки Django

pip: command not found

Встановіть pip вручну: sudo apt install python3-pip -y

django-admin: command not found

Ваше віртуальне середовище може бути не активовано. Запустіть source venv/bin/activate і спробуйте ще раз.

Порт 8000 недоступний

Перевірте правила брандмауера вашого сервера. На Ubuntu з UFW:

sudo ufw allow 8000
sudo ufw reload

Відмовлено в з’єднанні з базою даних

Переконайтеся, що ваш сервіс бази даних запущений:

sudo systemctl status postgresql
# or
sudo systemctl status mysql

ALLOWED_HOSTS Помилка

Переконайтеся, що IP-адреса або назва домену вашого сервера внесені в параметр ALLOWED_HOSTS у settings.py.

Висновок

Ви успішно встановили Django на сервер хостингу, налаштували віртуальне середовище, налаштували базу даних і дізналися, як підготувати свою програму до виробництва. Багатий набір функцій Django, надійні налаштування безпеки за замовчуванням та величезна екосистема роблять його відмінним вибором для веб-проектів будь-якого масштабу.

Для розгортання у виробництві завжди використовуйте правильний стек веб-сервера (Nginx + Gunicorn або Apache + uWSGI), встановіть DEBUG = False, захистіть свою програму за допомогою SSL Certificate, і виберіть середовище хостингу, яке відповідає вимогам ресурсів вашої програми. Незалежно від того, чи ви починаєте новий проект або масштабуєте існуючий, VPS Hosting та плани Dedicated Server AlexHost забезпечують продуктивність, надійність та гнучкість, яких заслуговує ваша програма Django.