❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.
cPanel cho phép chạy ứng dụng Python trực tiếp trên shared hosting thông qua Phusion Passenger. Bài này hướng dẫn cài đặt Python app với Flask — framework web phổ biến nhất của Python. Toàn bộ đã được thực hiện và kiểm chứng thật trên cPanel.
I. Yêu cầu
- Hosting cPanel có hỗ trợ Setup Python App (hosting dùng CloudLinux)
- Một domain hoặc subdomain
- Code Python (sẽ tạo trong bài)
II. Truy cập Setup Python App
Đăng nhập cPanel → tìm Setup Python App trong phần Software trên sidebar trái.

III. Tạo ứng dụng Python Flask
Bước 1: Chuẩn bị code
Vào File Manager → tạo thư mục myflaskapp trong home directory (ngoài public_html). Tạo 3 file sau:
File app.py (ứng dụng chính):
from flask import Flask, jsonify
from datetime import datetime
import sys, os
app = Flask(__name__)
@app.route('/')
def home():
return f"""
<html>
<head><title>Flask Demo - cPanel</title></head>
<body style="font-family: sans-serif; max-width: 700px; margin: 40px auto;">
<h1>🐍 Flask App on cPanel</h1>
<p><strong>Python:</strong> {sys.version}</p>
<p><strong>Server time:</strong> {datetime.now().strftime('%d/%m/%Y %H:%M:%S')}</p>
<p><strong>Working dir:</strong> {os.getcwd()}</p>
<p><a href="/api">Xem API JSON</a></p>
</body>
</html>
"""
@app.route('/api')
def api():
return jsonify(
status='ok',
message='Flask API hoạt động!',
python=sys.version,
time=datetime.now().isoformat()
)
if __name__ == '__main__':
app.run(debug=False)
File passenger_wsgi.py (entry point cho Passenger — bắt buộc):
import sys, os
sys.path.insert(0, os.path.dirname(__file__))
from app import app as application
💡 Quan trọng: File phải tên
passenger_wsgi.pyvà biến phải tênapplication— Passenger tìm chính xác tên này. Sai tên = app không chạy.
File requirements.txt:
flask
Bước 2: Tạo Application trên cPanel
Click Create Application:

Điền thông tin:
- Python version: Chọn phiên bản 3.9+ (trong bài này dùng 3.9.23)
- Application root:
myflaskapp - Application URL: Chọn domain, nhập đường dẫn phụ (VD:
flaskapp) - Application startup file:
passenger_wsgi.py - Application Entry point:
application
Click Create. cPanel tạo virtual environment tự động.
Bước 3: Cài đặt Flask
Sau khi tạo app, cần cài Flask vào virtual environment. Click Edit (icon bút chì) trên app:

Có 2 cách cài Flask:
Cách 1 — Run Pip Install: Click nút Run Pip Install. cPanel sẽ đọc file requirements.txt và cài tự động.
Cách 2 — Run Script (khuyến nghị): Tạo file install_deps.py:
import subprocess, sys
result = subprocess.run(
[sys.executable, '-m', 'pip', 'install', 'flask'],
capture_output=True, text=True
)
print('STDOUT:', result.stdout)
print('Return code:', result.returncode)
Sau đó trong giao diện Edit, nhập install_deps.py vào ô Run Script và click chạy. Cách này đáng tin cậy hơn vì chạy pip trực tiếp trong virtual environment.

Bước 4: Restart và test
Quay lại danh sách app, click Restart. Truy cập URL:

App hiển thị đầy đủ thông tin: Python 3.9.23, thời gian server, đường dẫn — xác nhận Flask đang chạy thật trên cPanel!
IV. Lưu ý quan trọng
- File
passenger_wsgi.pylà bắt buộc: Đây là entry point mà Phusion Passenger tìm để chạy app - Tên biến phải là
application: Passenger tìm chính xác biến này - Không dùng
app.run()ở production: Passenger quản lý process, chỉ cầnif __name__ == '__main__'guard cho development - requirements.txt phải có trước khi Run Pip Install: Nếu thiếu file này, Pip Install sẽ không cài gì
- Dùng Run Script nếu Pip Install không work: Tạo script Python gọi pip trực tiếp — cách này đáng tin cậy hơn
V. Xử lý lỗi thường gặp
- “It works!” (trang mặc định): Passenger chạy nhưng app chưa load đúng — kiểm tra tên file
passenger_wsgi.pyvà biếnapplication - 500 Internal Server Error: Kiểm tra
stderr.logtrong thư mục app - ModuleNotFoundError: No module named ‘flask’: Flask chưa cài — dùng Run Script để cài (xem Bước 3)
- App không cập nhật sau khi sửa code: Phải click Restart trên cPanel
- Static files không load: Cần cấu hình thêm đường dẫn static trong Flask hoặc dùng .htaccess
VI. Tổng kết
Chạy Python Flask trên cPanel hoàn toàn khả thi. Quy trình tóm gọn:
- Tạo code:
app.py+passenger_wsgi.py+requirements.txt - Tạo app trên Setup Python App
- Cài Flask bằng Run Pip Install hoặc Run Script
- Restart và test URL
Phù hợp cho API nhỏ, tool nội bộ, dashboard đơn giản. Với ứng dụng phức tạp hơn (Django, FastAPI với async), quy trình tương tự nhưng cần cấu hình thêm. Nếu cần scale lớn, cân nhắc chuyển sang VPS.
Có thể bạn cần xem thêm
- Hướng dẫn cài đặt ứng dụng Node.js trên cPanel
- Deploy ứng dụng Node.js / Python với Docker Compose
- Deploy Node.js, Python, PHP lên Coolify
- Hướng Dẫn Cài Đặt Django Trên Giao Diện cPanel
- Hướng dẫn cài đặt Next.js trên Hosting cPanel
- Deploy ứng dụng đầu tiên lên Coolify - Static Site & React/Vue SPA
Về tác giả
Thạch Phạm
Đồng sáng lập và Giám đốc điều hành của AZDIGI. Có hơn 15 năm kinh nghiệm trong phổ biến kiến thức liên quan đến WordPress tại thachpham.com, phát triển website và phát triển hệ thống.