Košarica (0)
  • Vaša košarica je trenutno prazna

NEOSERV BLOG

Nasveti, vodiči in koristne informacije o domenah, gostovanju, SSL certifikatih, e-pošti, spletni optimizaciji in varnosti na spletu.

Kategorija: Triki in nasveti
Objavljeno:

Django je priljubljeno ogrodje (ang. framework), ki temelji na programskem jeziku Python in omogoča hitro ter enostavno ustvarjanje zmogljivih spletnih strani. O tem, kako ustvariti preprosto Python aplikacijo, smo na našem blogu že pisali.

V današnjem članku pa vam bomo pokazali, kako namestiti in konfigurirati Django aplikacijo na paketu gostovanja, ki ga lahko upravljate prek nadzorne plošče cPanel.

Naroči Python gostovanje

Sledite postopku, opisanemu v nadaljevanju, in kmalu boste imeli na svoji spletni strani delujočo Django aplikacijo, ki:

  • naloži statično spletno stran,
  • naloži Django skrbniški vmesnik,
  • uporablja podatkovno bazo SQLite.

Kazalo

  1. Ustvarite Python aplikacijo v cPanel
  2. Konfigurirajte Django projekt
  3. Dodatne informacije

1. Ustvarite Python aplikacijo v cPanel

Prvi korak je kreiranje aplikacije Python v nadzorni plošči cPanel, ki bo omogočala postavitev Django projekta.

1. Vpišite se v nadzorno ploščo cPanel (navodila za prijavo).

2. V sekciji SOFTWARE kliknite na ikono Setup Python App.

cPanel - Setup Python App

3. Kliknite na modri gumb CREATE APPLICATION.

4. Odprl se vam bo vmesnik z nekaj polji:

  • Python version: izberite priporočeno (ang. recommended) verzijo 3.7.X ali 3.8.X
  • Application root: določite krovno mapo za aplikacijo, npr. vpišite myapp
  • Application URL: izberite domeno, na katero želite namestiti aplikacijo
  • Application startup file: pustite prazno
  • Application Entry point: pustite prazno
  • Passenger log file*: če želite, lahko določite log datoteko Python aplikacije

cPanel - nastavitev Python aplikacije

Če boste polji Application startup file in Application Entry point pustili prazni, bo nadzorna plošča cPanel samodejno ustvarila zagonsko datoteko passenger_wsgi.py ter privzeti objekt aplikacije. V kolikor vam privzete nastavitve ne ustrezajo, polji po želji izpolnite.

5. V desnem zgornjem kotu kliknite CREATE in počakajte trenutek, da cPanel ustvari aplikacijo.

6. Na vrhu se vam bo izpisal ukaz, s katerim boste kasneje dostopali do virtualnega okolja. Skopirajte si ga, saj ga boste potrebovali v enem izmed naslednjih korakov.

Ukaz za dostop do virtualnega okolja

* Če imate paket gostovanja na Litespeed strežniku, potem Passanger log file nastavite neposredno z vpisom spodnjega ukaza v .htaccess datoteko (ki se nahaja v mapi, kamor kaže Application URL):

PassengerAppLogFile "/home/vasadomena/myapp/logs/passenger.log"

POMEMBNO: Korenski direktorij aplikacije je v tem primeru “myapp”; če želite dnevnik postaviti v podmapo (npr. “logs”), je potrebno to mapo najprej ustvariti.

2. Konfigurirajte Django projekt

Po kreiranju Python aplikacije v cPanel ste pripravljeni, da prek ukazne vrstice uredite:

  • namestitev Django ogrodja,
  • kreiranje in nastavitev Django projekta,
  • nastavitev Passengerja za delo z Django projektom.

1. Prek SSH se povežite na svoj paket gostovanja (navodila).

2. Aktivirajte virtualno okolje z ukazom, omenjenim v 6. točki postopka za kreiranje Python aplikacije.

source /home/uporabnik/virtualenv/myapp/3.7/bin/activate && cd /home/uporabnik/myapp

Opomba: zapis uporabnik v zgornji kodi ustrezno prilagodite, po potrebi tudi Python verzijo!

Ukazna vrstica se zdaj začne z (myapp:3.7), kar pomeni, da se nahajate v virtualnem okolju myapp s Python verzijo 3.7. Vsi naslednji ukazi predvidevajo, da delate v omenjenem virtualnem okolju. Če SSH sejo prekinete, poskrbite, da boste virtualno okolje znova aktivirali.

3. Namestite Django s spodnjima ukazoma:

cd ~
pip install django

Če želite preveriti verzijo nameščenega Django ogrodja, uporabite naslednji ukaz:

django-admin --version

4. Kreirajte nov Django projekt z ukazom:

django-admin startproject myapp ./myapp

5. Če želite ustvariti imenike za statične datoteke projekta, vnesite naslednje ukaze:

mkdir -p ./templates/static_pages
mkdir ./static_files
mkdir ./static_media

6. Z urejevalnikom besedila odprite datoteko ~/myapp/myapp/settings.py in uredite naslednje spremembe:

  • Poiščite vrstico ALLOWED_HOSTS in dodajte zapis 'vasadomena.si'.
ALLOWED_HOSTS = ['vasadomena.si']
  • Poiščite sekcijo kode TEMPLATES in jo posodobite kot prikazano spodaj:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
  • Poiščite vrstico STATIC_URL in pod njo dodajte kodo:
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static_media")

7. Z urejevalnikom besedila odprite datoteko ~/myapp/myapp/urls.py ter izbrišite celotno vsebine datoteke in jo nadomestite z naslednjo:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url
from django.views.generic.base import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'), name='home'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

8. Z urejevalnikom besedila odprite datoteko ~/myapp/passenger_wsgi.py ter izbrišite celotno vsebine datoteke in dodajte naslednjo kodo:

import os
import sys

import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application

# Set up paths and environment variables
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'

# Set script name for the PATH_INFO fix below
SCRIPT_NAME = os.getcwd()

class PassengerPathInfoFix(object):

    def __init__(self, app):
        self.app = app
    
    def __call__(self, environ, start_response):
        from urllib.parse import unquote
        environ['SCRIPT_NAME'] = SCRIPT_NAME
        request_uri = unquote(environ['REQUEST_URI'])
        script_name = unquote(environ.get('SCRIPT_NAME', ''))
        offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
        environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
        return self.app(environ, start_response)

# Set the application
application = get_wsgi_application()
application = PassengerPathInfoFix(application)

9. V mapi ~/myapp/templates/static_pages z urejevalnikom besedila kreirajte osnovno datoteko index.html. Lahko gre zgolj za preprosto besedilno datoteko z zapisom Hello world.

10. V ukazno vrstico vpišite naslednji ukaz:

python ~/myapp/manage.py migrate

11. Nastavite račun super uporabnika (ang. Superuser) z naslednjim ukazom:

python ~/myapp/manage.py createsuperuser

Nato boste v ukazno vrstico morali vnesti tri podatke:

  • Username: določite uporabniško ime administratorja in pritisnite Enter.
  • Email address: določite e-poštni naslov administratorja in pritisnite Enter.
  • Password: določite geslo administratorja in pritisnite Enter.

12. Vnesite naslednji ukaz za zbiranje statičnih datotek:

python ~/myapp/manage.py collectstatic

Opomba: Ob vprašanju, če želite prepisati obstoječe datoteke, vpišite yes in pritisnite Enter.

13. V nadzorni plošči cPanel s klikom na gumb RESTART ponovno zaženite Python aplikacijo.

cPanel - ponovni zagon Python aplikacije

14. Preverite delovanje Django aplikacije na svoji spletni strani:

  • V spletnem brskalniku obiščite http://www.vasadomena.si/ (zapis vasadomena.si nadomestite s svojo dejansko domeno). Prikazati bi se vam morala vsebina datoteke index.html.
  • V spletnem brskalniku obiščite http://www.vasadomena.si/admin (zapis vasadomena.si nadomestite s svojo dejansko domeno). Prikazati bi se vam morala stran, prek katere se vpišete v Django administracijo. Za vpis v administracijo vpišite podatke, ki ste jih določili v 11. točki.

Če se spletno mesto v brskalniku ne prikaže, poskusite datoteko passenger_wsgi.py zagnati ročno. To naredite tako, da v ukazno vrstico vnesete:

python ~/myapp/passenger_wsgi.py

Ko zaženete omenjeno datoteko, v konzoli ne sme biti izpisanega besedila. Če pride do napak, preverite sintakso v konfiguracijskih datotekah.

3. Dodatne informacije

Zdaj ko imate objavljeno spletno mesto, ki podpira Django, lahko začnete delati na razvoju naprednejših Django aplikacij. Pri tem vam bodo v pomoč naslednji viri:

KOMENTARJI

KOMENTIRAJTE OBJAVO

(obvezno)
(obvezno, e-poštni naslov bo skrit)
(neobvezno)
Varnostno vprašanje, ki potrdi, da ste resnična oseba.