Python alkalmazás létrehozása cPanelben (Setup Python App)

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

  1. Jelentkezzen be a cPanelbe, és a Szoftver (Software) részben kattintson a Setup Python App ikonra.
  2. Kattintson a Create Application gombra.
  3. 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ául pyapp. Ne a public_html kö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.
  4. 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

  1. Töltse fel az alkalmazás fájljait és a requirements.txt fájlt az Application root könyvtárba.
  2. A Setup Python App felületen kattintson az alkalmazás melletti szerkesztés (ceruza) ikonra.
  3. A Configuration files részben adja hozzá a requirements.txt fájlt (Add).
  4. 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.py fájlban az ALLOWED_HOSTS listához adja hozzá a domaint;
  • éles oldalon a DEBUG értéke legyen False;
  • a statikus fájlokat a python manage.py collectstatic paranccsal másolja egy nyilvános könyvtárba (például a public_html egy alkönyvtárába), és a STATIC_ROOT erre 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.py fá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.