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