Alkalmazás django alkalmazások apache és mod_wsgi az ubuntu
A kiszolgálók elhelyezése megbízható európai adatközpontokba. Nyissa meg a felhőalapú VPS / VDS szervert gyors SSD-ken 1 percen belül!
Legjobb tárhely:
- védi az adatokat a nem kívánt hozzáféréstől egy védett európai adatközpontban
- elfogadja a fizetést legalább a bitcoinban.
- elosztja terjesztését
- védelem a DDos támadásoktól
- mentes mentés
- Uptime 99.9999%
- Adatközpont - TIER III
- szolgáltató - TIER I
Támogatjuk az oroszban 24/7/365 Jogi személyekkel és természetes személyekkel dolgozunk. Most szüksége van 24 magra és 72 GB RAM-ra. Kérlek!
Kedvező tarifáink bizonyítják, hogy még nem tudta az olcsó tárhelyet!
Perc: válassza ki a konfigurációt, a fizetést és a CMS-t a VPS készen áll.
Pénzvisszafizetés - 30 nap!
Bankkártyák, e-deviza, Qiwi, Webmoney, PayPal, Novoplat stb.
Kérdezzen a 24/7/365 támogatáshoz
Válaszokat talál az adatbázisunkban, és ismerkedjen meg az ajánlásokkal
A Django egy produktív webes keretrendszer Python alkalmazásainak vagy webhelyeinek fejlesztésére.
A Django egy egyszerű fejlesztői szervert is kínál a helyi kódfelméréshez. Sajnos a termeléshez sokkal biztonságosabb és erősebb webszervert kell keresnie, mivel ez a szerver teljesen helytelen.
Ez az útmutató segít a Django telepítésében és beállításában egy virtuális Python környezetben, és konfigurálhatja az Apache-t, hogy támogassa az alkalmazást és kezelje az ügyfélkéréseket (a mod_wsgi nevű Apache modult használva, amely a Django-val együttműködve a WSGI felületen keresztül működik).
követelmények
A bemutató befejezéséhez először konfigurálni kell az Ubuntu 16.04 kiszolgálót, és létre kell hoznia egy nem root felhasználónak a sudo-hoz való hozzáférést. Részletes információ a kezdeti kiszolgáló konfigurációról és a felhasználók létrehozásáról itt található.
A Django keretrendszer ebben a leírásban a Python virtuális környezetben lesz telepítve, amely lehetővé teszi, hogy az alkalmazáshoz egyedi csomagkészleteket használjon.
Az alkalmazás futtatása után be kell állítania az Apache webszerver és a Django alkalmazás kölcsönhatását. Ehhez használja a mod_wsgi modult, amely a HTTP kéréseket barátságos Django formátumba alakítja a WSGI specifikációnak megfelelően.
Csomagok telepítése az Ubuntu repository-ból
Először telepítenie kell az Ubuntu repository-tól az összes szükséges csomagot: az Apache webszervert, a mod_wsgi modult és a pip (a Python csomagkezelőt).
Frissítse a csomagindexet és telepítse a programokat.
Ha Python 2-t használ, írja be:
sudo apt-get frissítés
sudo apt-get telepítse a python-pip apache2 libapache2-mod-wsgi fájlt
A Python 3-ban egy másik csomag pipát használunk:
sudo apt-get frissítés
sudo apt-get telepítése python3-pip apache2 libapache2-mod-wsgi-py3
A virtuális környezet konfigurálása
A szerver elkészítése után elkezdheti dolgozni a Django alkalmazásban. Először hozzon létre egy virtuális Python környezetet a projekteszközök tárolásához.
Ehhez használja a virtualenv parancsot. A segédprogram telepítéséhez írja be:
Python 2:
sudo pip install virtualenv
Python 3:
sudo pip3 install virtualenv
Most a virtualenv segédprogram telepítve van, és környezetet hozhat létre. Hozzon létre egy olyan könyvtárat, ahol a virtuális környezet megtalálható és megy hozzá:
Ebben a könyvtárban hozzon létre egy virtuális Python környezetet:
Ez a parancs létrehoz egy myprojectenv nevű virtuális környezetet a myproject könyvtárban, és telepít egy helyi Python és pip változatot, amelyet felhasználhat egy elszigetelt fejlesztési környezet létrehozásához a projekthez.
Mielőtt elkezdené telepíteni az alkalmazás függőségét, engedélyeznie kell a virtuális környezetet.
forrás myprojectenv / bin / activate
Ezután a parancssor megváltozik, jelezve, hogy az aktuális környezet a Python virtuális környezet:
Miután engedélyezte a virtuális környezetet, telepítse a Django:
pip install django
Megjegyzés. A Python verziójától függetlenül az aktív virtuális környezet a pip parancsot használja, nem pedig a pip3 parancsot.
Django alkalmazás létrehozása és konfigurálása
A Django virtuális környezetbe telepítésével elkezdheti létrehozni a Django projektfájlokat.
Django projekt létrehozása
Telepítse a Django fájlokat az előzőleg létrehozott könyvtárba. Ez létrehozza a második szintű könyvtárakat, amelyek tárolják a kódot és a szkripteket. Megjegyzés: a parancsnak egy periódus karakterrel kell végződnie.
django-admin.py startproject myproject.
A Django projekt konfigurálása
A kézikönyv a standard SQLite adatbázist használja, így a telepítés nem igényel sok időt.
Megjegyzés. A nagyméretű alkalmazások támogatása érdekében megbízhatóbb DBMS-t kell konfigurálni.
A hangsúly a statikus Django fájlok könyvtárának konfigurálásán fog állni.
A fájl végén adja hozzá a STATIC_ROOT irányelvet, amely arra utasítja a Django keretrendszert, hogy keresse meg a statikus fájlokat.
STATIC_URL = '/ statikus /'
STATIC_ROOT = os.path.join (BASE_DIR, 'static /')
Mentse és zárja be a fájlt.
Ezt követően megnyithatja az eredeti adatbázis sémát a vezérlőszkript segítségével:
/ myproject
./manage.py makemigrations
./manage.py áttérés
Ezután össze kell állítania a statikus tartalmat egy könyvtárba:
A megerősítés után az összes statikus fájl a projektkönyvtár statikus könyvtárába kerül.
Most ki kell nyitnod a Django fejlesztői kiszolgáló portját, 8000-et. Jelen pillanatban az UFW tűzfal bezárja (ha a szervert a jelen kézikönyv szerint konfigurálta).
A fejlesztői szerver feloldásához írja be:
sudo ufw engedélyezze a 8000-et
A projekt tesztelése a Django fejlesztői kiszolgáló futtatásával:
/manage.py runserver 0.0.0.0:8000
Nyissa meg a böngészőt, és keresse fel a 8000-es porton található tartománynevet vagy IP-kiszolgálót:
A képernyőn megjelenik a Django welcome oldal:
Ez működött!
Gratulálok az első Django-oldaladhoz.
A fejlesztői kiszolgáló leállításához nyomja meg a CTRL-C billentyűt.
A virtuális környezet letiltásához írja be:
Apache konfigurálása
Tehát a Django projekt készen áll és elkezdheti az Apache konfigurálását az elülső végén. Az Apache által fogadott összes kliens kapcsolatot a Django által igényelt WSGI formátumba kell konvertálni a mod_wsgi modult használva (amelyet a telepítés után automatikusan engedélyezni kellett).
A WSGI beállításához módosítsa az alapértelmezett virtuális gépet.
sudo nano /etc/apache2/sites-available/000-default.conf
A fájlban található összes irányelv elhagyható. Csak adj néhány új lehetőséget.
Először állítsd be a statikus fájlokat; Ezután az Apache továbbítja a statikus / statikus állományú összes kérelmet a projektkönyvtárban található statikus könyvtárhoz. Ehhez meg kell adnia az Alias-t, és hozzáférést kell biztosítania a kívánt könyvtárhoz.
.
Alias / statikus / home / 8host / myproject / statikus
Mindenkit megkövetel
Ezután be kell állítania a wsgi.py fájl (a projektkönyvtárak második szintje) hozzáférési jogát, amelyben a projektkód tárolódik. Ehhez használja a Directory részt.
.
Alias / statikus / home / 8host / myproject / static
Mindenkit megkövetel
Mindenkit megkövetel
Most megyünk a WSGI-t feldolgozó beállításokhoz. A WSGI folyamatok elindításához használja a démon módot; erre a célra a WSGIDaemonProcess irányelvet használják. Ez az irányelv tetszőleges nevet ad a folyamatnak. A kézikönyv a myproject nevet használja.
Ezután meg kell adnia a Python elérési útját, ahol az Apache kiszolgáló megtalálhatja az összes szükséges összetevőt. Mivel a virtuális környezetet a konfiguráció használja, meg kell adnia a virtuális környezet könyvtárának elérési útját, majd a Python elérési utat a Django projekt alapkönyvtárához.
Ezt követően meg kell adnia egy folyamatcsoportot; ennek az értéknek meg kell egyeznie a WSGIDaemonProcess direktíva értékével (ebben az esetben myproject). Végül be kell állítania a parancsfájl álnevét, hogy az Apache szerver a gyökérdoméretű kéréseket küldjön a wsgi.py fájlba:
.
Alias / statikus / home / 8host / myproject / static
Mindenkit megkövetel
Mindenkit megkövetel
WSGIDaemonProcess myproject python-home = / home / 8host / myproject / myprojectenv python-path = / home / 8host / myproject
WSGIProcessGroup myproject
WSGIScriptAlias / /home/8host/myproject/myproject/wsgi.py
Mentse és zárja be a fájlt.
Hozzáférési jogok
Az SQLite adatbázis használatával (ami szabványos), ne felejtse el megadni az Apache webszerver számára a hozzáférést.
Ehhez meg kell adnia a tulajdonoscsoportnak az íráshoz és az olvasáshoz való jogot. Alapértelmezés szerint az adatbázis fájl neve db.sqlite3, és a projektkönyvtárban kell lennie:
Adja át a fájlengedélyeket azon csoporthoz, amelybe az Apache szerepel; ez a csoport a www-adatok.
sudo chown: www-adatok
Ahhoz, hogy képes legyen írni egy fájlt, a csoportnak a fájl szülő könyvtárának tulajdonosa kell.
sudo chown: www-adatok
Most újra be kell állítania a tűzfalbeállításokat. Csukja be a 8000-es portot, és adjon hozzá egy kivételt az Apache forgalom számára:
sudo ufw törlés engedélyezése 8000
sudo ufw engedélyezi az 'Apache Full'
Ellenőrizze az Apache fájlok szintaxisát:
sudo apache2ctl configtest
Ha nincs hiba a fájlokban, a parancs visszatér:
Indítsa újra az Apache szolgáltatást a beállítások frissítéséhez.
sudo systemctl restart apache2
Megjegyzés. Nem kell megadnia a port számát.
Következő lépések
Most a Django alkalmazás egyéni virtuális környezetben fut, és a mod_wsgi modul segít az Apache-nak átalakítani a kéréseket egy érthető Django formátumba.
Miután megbizonyosodott arról, hogy az alkalmazás működik, folytathatja a biztonsági konfigurációt. Ha az alkalmazás rendelkezik domain névvel, ingyenes SSL tanúsítványt kaphat a Let's Encrypt-tól.
Üdvözlünk!
Ön ezt írta:
A Django egy produktív webes keretrendszer Python alkalmazásainak vagy webhelyeinek fejlesztésére. A Django egy egyszerű fejlesztői szervert is kínál a helyi kódfelméréshez. Sajnos a termeléshez sokkal biztonságosabb és erősebb webszervert kell keresnie, mivel ez a szerver teljesen helytelen.
És miért nem illik? Miért nem illeszkedik Django a hatalom és a biztonság szempontjából?
Felteszem a kérdést, tk. Nem igazán értem.
Köszönjük előre!
Nem a Django keretrendszerben, hanem a beépített fejlesztői kiszolgálón.
A Django fejlesztői szerver egy egyszerű és könnyű webszerver, amely lehetővé teszi, hogy tesztelje a webhelyet a fejlesztési szakaszban. Az ilyen webszerver nem képes megbirkózni a nagy forgalmakkal a gyártási szakaszban: csak akkor szükséges, hogy a fejlesztés során ne kelljen erőforrásokat és időt töltenie egy teljes értékű webszerver, például az Apache vagy a Nginx létrehozására.
Nagyon köszönöm a választ! Megértem, hogy