Jak zainstalować Django na serwerze hostingowym: Kompletny przewodnik krok po kroku
Django to wysokopoziomowy framework webowy Python zaprojektowany do wspierania szybkiego rozwoju i czystego, pragmatycznego projektowania. Pozostaje jednym z najpopularniejszych wyborów do budowania skalowalnych, bezpiecznych i łatwych w utrzymaniu aplikacji webowych — 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 do swojej aplikacji internetowej?
Zanim przejdziesz do procesu instalacji, warto zrozumieć, dlaczego Django nadal dominuje w krajobrazie tworzenia aplikacji internetowych w Pythonie:
- Wszystko w zestawie: Django zawiera wbudowaną autentykację, panel administracyjny, ORM, obsługę formularzy i funkcje bezpieczeństwa od razu po wyjęciu z pudełka.
- Skalowalność: Django napędza platformy o dużym ruchu, takie jak Instagram i Pinterest.
- Projektowanie zorientowane na bezpieczeństwo: Django chroni przed typowymi lukami w zabezpieczeniach, w tym SQL injection, XSS, CSRF i clickjacking domyślnie.
- Szybkie tworzenie: Jego filozofia konwencji zamiast konfiguracji pozwala deweloperom szybciej wdrażać 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, będziesz potrzebować 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 Ubuntu 20.04/22.04 lub Debian)
- Dostęp SSH do serwera z uprawnieniami sudo
- Python 3.8 lub wyższy (zalecany Python 3.10+)
pip(menedżer pakietów Pythona) zainstalowany- Podstawowa znajomość wiersza poleceń Linux
> Wskazówka profesjonalna: Jeśli uruchamiasz produkcyjną aplikację Django, unikaj środowisk hostingu współdzielonego. Plan VPS Hosting lub Dedicated Server zapewni kontrolę i wydajność, której potrzebuje Twoja aplikacja.
Krok 1: Połącz się z serwerem za pośrednictwem SSH
Otwórz terminal i nawiąż połączenie SSH z serwerem hostingowym:
ssh username@server_ipZastąp username 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 nawiązaniu połączenia będziesz mieć dostęp do interfejsu wiersza poleceń serwera, gdzie możesz rozpocząć proces konfiguracji.
Krok 2: Zaktualizuj system i zainstaluj Python oraz pip
Utrzymywanie pakietów systemowych w aktualnym stanie jest krytycznym pierwszym krokiem 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 ma Python 3 preinstalowany. 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
Używanie wirtualnego środowiska nie jest tylko zalecane — jest uważane za najlepszą praktykę dla każdego projektu Python. Wirtualne środowiska izolują zależności projektu od systemowej instalacji Python i od innych projektów na tym samym serwerze, zapobiegając konfliktom wersji i utrzymując środowisko w czystości.
Zainstaluj virtualenv
sudo pip3 install virtualenvAlternatywnie możesz użyć wbudowanego modułu venv Python (dostępny w Python 3.3+):
sudo apt install python3-venv -yUtwórz katalog projektu i wirtualne środowisko
Przejdź do katalogu, w którym chcesz hostować projekt, lub utwórz nowy:
mkdir myproject
cd myprojectTeraz utwórz wirtualne środowisko wewnątrz katalogu projektu:
virtualenv venvLub, używając wbudowanego modułu venv:
python3 -m venv venvAktywuj wirtualne środowisko
source venv/bin/activatePo aktywacji wiersz polecenia zmieni się, aby pokazać nazwę wirtualnego środowiska, na przykład:
(venv) username@server:~/myproject$Wszystkie polecenia pip install wykonane podczas aktywnego wirtualnego środowiska będą instalować pakiety tylko w tym izolowanym środowisku. Aby je dezaktywować w dowolnym momencie, po prostu uruchom:
deactivateKrok 4: Instalacja Django
Przy aktywnym środowisku wirtualnym zainstaluj Django za pomocą pip:
pip install djangoAby zainstalować konkretną wersję Django (zalecane dla produkcji w celu zapewnienia kompatybilności):
pip install django==4.2Zweryfikuj 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ń.
Twój 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: Konfiguracja ustawień 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 skonfigurowany 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 jest najczęściej zalecaną bazą 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',
}
}Konfiguracja ALLOWED_HOSTS
Podczas gdy jesteś 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ł żą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 administratora Django:
python manage.py createsuperuserZostaniesz poproszony o wprowadzenie nazwy użytkownika, adresu e-mail i hasła.
Krok 8: Uruchomienie serwera deweloperskiego 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ę powitalną Django — rakietę z wiadomością „The install worked successfully! Congratulations!”
Aby uzyskać dostęp do panelu administracyjnego, przejdź do:
http://your_server_ip:8000/admin> Ważne: Wbudowany serwer deweloperski Django nie jest odpowiedni do produkcji. Jest jednowątkowy, nie zoptymalizowany pod kątem wydajności i pozbawiony wzmocnienia bezpieczeństwa. Zawsze używaj serwera WWW klasy produkcyjnej do wdrożeń na żywo.
Krok 9: Przygotuj Django do produkcji (Zalecane)
W przypadku wdrożeń produkcyjnych musisz skonfigurować odpowiedni stos serwera WWW. Najczęstszą i zalecaną konfiguracją jest Nginx + Gunicorn.
Zainstaluj Gunicorn
Z aktywnym środowiskiem wirtualnym:
pip install gunicornSprawdź, 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 za pomocą katalogu 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 Twoim 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 uwagi dotyczące produkcji
Zmienne środowiskowe dla ustawień wrażliwych
Nigdy nie koduj na stałe wrażliwych 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 = FalseUruchamianie z DEBUG = True w produkcji ujawnia szczegółowe strony błędów i wrażliwe informacje konfiguracyjne potencjalnym atakującym.
Skonfiguruj nazwę domeny
Jeśli nie zarejestrowałeś jeszcze domeny dla swojego projektu Django, Rejestracja domeny przez AlexHost ułatwia szybkie skierowanie domeny na serwer, z pełnym zarządzaniem DNS.
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 | Rekomendowany hosting |
|---|---|
| Rozwój i testowanie | Hosting współdzielony |
| Małe i średnie aplikacje produkcyjne | Hosting VPS |
| Aplikacje o dużym ruchu lub wymagające dużych zasobów | Serwery dedykowane |
| Aplikacje Django zintegrowane z uczeniem maszynowym / AI | Hosting GPU |
W przypadku większości projektów Django przechodzących do produkcji, plan Hosting VPS oferuje idealną równowagę wydajności, kontroli i efektywności kosztowej. Uzyskujesz dostęp root, możliwość zainstalowania dowolnego stosu oprogramowania oraz dedykowane zasoby, których hosting współdzielony nie może zapewnić.
Rozwiązywanie typowych problemów z instalacją Django
pip: command not found
Zainstaluj pip ręcznie: sudo apt install python3-pip -y
django-admin: command not found
Twoje środowisko wirtualne może nie być aktywowane. Uruchom source venv/bin/activate i spróbuj ponownie.
Port 8000 niedostępny
Sprawdź reguły zapory sieciowej serwera. Na Ubuntu z UFW:
sudo ufw allow 8000
sudo ufw reloadOdmowa połączenia z bazą danych
Sprawdź, czy usługa bazy danych jest uruchomiona:
sudo systemctl status postgresql
# or
sudo systemctl status mysqlALLOWED_HOSTS Błąd
Upewnij się, że adres IP serwera lub nazwa domeny znajduje się na liście w ustawieniu ALLOWED_HOSTS w settings.py.
Podsumowanie
Pomyślnie zainstalowałeś Django na serwerze hostingowym, skonfigurałeś wirtualne środowisko, skonfigurałeś bazę danych i nauczyłeś się przygotowywać aplikację do produkcji. Bogaty zestaw funkcji Django, silne ustawienia bezpieczeństwa i ogromny ekosystem sprawiają, że jest to doskonały wybór dla projektów tworzenia stron internetowych w dowolnej skali.
W przypadku wdrożeń produkcyjnych zawsze używaj odpowiedniego stosu serwerów internetowych (Nginx + Gunicorn lub Apache + uWSGI), ustaw DEBUG = False, zabezpiecz swoją aplikację za pomocą Certyfikatu SSL, i wybierz środowisko hostingowe, które odpowiada wymaganiom zasobów Twojej aplikacji. Niezależnie od tego, czy rozpoczynasz nowy projekt, czy skalujesz istniejący, Hosting VPS i plany Serwera Dedykowanego AlexHost zapewniają wydajność, niezawodność i elastyczność, na którą zasługuje Twoja aplikacja Django.
na wszystkich usługach hostingowych