Save 15% on All Hosting Services

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

Використовуй код: 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 надає вам корінь доступ, виділені ресурси та гнучкість, які вимагають додатки 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.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 — ракету з повідомленням «Встановлення пройшло успішно! Вітаємо!»

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

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

Налаштуйте ім’

Linux Адміністрація
Адміністрація
Linux Адміністрація

Save 15% on All Hosting Services

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

Використовуй код: Skills Почати
Швидкий доступ до інформації
Швидкий доступ до інформації

Заощаджуйте свій час і отримуйте швидку відповідь на своє запитання

Вирішуйте проблеми самостійно
Вирішуйте проблеми самостійно

База знань містить детальні інструкції, які дозволять вам самостійно вирішувати технічні завдання.

Вдосконалення навичок
Вдосконалення навичок

Використовуючи базу знань, ви розширюєте свої знання про веб-хостинг і пов'язані з ним теми

Ілюстрації та діаграми
Ілюстрації та діаграми

Багато статей супроводжуються ілюстраціями та діаграмами, що полегшує розуміння складних процесів та налаштувань.

Корисні хитрощі
Корисні хитрощі

Корисні поради для покращення роботи сайту або додатку

Актуальність наведених тем
Актуальність наведених тем

Інформація в базі знань регулярно оновлюється, щоб відображати останні зміни і тенденції в сфері IT-інфраструктури та сервісу AlexHost

Не знайшли потрібну тему? Є ідеальне рішення

Шановні гості та клієнти! Ваша зручність - наш пріоритет! Якщо у вас виникли труднощі з установкою певного програмного забезпечення або розгортанням сервера, будь ласка, не соромтеся звертатися до нас. Ми цінуємо вашу думку і завжди готові допомогти у вирішенні ваших проблем.

Більше того, ми надаємо вам можливість брати активну участь у створенні нашої бази знань. Якщо у вас є теми або питання, які ви хотіли б включити в нашу базу, дайте нам знати! Ми готові написати докладні статті та посібники, виходячи з ваших потреб.

Ми прагнемо зробити вашу роботу з AlexHost максимально зручною та ефективною, і ваш внесок у базу знань допомагає нам досягти цієї мети. Зв'яжіться з нами -> Контакти
info@alexhost.com і повідомте нам, як ми можемо зробити ваше перебування у нас ще кращим.

Solution Image