A Django beállítása Debian 8 rendszeren

Ez az oktatóanyag elmagyarázza, hogyan kell beállítani a Django-t Debian 8-ra (jessie). Megmutatom a Python 2 és 3, valamint az Nginx és a PostgreSQL használatát.

Minden, ami ebben az oktatóanyagban történik, rootként történik.

Csomagok telepítése

A kezdéshez telepítenünk kell néhány csomagot.

Python 2 esetén:

apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

Python 3 esetén:

apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

Adatbázisok beállítása

Először bejelentkezünk a felhasználóba postgres.

sudo -u postgres -s

Ezután létrehozunk egy új adatbázist. Az adatbázisnév bármilyen lehet ( dbnameitt használatos), de konzisztensnek kell lennie a telepítés többi részével.

createdb dbname

Hozzon létre egy felhasználót az új adatbázishoz. Ez ismét olyan lehet, amilyennek szeretnéd, de én ezt használtam dbuser. Ez egyúttal jelszó beállítását is kéri.

createuser -P dbuser

A felhasználónak hozzáférést kell adni az adatbázishoz. Csak ügyeljen arra, hogy a megfelelő adatbázisnevet és felhasználónevet használja.

psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q

Kilépés a root-ba.

exit

Engedélyezze és indítsa el a PostgreSQL-t:

systemctl enable postgresql
systemctl start postgresql

Állítsa be a virtuális környezetet

Ahelyett, hogy csak a globális python fájlokat használnánk, virtuális környezetet fogunk használni. Kezdjük azzal, hogy létrehozunk egy könyvtárat, amelyben mindent tárolunk.

mkdir -p /opt/project

Most mi teremtjük meg a környezetet. Ez más a python 2 és 3 felhasználóknál.

Python 2 esetén:

virtualenv . -p python

Python 3 esetén:

virtualenv . -p python3

Lépjen be a virtuális környezetbe.

source bin/activate

Telepítse a Django-t, a gunicorn-t és a psycopg2-t.

pip install django
pip install gunicorn
pip install psycopg2

Ha a Django egy adott verziójára van szüksége, módosítsa az install parancsot az alábbi formátumnak megfelelően. Ez a példa az 1.7.8-at telepíti.

pip install django==1.7.8

Ezzel egyelőre készen vagyunk, így deaktiválhatjuk a virtuális környezetünket.

deactivate

Projekt feltöltés és konfigurálás

Ekkor töltjük fel projektünket a szerverre, és ellenőrizzük, hogy minden beállítása helyes-e. Ehhez bármilyen módszert használhat. Az FTP, SFTP, git stb. mind ennek megfelelő módja. Ha git-t használ a projekt kódjának nyomon követésére, akkor egyszerűen klónozhatja a kiszolgálóra. Ez a git parancs klónozza a projektet a szerverre, és elhelyezi a /opt/project/project/.

git clone http://example.com:project.git

Nyissa meg a settings.pyfájlt bármely szövegböngészőben.

Először is, a hibakeresési módot ki kell kapcsolni. Keresse meg a DEBUG = Truesort, és váltson Trueerre: False. Ezek után győződjön meg arról, hogy ALLOWED_HOSTSbeállított valamilyen értéket.

ALLOWED_HOSTS = ['*']

Keresse meg a DATABASESszótárt, és így kell kinéznie:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'dbuser',
        'PASSWORD': 'password you set',
        'HOST': 'localhost',
        'PORT': ''
    }
}

Az utolsó lépés itt egy statikus gyökér beállítása. Helyezze a következőket közvetlenül alá STATIC_URL.

STATIC_ROOT = '/opt/project/static/'

Lépjen ki a fájlból, és hozza létre a statikus gyökérkönyvtárat.

mkdir -p /opt/project/static

Most állítsa át az adatbázist, hozzon létre egy szuperfelhasználót, és gyűjtse össze az összes statikus fájlt.

cd /opt/project/project
../bin/python manage.py makemigrations
../bin/python manage.py migrate
../bin/python manage.py createsuperuser
../bin/python manage.py collectstatic

A Gunicorn konfigurálása

A Gunicorn a WSGI szerver, amelyet használni fogunk. Mivel a Debian 8 a systemd-vel érkezik, kihasználjuk a systemd előnyeit a szerver indításához és leállításához.

Hozza létre a fájlt, /etc/systemd/system/django.serviceés adja hozzá a következő tartalmat.

[Unit]
Description=Django with Gunicorn
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/opt/project
ExecStart=/opt/project/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 project.wsgi

[Install]
WantedBy=multi-user.target

Engedélyezze és indítsa el az általunk létrehozott szolgáltatást.

systemctl enable django.service
systemctl start django.service

Nginx

Talán észrevette, hogy a gunicorn szervert a következőhöz kötöttük 127.0.0.1. Most egy módra van szükségünk, hogy elérjük a szerveren kívülről. Itt jön be az Nginx.

Hozza létre az új fájlt, /etc/nginx/sites-available/djangoés adja hozzá a következőket. Az domain.example.comalkatrész tetszőlegesen beállítható.

server {
        listen 80;
        server_name domain.example.com;
        access_log off;

        location /static/ {
                alias /opt/project/static/;
        }

        location / {
                proxy_pass http://127.0.0.1:8000;
        }
}

Hozzon létre egy szimbolikus hivatkozást a webhely engedélyezéséhez.

ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django

Engedélyezze és indítsa el az Nginxet.

systemctl enable nginx
systemctl start nginx

Következtetés

Gratulálunk, most már van egy működő Django webhely a Debian VPS-en.

Hagyj kommentárt

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <>Windows ISO<> előállításának lépéseit az NTLite segítségével.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.