ZARZąDZANIE HOSTINGIEM (DIRECTADMIN) • 5 MIN READ

Setup Python App

Jak uruchomić aplikację Python (Django, Flask, FastAPI) na IQHost — Python Selector, WSGI/ASGI, virtualenv, pip, deploy.

Zespół IQHost 14 maj 2026 5m read
#DirectAdmin #IQHost #hosting

Python aplikacje (Django, Flask, FastAPI) na IQHost — przez CloudLinux Python Selector. Podobny mechanizm jak Node.js: wybierz wersję, folder, entry point, IQHost uruchomi.

Co zyskasz

  • Uruchomisz aplikację Python (Django/Flask) na IQHost.
  • Skonfigurujesz virtualenv, pip packages, WSGI.
  • Wdrożysz z git lub FTP.

Wymagania wstępne

  • Pakiet IQHost z Python Selector (zwykle HS5+).
  • Aplikacja Python.

Wskazówka

Python na shared hosting — działa, ale ograniczenia podobne do Node.js (1 worker, RAM limity LVE). Dla heavy compute — VPS.

Krok 1: Otwórz Python Selector

Dodatkowe funkcje → Setup Python App.

Strona Setup Python App w DA Pełna strona Python Selector — lista aplikacji Python

Krok 2: Create Application

  • Python version — 3.9, 3.10, 3.11, 3.12
  • Application root — folder (np. apps/django-blog)
  • Application URL — pod jakim URL (subdomena albo path)
  • Application startup file — WSGI entry (passenger_wsgi.py)
  • Application entry point — funkcja (application zwykle)

Krok 3: Wypełnij — przykład Django

Python version: 3.11
Application root: apps/django-blog
Application URL: blog.mojafirma.pl
Startup file: passenger_wsgi.py
Entry point: application

Klik Create. Po utworzeniu masz:

  • Folder apps/django-blog/
  • Plik passenger_wsgi.py (template)
  • Virtualenv automatycznie tworzony

Krok 4: passenger_wsgi.py (Django)

import sys
import os

# Dodaj projekt do path
INTERP = "/home/host36592/virtualenv/django-blog/3.11/bin/python"
if sys.executable != INTERP:
    os.execl(INTERP, INTERP, *sys.argv)

sys.path.insert(0, os.path.dirname(__file__))

# Django settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myblog.settings')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Flask

import sys
INTERP = "/home/host36592/virtualenv/flask-app/3.11/bin/python"
if sys.executable != INTERP:
    sys.executable = INTERP
sys.path.insert(0, '/home/host36592/apps/flask-app')

from app import app as application

Krok 5: Install dependencies

W Python Selector → Run Pip Install → wskaż requirements.txt w folderze app.

CloudLinux instaluje wszystkie pip packages do virtualenv.

Albo SSH:

source /home/host36592/virtualenv/django-blog/3.11/bin/activate
pip install -r requirements.txt

Krok 6: Environment variables

W panelu — dodaj env vars (DJANGO_SETTINGS_MODULE, SECRET_KEY, DB credentials).

Krok 7: Static files (Django)

Django potrzebuje statycznych plików w publiczym folderze. W settings.py:

STATIC_URL = '/static/'
STATIC_ROOT = '/home/host36592/domains/mojafirma.pl/public_html/static/'

Potem:

python manage.py collectstatic

Static files w public_html/static/ — serwowane bezpośrednio przez LiteSpeed (szybciej niż przez Django).

Krok 8: Database migrations

python manage.py migrate
python manage.py createsuperuser

Tworzy tabele Django + admin user.

Krok 9: Restart app

W panelu Python Selector → Restart App. Lub touch passenger file:

touch /home/host36592/apps/django-blog/tmp/restart.txt

LiteSpeed Passenger zauważa i restartuje.

Frameworki

Flask (minimalny)

# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello from IQHost!'

if __name__ == '__main__':
    app.run()

FastAPI

# main.py
from fastapi import FastAPI
app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello World"}

WSGI dla FastAPI wymaga workaround (ASGI through wsgiref), albo lepiej: subdomena z proxy.

Django

Pełen MVC framework, najpopularniejszy.

Najczęstsze problemy

1. „Application not starting"

  • Sprawdź logi w panelu Python Selector
  • Pythona błąd w passenger_wsgi.py (typowa: zła ścieżka virtualenv)
  • Brak pakietu — pip install requirements.txt

2. „Static files 404"

  • Sprawdź STATIC_URL w settings
  • collectstatic wykonany?
  • Plik fizycznie istnieje w public_html/static/?

3. „Database error"

  • DB credentials w settings dokładne?
  • DB host = localhost, nie remote
  • Migrations wykonane (python manage.py migrate)

4. „WSGI worker died"

LVE może zabijać proces. Optymalizuj memory, sprawdź Resource Usage.

5. „Mogę używać Celery / async workers?"

Trudne na shared hosting (długo-żyjące procesy). Dla async — VPS.

6. „pip install fails"

  • Niektóre packages wymagają system libraries (Pillow → libjpeg) — może wymagać supportu
  • --no-binary :all: może pomóc dla problematycznych
  • Niektóre pakiety nie skompilują się bez root

7. „WhiteNoise vs collectstatic"

WhiteNoise — middleware Django serwujący static z aplikacji. Działa, ale wolniej niż LiteSpeed direct. Zalecane: collectstatic + LiteSpeed.

Słowniczek

  • WSGI — Web Server Gateway Interface, standard dla Pythona web.
  • ASGI — Asynchronous WSGI (FastAPI, Django channels).
  • Passenger — proces manager używany przez LiteSpeed dla Python/Ruby.
  • Virtualenv — izolowane środowisko Python.
  • CloudLinux Python Selector — narzędzie zarządzające Python apps.

Related

Feedback

Czy ten artykuł pomógł?

Potwierdź