Jak zainstalować Django na serwerze hostingowym: Kompletny przewodnik krok po kroku
Django to wysokopoziomowy framework internetowy Python zaprojektowany w celu wspierania szybkiego rozwoju i czystego, pragmatycznego projektowania. Pozostaje jednym z najpopularniejszych wyborów do budowania skalowalnych, bezpiecznych i łatwych w utrzymaniu aplikacji internetowych — od prostych blogów po złożone platformy korporacyjne. W tym kompleksowym przewodniku przeprowadzimy Cię przez każdy krok wymagany do zainstalowania Django na serwerze hostingowym, od przygotowania środowiska Linux do uruchomienia pierwszego projektu i przygotowania go do produkcji.
Dlaczego wybrać Django dla swojej aplikacji internetowej?
Przed przystąpieniem do procesu instalacji warto zrozumieć, dlaczego Django nadal dominuje w krajobrazie tworzenia aplikacji internetowych w Pythonie:
- Baterie w zestawie: Django jest dostarczane z wbudowanym uwierzytelnianiem, panelem administracyjnym, ORM, obsługą formularzy i funkcjami bezpieczeństwa od razu po wyjęciu z pudełka.
- Skalowalność: Django obsługuje platformy o dużym ruchu, takie jak Instagram i Pinterest.
- Projektowanie zorientowane na bezpieczeństwo: Django chroni przed typowymi lukami w zabezpieczeniach, w tym atakami SQL injection, XSS, CSRF i clickjacking domyślnie.
- Szybki rozwój: Jego filozofia konwencji zamiast konfiguracji pozwala programistom szybciej dostarczać funkcje.
- Ogromny ekosystem: Tysiące pakietów wielokrotnego użytku i duża społeczność oznaczają, że rozwiązania prawie każdego problemu już istnieją.
Aby w pełni wykorzystać Django, potrzebujesz niezawodnego środowiska serwera. Plan VPS Hosting daje Ci dostęp root, dedykowane zasoby i elastyczność, których wymagają aplikacje Django.
Wymagania wstępne
Przed rozpoczęciem procesu instalacji upewnij się, że masz następujące elementy:
- Serwer hostingowy z systemem Linux (zalecane są Ubuntu 20.04/22.04 lub Debian)
- Dostęp SSH do serwera z uprawnieniami sudo
- Python 3.8 lub nowszy (zalecane Python 3.10+)
pip(menedżer pakietów Python) zainstalowany- Podstawowa znajomość wiersza poleceń Linux
> Porada: Jeśli uruchamiasz produkcyjną aplikację Django, unikaj środowisk hostingu współdzielonego. Plan VPS Hosting lub Serwer dedykowany dadzą Ci kontrolę i wydajność, których potrzebuje Twoja aplikacja.
Krok 1: Połącz się z serwerem przez SSH
Otwórz terminal i nawiąż połączenie SSH z serwerem hostingowym:
ssh username@server_ipZastąp username swoją rzeczywistą nazwą użytkownika systemu i server_ip publicznym adresem IP serwera. Jeśli używasz niestandardowego portu SSH lub pliku uwierzytelniania opartego na kluczu, dostosuj polecenie odpowiednio:
ssh -i /path/to/your/key.pem username@server_ipPo połączeniu będziesz mieć interfejs wiersza poleceń do serwera, gdzie możesz rozpocząć proces konfiguracji.
Krok 2: Zaktualizuj system i zainstaluj Python i pip
Aktualizacja pakietów systemowych to krytyczny pierwszy krok zarówno dla bezpieczeństwa, jak i kompatybilności.
Zaktualizuj indeks pakietów
sudo apt update && sudo apt upgrade -yZainstaluj Python 3 i pip
Większość nowoczesnych dystrybucji Ubuntu i Debian jest dostarczana z preinstalowanym Pythonem 3. Najpierw sprawdź wersję Pythona:
python3 --versionJeśli Python 3 nie jest zainstalowany lub potrzebujesz pip, zainstaluj je za pomocą:
sudo apt install python3 python3-pip -ySprawdź instalacje:
python3 --version
pip3 --versionPowinieneś zobaczyć numery wersji potwierdzające dostępność obu narzędzi.
Krok 3: Skonfiguruj wirtualne środowisko Python
Korzystanie ze środowiska wirtualnego to nie tylko zalecenie — jest uważane za najlepszą praktykę dla każdego projektu Python. Środowiska wirtualne izolują zależności projektu od instalacji Pythona na poziomie systemu i od innych projektów na tym samym serwerze, zapobiegając konfliktom wersji i utrzymując środowisko czystym.
Zainstaluj virtualenv
sudo pip3 install virtualenvAlternatywnie możesz użyć wbudowanego modułu venv Pythona (dostępny w Pythonie 3.3+):
sudo apt install python3-venv -yUtwórz katalog projektu i środowisko wirtualne
Przejdź do katalogu, w którym chcesz hostować projekt, lub utwórz nowy:
mkdir myproject
cd myprojectTeraz utwórz środowisko wirtualne wewnątrz katalogu projektu:
virtualenv venvLub, korzystając z wbudowanego modułu venv:
python3 -m venv venvAktywuj środowisko wirtualne
source venv/bin/activatePo aktywacji Twój wiersz poleceń zmieni się, aby pokazać nazwę środowiska wirtualnego, na przykład:
(venv) username@server:~/myproject$Wszystkie polecenia pip install wykonane podczas aktywnego środowiska wirtualnego będą instalować pakiety tylko w tym izolowanym środowisku. Aby go dezaktywować w dowolnym momencie, po prostu uruchom:
deactivateKrok 4: Zainstaluj Django
Ze środowiskiem wirtualnym aktywnym zainstaluj Django za pomocą pip:
pip install djangoAby zainstalować określoną wersję Django (zalecane dla produkcji w celu zapewnienia kompatybilności):
pip install django==4.2Sprawdź instalację:
django-admin --versionPowinieneś zobaczyć numer zainstalowanej wersji Django wydrukowany w terminalu.
Krok 5: Utwórz nowy projekt Django
Użyj wbudowanego narzędzia wiersza poleceń django-admin Django do stworzenia nowego projektu:
django-admin startproject myproject .> Uwaga: Końcowa kropka (.) mówi Django, aby utworzył pliki projektu w bieżącym katalogu, zamiast tworzyć zagnieżdżony podkatalog. To czystsza struktura dla większości wdrożeń.
Katalog projektu będzie teraz zawierać następującą strukturę:
myproject/
├── manage.py
└── myproject/
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.pymanage.py— Narzędzie wiersza poleceń do interakcji z projektem Django.settings.py— Centralny plik konfiguracyjny projektu.urls.py— Konfiguracja routingu URL.wsgi.py/asgi.py— Punkty wejścia dla serwerów internetowych kompatybilnych z WSGI i ASGI.
Krok 6: Skonfiguruj ustawienia bazy danych
Otwórz plik settings.py, aby skonfigurować połączenie z bazą danych:
nano myproject/settings.pyDomyślnie: SQLite (tylko do rozwoju)
Domyślnie Django jest skonfigurowane do używania SQLite, które jest odpowiednie do rozwoju i testowania, ale nie jest zalecane dla produkcji:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}Opcja produkcyjna: PostgreSQL
PostgreSQL to najczęściej rekomendowana baza danych dla Django w produkcji. Najpierw zainstaluj wymagane pakiety:
sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binaryNastępnie zaktualizuj ustawienie DATABASES w settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}Opcja produkcyjna: MySQL / MariaDB
Jeśli wolisz MySQL lub MariaDB, zainstaluj wymagany adapter:
sudo apt install default-libmysqlclient-dev -y
pip install mysqlclientNastępnie skonfiguruj ustawienie DATABASES:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
}
}Skonfiguruj ALLOWED_HOSTS
Będąc w settings.py, zaktualizuj również ustawienie ALLOWED_HOSTS, aby uwzględnić adres IP lub nazwę domeny serwera. Jest to wymagane, aby Django obsługiwało żądania w trybie bez debugowania:
ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']Krok 7: Zastosuj migracje bazy danych
Django używa systemu migracji do zarządzania zmianami schematu bazy danych. Uruchom początkowe migracje, aby utworzyć wszystkie niezbędne tabele bazy danych:
python manage.py migrateZobaczysz dane wyjściowe zawierające listę każdej stosowanej migracji. Pomyślna migracja wygląda następująco:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
...Utwórz superużytkownika (opcjonalnie, ale zalecane)
Utwórz konto administratora, aby uzyskać dostęp do wbudowanego interfejsu administracyjnego Django:
python manage.py createsuperuserZostaniesz poproszony o wprowadzenie nazwy użytkownika, adresu e-mail i hasła.
Krok 8: Uruchom serwer deweloperski Django
Możesz teraz uruchomić wbudowany serwer deweloperski Django, aby zweryfikować instalację:
python manage.py runserver 0.0.0.0:8000To polecenie wiąże serwer deweloperski ze wszystkimi dostępnymi interfejsami sieciowymi na porcie 8000. Otwórz przeglądarkę internetową i przejdź do:
http://your_server_ip:8000Powinieneś zobaczyć stronę powitania Django — rakietę z wiadomością „Instalacja powiodła się! Gratulacje!”
Aby uzyskać dostęp do panelu administracyjnego, przejdź do:
http://your_server_ip:8000/admin> Ważne: Wbudowany serwer deweloperski Django nie nadaje się do produkcji. Jest jednowątkowy, nie zoptymalizowany pod kątem wydajności i pozbawiony hartowania bezpieczeństwa. Zawsze używaj serwera internetowego klasy produkcyjnej do wdrożeń na żywo.
Krok 9: Przygotuj Django do produkcji (zalecane)
W przypadku wdrożeń produkcyjnych musisz skonfigurować odpowiedni stos serwera internetowego. Najczęstsze i zalecane ustawienie to Nginx + Gunicorn.
Zainstaluj Gunicorn
Ze środowiskiem wirtualnym aktywnym:
pip install gunicornPrzetestuj, czy Gunicorn może obsługiwać Twoją aplikację:
gunicorn --bind 0.0.0.0:8000 myproject.wsgiZainstaluj i skonfiguruj Nginx
sudo apt install nginx -yUtwórz plik konfiguracji bloku serwera Nginx:
sudo nano /etc/nginx/sites-available/myprojectDodaj następującą konfigurację:
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;
}
}Włącz konfigurację i uruchom ponownie Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxZbierz pliki statyczne
Zaktualizuj settings.py katalogiem plików statycznych:
STATIC_ROOT = BASE_DIR / 'staticfiles'Następnie zbierz wszystkie pliki statyczne:
python manage.py collectstaticZabezpiecz swoją aplikację za pomocą SSL
W przypadku każdej produkcyjnej aplikacji Django HTTPS jest niezbędne. Certyfikat SSL szyfruje dane przesyłane między serwerem a użytkownikami, chroni poufne informacje i jest wymagany dla nowoczesnych wskaźników zaufania przeglądarki. AlexHost oferuje certyfikaty SSL, które bezproblemowo integrują się z Twoim środowiskiem hostingowym.
Dodatkowe zagadnienia produkcyjne
Zmienne środowiskowe dla poufnych ustawień
Nigdy nie koduj na stałe poufnych wartości, takich jak SECRET_KEY, hasła bazy danych lub klucze API w settings.py. Zamiast tego użyj zmiennych środowiskowych:
pip install python-decoupleW settings.py:
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)Ustaw DEBUG na False w produkcji
DEBUG = FalseUruchomienie z DEBUG = True w produkcji ujawnia szczegółowe strony błędów i poufne informacje konfiguracyjne potencjalnym atakującym.
Skonfiguruj nazwę domeny
Jeśli nie zarejestrowałeś jeszcze domeny dla projektu Django, Rejestracja domeny przez AlexHost ułatwia szybkie skierowanie domeny na serwer, z pełnym zarządzaniem DNS w zestawie.
Wybór odpowiedniego hostingu dla aplikacji Django
Środowisko hostingowe, które wybierzesz, ma znaczący wpływ na wydajność, niezawodność i skalowalność aplikacji Django. Oto krótki przewodnik:
| Przypadek użycia | Zalecany hosting |
|---|---|
| Rozwój i testowanie | Hosting współdzielony |
| Małe do średnich aplikacji produkcyjnych | VPS Hosting |
| Aplikacje o dużym ruchu lub wymagające dużych zasobów |
on All Hosting Services
