Save 15% on All Hosting Services

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код: Skills За начало
Заглавия
Linux Администрация

Как да инсталирате Django на хостинг сървър: Пълно ръководство стъпка по стъпка

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

Защо да изберете Django за вашето уеб приложение?

Преди да се потопим в процеса на инсталиране, си струва да разберем защо Django продължава да доминира в пейзажа на Python уеб разработката:

  • Батерии включени: Django идва с вградена аутентификация, админ панел, ORM, обработка на форми и функции за сигурност от кутията.
  • Мащабируемост: Django захранва високотрафични платформи като Instagram и Pinterest.
  • Дизайн с приоритет на сигурността: Django защитава срещу често срещани уязвимости, включително SQL injection, XSS, CSRF и clickjacking по подразбиране.
  • Бързо развитие: Неговата философия на конвенция над конфигурация позволява на разработчиците да доставят функции по-бързо.
  • Масивна екосистема: Хиляди преизползваеми пакети и голяма общност означават, че решения на почти всеки проблем вече съществуват.

За да получите максимума от Django, ще ви трябва надежда сървърна среда. План за VPS Хостинг ви дава root достъп, посветени ресурси и гъвкавост, която Django приложенията изискват.

Предварителни условия

Преди да започнете процеса на инсталиране, уверете се, че имате следното:

  • Хостинг сървър, работещ с Linux дистрибуция (препоръчват се Ubuntu 20.04/22.04 или Debian)
  • SSH достъп до сървъра с sudo привилегии
  • Python 3.8 или по-висока версия (препоръчва се Python 3.10+)
  • pip (мениджър на пакети на Python) инсталиран
  • Основна запознаност с Linux командния ред

> Съвет за професионалисти: Ако стартирате производствено Django приложение, избягвайте среди на споделен хостинг. План за VPS Хостинг или Посветен сървър ще ви даде контролата и производителността, която вашето приложение нуждае.

Стъпка 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

Алтернативно, можете да използвате вградения модул на Python venv (налично в 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 — ракета с съобщението “Инсталацията работи успешно! Поздравления!”

За достъп до админ панела, навигирайте до:

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 сертификат криптира данни при преминаване между вашия сървър и вашите потребители, защитава чувствителна информация и е необходим за съвременни показатели на доверие на браузъра. 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 улеснява получаването

Администрация Резервно копие
Администрация
Linux

Save 15% on All Hosting Services

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код: Skills За начало
Бърз достъп до информация
Бърз достъп до информация

Спестете време и получете бърз отговор на въпроса си

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

Базата с познания съдържа подробни уроци, които ви позволяват сами да се справяте с технически задачи.

Подобряване на уменията
Подобряване на уменията

С помощта на базата знания разширявате познанията си за уеб хостинг и свързаните с него теми

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

Много статии са придружени от илюстрации и диаграми, които улесняват разбирането на сложни процеси и настройки.

Полезни трикове
Полезни трикове

Ще намерите полезни съвети за подобряване на работата на вашия сайт или уеб приложение.

Актуалност на зададените теми
Актуалност на зададените теми

Информацията в базата знания се актуализира редовно, за да отразява последните промени и тенденции в областта на ИТ инфраструктурата и услугите на AlexHost

Не открихте темата, която търсите? Има перфектно решение

Изключителни гости и клиенти! Вашето удобство е наш приоритет! Ако изпитвате затруднения при инсталирането на конкретен софтуер или разполагането на сървър, моля, не се колебайте да се свържете с нас. Ние ценим вашето мнение и винаги сме готови да ви помогнем да разрешите проблемите си.

Освен това ви даваме възможност да участвате активно в създаването на нашата база от знания. Ако имате теми или въпроси, които бихте искали да бъдат включени в нашата база данни, уведомете ни! Готови сме да напишем подробни статии и ръководства въз основа на вашите нужди.

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

Solution Image