cPanel tárhelyeinken Python webalkalmazást is futtathat, például Flask vagy Django alapút. Az alkalmazásokat a CloudLinux Python Selector kezeli, amely a cPanelben Setup Python App néven érhető el. Minden alkalmazás saját virtuális környezetet (virtualenv) kap a kiválasztott Python verzióval, az alkalmazást pedig a Phusion Passenger futtatja.
A Passenger WSGI alkalmazásokat futtat. Ez a Flask, a Django és a legtöbb hagyományos Python webes keretrendszer esetében megfelelő. Az ASGI alapú keretrendszerekhez (például a FastAPI-hoz) WSGI-adapterre van szükség.
Az alkalmazás létrehozása
- Jelentkezzen be a cPanelbe, és a Szoftver (Software) részben kattintson a Setup Python App ikonra.
- Kattintson a Create Application gombra.
- Töltse ki a mezőket:
- Python version: a használni kívánt Python verzió.
- Application root: az alkalmazás könyvtára a saját könyvtárához (
/home/felhasznalo) viszonyítva, példáulpyapp. Ne apublic_htmlkönyvtárat adja meg. - Application URL: a domain és az útvonal, ahol az alkalmazás elérhető lesz.
- Application startup file: a belépési fájl. Alapértelmezés szerint
passenger_wsgi.py. - Application Entry point: a belépési fájlban lévő WSGI-objektum neve. Alapértelmezés szerint
application. - Passenger log file: ide kerülnek az alkalmazás hibaüzenetei, például
/home/felhasznalo/logs/pyapp.log.
- Kattintson a Create gombra.
Fontos: az alkalmazás könyvtárának ne adjon python37, python38, python311 vagy hasonló nevet, mert ez hibát okoz.
A cPanel létrehozza a könyvtárat, a virtuális környezetet, valamint egy minta passenger_wsgi.py fájlt, amely egy egyszerű „It works!” oldalt jelenít meg. Az Application URL címen ellenőrizheti, hogy működik-e.
Csomagok telepítése
- Töltse fel az alkalmazás fájljait és a
requirements.txtfájlt az Application root könyvtárba. - A Setup Python App felületen kattintson az alkalmazás melletti szerkesztés (ceruza) ikonra.
- A Configuration files részben adja hozzá a
requirements.txtfájlt (Add). - Kattintson a Run Pip Install gombra, majd indítsa újra az alkalmazást (Restart).
Flask alkalmazás
Ha a Flask-alkalmazás az app.py fájlban van, és az objektum neve app:
# app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Helló a Flask alkalmazásból!"
a passenger_wsgi.py tartalma legyen ez:
from app import app as application
A requirements.txt fájlba írja be a flask sort, majd telepítse a csomagokat a fent leírt módon.
Django alkalmazás
Django esetén a passenger_wsgi.py a projekt WSGI-alkalmazását tölti be. Ha a projekt neve myproject:
import os
import sys
sys.path.insert(0, os.path.dirname(__file__))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
A beállításoknál ne feledje:
- a
settings.pyfájlban azALLOWED_HOSTSlistához adja hozzá a domaint; - éles oldalon a
DEBUGértéke legyenFalse; - a statikus fájlokat a
python manage.py collectstaticparanccsal másolja egy nyilvános könyvtárba (például apublic_htmlegy alkönyvtárába), és aSTATIC_ROOTerre mutasson; - az adatbázist a cPanelben hozza létre, lásd: MySQL adatbázisok és felhasználók létrehozása.
Környezeti változók
Az alkalmazás szerkesztőoldalán az Add Variable gombbal környezeti változókat adhat meg, például a Django SECRET_KEY értékét vagy az adatbázis jelszavát. Az alkalmazás ezeket az os.environ segítségével olvassa ki. Mentés után indítsa újra az alkalmazást.
Újraindítás változtatás után
A kód módosítása után az alkalmazást újra kell indítani: kattintson a Restart gombra, vagy az alkalmazáslista Actions oszlopában az újraindítás ikonra. Itt állíthatja le és törölheti is az alkalmazást.
Parancssori használat (SSH)
SSH-hozzáféréssel rendelkező csomagokban (cPanel Prémium és Pro) az alkalmazás virtuális környezetébe a terminálból is beléphet, például a Django manage.py parancsaihoz. A pontos parancsot a Setup Python App felület az alkalmazás szerkesztőoldalának tetején mutatja, és így néz ki:
source /home/felhasznalo/virtualenv/pyapp/3.12/bin/activate && cd /home/felhasznalo/pyapp
Ezután a python és a pip parancs az alkalmazás környezetében fut:
pip install -r requirements.txt
python manage.py migrate
Hibakeresés
- Ha az oldal hibát jelez, nézze meg a Passenger log file mezőben megadott naplófájlt.
- Ellenőrizze, hogy az Application Entry point neve megegyezik-e a
passenger_wsgi.pyfájlban lévő objektum nevével. - Az alkalmazás a tárhelyfiók erőforrás-limitjein belül fut. Memóriahiány esetén ellenőrizze az erőforrás-használatot.