Nastavte Django na Debian 8

Tento tutoriál vysvětluje, jak nastavit Django na Debianu 8 (jessie). Ukážu, jak používat Python 2 a 3, stejně jako Nginx a PostgreSQL.

Vše, co se děje v tomto tutoriálu, se provádí jako root.

Nainstalujte balíčky

Abychom mohli začít, musíme nainstalovat nějaké balíčky.

Pro Python 2:

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

Pro Python 3:

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

Nastavení databází

Nejprve se přihlásíme k uživateli postgres.

sudo -u postgres -s

Dále vytvoříme novou databázi. Název databáze může být jakýkoliv chcete ( dbnamezde se používá), ale musíte být konzistentní se zbytkem nastavení.

createdb dbname

Vytvořte uživatele pro novou databázi. Opět to může být cokoliv, co si přejete, ale použil jsem dbuser. To vás také požádá o nastavení hesla.

createuser -P dbuser

Uživateli nyní musí být udělen přístup k databázi. Jen se ujistěte, že používáte správný název databáze a uživatelské jméno.

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

Konec do rootu.

exit

Povolte a spusťte PostgreSQL:

systemctl enable postgresql
systemctl start postgresql

Nastavte virtuální prostředí

Místo toho, abychom používali pouze globální soubory python, budeme používat virtuální prostředí. Začneme tím, že si vytvoříme adresář, do kterého se to všechno vejde.

mkdir -p /opt/project

Nyní vytváříme prostředí. To se liší pro uživatele pythonu 2 a 3.

Pro Python 2:

virtualenv . -p python

Pro Python 3:

virtualenv . -p python3

Vstupte do virtuálního prostředí.

source bin/activate

Nainstalujte Django, gunicorn a psycopg2.

pip install django
pip install gunicorn
pip install psycopg2

Pokud potřebujete konkrétní verzi Django, změňte příkaz install tak, aby odpovídal formátu níže. Tento příklad nainstaluje 1.7.8.

pip install django==1.7.8

Nyní jsme s tím prozatím hotovi, takže můžeme deaktivovat naše virtuální prostředí.

deactivate

Nahrání a konfigurace projektu

To je čas, kdy nahráváme náš projekt na server a ujišťujeme se, že všechna jeho nastavení jsou správná. K tomu můžete použít jakoukoli metodu. FTP, SFTP, git atd. jsou všechny způsoby, jak toho dosáhnout. Pokud ke sledování kódu projektu používáte git, můžete jej jednoduše naklonovat na server. Tento příkaz git naklonuje projekt na server a umístí jej do /opt/project/project/.

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

Otevřete settings.pysoubor v libovolném textovém prohlížeči.

Za prvé, režim ladění musí být vypnutý. Vyhledejte DEBUG = Trueřádek a změňte Truena False. Poté se ujistěte, že jste ALLOWED_HOSTSnastavili nějakou hodnotu.

ALLOWED_HOSTS = ['*']

Hledejte DATABASESslovník a měl by vypadat takto:

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

Posledním krokem je zde nastavení statického kořenového adresáře. Umístěte následující přímo pod STATIC_URL.

STATIC_ROOT = '/opt/project/static/'

Ukončete soubor a vytvořte statický kořenový adresář.

mkdir -p /opt/project/static

Nyní migrujte databázi, vytvořte superuživatele a shromážděte všechny statické soubory.

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

Nakonfigurujte Gunicorn

Gunicorn je server WSGI, který budeme používat. Protože Debian 8 přichází s systemd, využijeme výhody systemd ke spuštění a zastavení serveru.

Vytvořte soubor /etc/systemd/system/django.servicea přidejte následující obsah.

[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

Povolte a spusťte službu, kterou jsme vytvořili.

systemctl enable django.service
systemctl start django.service

Nginx

Možná jste si všimli, že jsme svázali server gunicorn s 127.0.0.1. Nyní potřebujeme způsob, jak k němu přistupovat zvenčí serveru. Zde přichází na řadu Nginx.

Vytvořte nový soubor /etc/nginx/sites-available/djangoa přidejte následující. domain.example.comČást může být nastavena na co ji potřebujete.

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;
        }
}

Vytvořte symbolický odkaz pro aktivaci tohoto webu.

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

Povolte a spusťte Nginx.

systemctl enable nginx
systemctl start nginx

Závěr

Gratulujeme, nyní máte na svém Debian VPS funkční stránku Django.

Zanechat komentář

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více