Python (Flask / Django / FastAPI) และภาษาอื่นผ่าน Nginx Unit
เซิร์ฟเวอร์ web4 มี Python 3.12 พร้อม pip (ใช้คำสั่ง pip ได้เลย) และ venv รองรับทั้งแอปแบบ WSGI (Flask, Django) และ ASGI (FastAPI)
💡 แนะนำให้รันแอปบน subdomain แยก (วิธีสร้าง Subdomain)
เตรียมโปรเจกต์และ virtual environment
cd ~/domains/py.DOMAIN
mkdir py-app && cd py-app
python3 -m venv venv
source venv/bin/activate
pip install flask # หรือ django / fastapi
ตัวอย่าง Flask (app.py)
from flask import Flask
app = Flask(__name__) # <- ชื่อ callable คือ "app"
@app.route("/")
def hello():
return "สวัสดีจาก Python บน web4!"
ตัวอย่าง FastAPI (ASGI)
from fastapi import FastAPI
app = FastAPI() # <- callable "app"
@app.get("/")
def root():
return {"message": "hello"}
ℹ️ สำหรับ Django ไฟล์ WSGI คือ PROJECT/wsgi.py และ callable คือ application
สร้าง Application
- Advanced Features › Nginx Unit › CREATE APPLICATION
- Type =
Python, เลือก Version 3.12 - Working directory = โฟลเดอร์โปรเจกต์ เช่น
/domains/py.DOMAIN/py-app/ - ระบุ ชื่อโมดูล (ชื่อไฟล์ไม่ต้องมี
.pyเช่นapp) และ ชื่อ callable (เช่นapp) - ถ้าใช้ venv ให้ระบุพาธ venv (เช่น
/home/USER/domains/py.DOMAIN/py-app/venv) ในช่อง home/virtualenv ที่แท็บ Advanced Options - กด CREATE แล้วสร้าง Route ผูกกับ subdomain เช่นเดียวกับ Node.js
💡 อย่าลืมรีสตาร์ตแอปหลังแก้โค้ดหรือติดตั้งแพ็กเกจใหม่
⚠️ ถ้าขึ้น No module named ... ให้ตรวจว่าติดตั้งแพ็กเกจใน venv และระบุ venv ในการตั้งค่าแอปแล้ว
ภาษาอื่น ๆ (Ruby / Perl / Java)
Nginx Unit รองรับภาษาเพิ่มเติม โดยขั้นตอนเหมือนกัน (CREATE APPLICATION → เลือก Type → Working directory → CREATE → CREATE ROUTE)
| ภาษา | เวอร์ชัน | รูปแบบแอป |
|---|---|---|
| Ruby | 2.5 | แอป Rack (ไฟล์ config.ru) |
| Perl | 5 | แอป PSGI (ไฟล์ .psgi) |
| Java | 17 | ไฟล์ .war — ระบุพาธในช่อง Webapp |
ℹ️ PHP ไม่ได้รันผ่าน Nginx Unit — เว็บ PHP ทำงานแบบปกติใน public_html