cPanel
Napredne usluge
Razno
Shared hosting

Deploy Python aplikacije ( Django )

Ukoliko ste zakupili linux hosting uslugu koja podržava hostanje Python aplikacija ovdje možete pročitati upute kako napraviti deploy Python aplikacije.

U cPanelu potražite i uđite u opciju Setup Python App te kliknite na gumb Create application te popunite sljedeća polja:

  • Python version – Odaberite verziju Pythona koju želite koristiti – dostupne su verzije od 2.7.18 do 3.9.12.
  • Application root – Unesite direktorij u koji treba instalirati Python aplikaciju. Ovo je put relativan u odnosu na korijenski direktorij web hostinga i kreirat će navedeni direktorij ako ne postoji.
  • Application URL – Unesite adresu na kojoj bi se aplikacija trebala nalaziti. Ako bi aplikacija trebala biti dostupna izravno na vašoj domeni, ostavite polje praznim.
  • Application startup file – Unesite naziv datoteke za pokretanje. To povezuje “Ulaznu točku aplikacije” ( Application Entry Point) sa samom aplikacijom.
  • Application Entry Point – Unesite naziv varijable koja sadrži poslužitelj.
  • Passenger log file – Ovo je path do mjesta gdje je zapisana Phusion Passenger log datoteka. -> Passenger log file You can define the path along with the filename ( npr. /home/VAS_CPANEL_USERNAME/logs/passenger.log)
  • Environment variables – Ovdje se mogu dodati varijable okoline za instalaciju Pythona ako je potrebno.

Kada su sva polja popunjena po želji, pritisnite gumb CREATE ( “Kreiraj” ) za postavljanje aplikacije.

 

 

 

Nakon klika na gumb CREATE na vrhu će se kreirati polje u kojem piše naredba:
Enter to the virtual environment.To enter to virtual environment, run the command: source /home/…
S tom komandom ulazite u virtualno okruženje aplikacije.

 

Konfiguriranje Django projekta

Nakon što ste izradili Python aplikaciju u cPanelu, spremni ste izvršiti sljedeće zadatke u komandnom sučelju:

1. Instalirati Django.
2. Stvoriti i konfigurirati Django projekt.
3. Konfigurirati Passenger za rad s Django projektom.

Da biste to učinili, slijedite ove korake:
a) Prijavite se na svoj račun koristeći SSH pristup. Ako niste još kreirali svoj SSH ključ pratite upute u članku ssh osnove i uputi u članku Autentifikacija putem SSH ključa .

b) Aktivirajte virtualno okruženje pomoću naredbe za ulazak u virtualno okruženje aplikacije.

c) Instalirajte Django naredbom (primjer za instalaciju verzije 2.1.8.)

cd ~
pip install django==2.1.8

 


Provjerite verziju komandom:

django-admin --version

Za izradu Django projekta upišite sljedeću naredbu:

django-admin startproject myapp ~/myapp

Da biste stvorili direktorije za statičke projektne datoteke ( static project files ), upišite sljedeće naredbe:

mkdir -p ~/myapp/templates/static_pages
mkdir ~/myapp/static_files
mkdir ~/myapp/static_media

Pomoću uređivača teksta otvorite datoteku ~/myapp/myapp/settings.py , a zatim napravite sljedeće promjene:

Pronađite redak ALLOWED_HOSTS, a zatim ga promijenite na sljedeći način. Zamijenite example.com svojim nazivom domene:
ALLOWED_HOSTS = ['example.com']

 

Pronađite blok TEMPLATES, a zatim ga modificirajte na sljedeći način:

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',
],
},
},
]

 

Pronađite redak STATIC_URL, a zatim dodajte sljedeće retke ispod njega:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')

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

 

Koristite uređivač teksta da biste otvorili datoteku ~/myapp/myapp/urls.py. Izbrišite sav postojeći tekst, a zatim kopirajte sljedeći tekst u datoteku:

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)

 

Koristite uređivač teksta da biste otvorili datoteku ~/myapp/passenger_wsgi.py. Izbrišite sav postojeći tekst, a zatim kopirajte sljedeći tekst u datoteku:

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):
"""
Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it.
"""
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)

 

Koristite uređivač teksta za stvaranje osnovne datoteke index.html u direktoriju ~/myapp/templates/static_pages.

Datoteka može biti jednostavna poput tekstualne datoteke s natpisom Hello world.

 

Upišite sljedeću naredbu:

python ~/myapp/manage.py migrate

 

Postavite račun superkorisnika:

Upišite sljedeću naredbu:

python ~/myapp/manage.py createsuperuser
  • Na upit USERNAME /Korisničko ime upišite korisničko ime administratora, a zatim pritisnite Enter.
  • Za adresu e-pošte upišite adresu e-pošte administratora, a zatim pritisnite Enter.
  • Na upit Lozinka upišite administratorsku lozinku, a zatim pritisnite Enter.

 

Upišite sljedeću naredbu za prikupljanje statičkih datoteka:

python ~/myapp/manage.py collectstatic

Ako budete upitani želite li prebrisati postojeće datoteke, upišite yes i zatim pritisnite Enter.

 

U cPanelu ponovno pokrenite Python aplikaciju:
Prijavite se na cPanel. U odjeljku SOFTWARE na početnom zaslonu cPanela kliknite Setup Python App. Pod WEB APPLICATIONS pronađite aplikaciju myapp, a zatim kliknite ikonu Restart .

 

Testirajte Django stranicu:

Upotrijebite svoj preglednik da biste otišli na http://www.example.com, gdje example.com predstavlja naziv vaše domene. Trebala bi se učitati datoteka index.html.

Upotrijebite svoj preglednik da biste otišli na http://www.example.com/admin, gdje example.com predstavlja naziv vaše domene. Trebali biste vidjeti stranicu za prijavu u administraciju Djanga. Za prijavu upotrijebite podatke za prijavu za superkorisnika koje ste ranije izradili.

Ako se web stranica ne pojavi u vašem pregledniku, pokušajte ručno pokrenuti datoteku passenger_wsgi.py. Da biste to učinili, upišite sljedeću naredbu:

python ~/myapp/passenger_wsgi.py

 

Ne bi trebalo biti “outputa” teksta u konzoli kada pokrenete ovu datoteku. Ako postoje pogreške, provjerite sintaksu u konfiguracijskim datotekama.

 

Sada kada imate podešen Django site, možete započeti razvijanje aplikacije.

Sljedeći resursi mogu pomoći: