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 по умолчанию.
  • Быстрая разработка: Его философия соглашения вместо конфигурации позволяет разработчикам быстрее выпускать функции.
  • Огромная экосистема: Тысячи переиспользуемых пакетов и большое сообщество означают, что решения для почти любой проблемы уже существуют.

Чтобы максимально использовать 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 — ракету с сообщением «The install worked successfully! Congratulations!»

Для доступа к панели администратора перейдите на:

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

Настройте имя домена

Если вы еще не зарегистрировали домен для вашего проекта Django, Domain Registration через AlexHost облегчает быстрое получение вашего домена, указанного на ваш сервер, с полным управлением DNS включено.

Выбор правильного хостинга для вашего приложения Django

Хостинг-среда, которую вы выбираете, оказывает значительное влияние на производительность, надежность и масштабируемость вашего приложения Django. Вот краткое руководство:

Вариант использования
LiteSpeed Администрация Безопасность
Linux VPS
Администрация

Save 15% on All Hosting Services

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Быстрый доступ к информации
Быстрый доступ к информации

Сэкономьте время и получите быстрый ответ на ваш вопрос

Решайте проблемы сами
Решайте проблемы сами

Веб-сервер LiteSpeed отличается от традиционных решений повышенной производительностью и способностью обрабатывать значительный трафик. Он становится более производительным благодаря инновационному принципу кэширования данных, а именно технологии LSCache. Благодаря этому страницы веб-ресурса загружаются с высокой скоростью независимо от конкретной CMS. Например, разделы интернет-магазина на базе Magento или сайты на WordPress реагируют на запросы пользователей в 75 раз быстрее! При этом кэш не требует никаких настроек – они включены по умолчанию в базовой версии программного обеспечения LiteSpeed.

Повышение квалификации
Повышение квалификации

Используя базу знаний, вы расширяете свои знания о веб-хостинге и связанных темах

Иллюстрации и диаграммы
Иллюстрации и диаграммы

Многие статьи сопровождаются иллюстрациями и диаграммами, что упрощает понимание сложных процессов и настроек.

Полезные приемы
Полезные приемы

Вы найдете полезные советы и трюки для повышения производительности вашего сайта или веб-приложения.

Актуальность заданных тем
Актуальность заданных тем

Информация в базе знаний регулярно обновляется, чтобы отражать последние изменения и тенденции в области ИТ-инфраструктуры и услуг AlexHost.

Не нашли нужную тему? Есть отличное решение

Уважаемые клиенты! Ваш комфорт — наш приоритет!

Кроме того, мы даем вам возможность активно участвовать в создании нашей базы знаний. Если у вас есть темы или вопросы, которые вы хотели бы включить в нашу базу данных, дайте нам знать! Мы готовы написать подробные статьи и руководства на основе ваших потребностей.

Мы стремимся сделать ваш опыт работы с AlexHost максимально удобным и эффективным, и ваш вклад в базу знаний помогает нам достичь этой цели. Связаться с нами ->
info@alexhost.com и дайте нам знать, как мы можем сделать ваше пребывание у нас еще лучше.

Solution Image