Tóm tắt nhanh
- Tạo môi trường ảo và cài thư viện cho Flask.
- Bật CGI trong IIS, cài
wfastcgi
. - Chạy
wfastcgi-enable
, sao chép đường dẫnscriptProcessor
. - Tạo file
web.config
đúng cấu trúc. - Cấu hình IIS và phân quyền thư mục.
- Khởi động lại IIS và kiểm tra kết quả.
🎯 Hướng dẫn triển khai từng bước
1. Cài đặt Python & tạo môi trường ảo (virtual environment)
- Cài đặt Python (đảm bảo bạn đánh dấu Add to PATH khi cài).
- Mở PowerShell hoặc cmd (với quyền admin), điều hướng đến thư mục dự án và chạy: bashSao chépChỉnh sửa
python -m venv venv venv\Scripts\activate pip install -r requirements.txt
2. Bật CGI trong IIS & cài đặt wfastcgi
- Vào Server Manager → Add Roles and Features, chọn Web Server (IIS) → CGI.
- Trong môi trường ảo của bạn, chạy: bashSao chépChỉnh sửa
pip install wfastcgi wfastcgi-enable
Lệnh trên sẽ đăng ký Python và tệpwfastcgi.py
làm trình xử lý FastCGI. Ghi chú lại đường dẫn được tạo ra trong phầnscriptProcessor
.
3. Tạo tệp web.config
Tạo file web.config
trong thư mục gốc của app Flask (cùng cấp với file main.py
):
<?xml version="1.0" encoding="utf‑8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\...\venv\Scripts\python.exe|C:\...\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="main.app" />
<add key="PYTHONPATH" value="C:\path\to\your\project" />
</appSettings>
</configuration>
Lưu ý:
scriptProcessor
: Điền đúng đường dẫn đếnpython.exe
vàwfastcgi.py
trong môi trường ảo.WSGI_HANDLER
: Trỏ đến biến app của Flask (ví dụ:main.app
nếu bạn cóapp = Flask(__name__)
trongmain.py
).PYTHONPATH
: Chỉ định đường dẫn đến thư mục dự án.
4. Cấu hình IIS
- Mở IIS Manager:
- Tạo một website mới, trỏ đến thư mục chứa ứng dụng Flask.
- Trong Configuration Editor, mở khóa mục
system.webServer/fastCgi
.
- Đảm bảo tài khoản IIS_IUSRS và/hoặc tài khoản Application Pool Identity có quyền đọc & ghi đối với thư mục dự án và môi trường ảo (
venv
).
5. Khởi động lại IIS & kiểm tra
- Chạy lệnh
iisreset
hoặc khởi động lại qua giao diện IIS Manager. - Truy cập trang web — bạn sẽ thấy ứng dụng Flask hoạt động (ví dụ: “Hello World”).
⚠️ Lỗi thường gặp & cách khắc phục
Vấn đề | Cách khắc phục |
---|---|
Lỗi 500 (FastCGI error) | Kiểm tra nhật ký lỗi trong IIS. Thường do quyền truy cập không đúng — đảm bảo thư mục venv và thư mục dự án có quyền truy cập đầy đủ cho tài khoản IIS. |
Không import được thư viện Python | Kiểm tra lại môi trường ảo có đầy đủ các thư viện bạn dùng (ví dụ: NumPy, Flask, Pandas). Nếu cần, cài thêm bằng pip install . |