رفتن به محتوای اصلی
هاست وردپرسمیزبانی برای فردای بزرگ‌تر
هاست وردپرسثبت دامنهبهینه‌سازی سایتمجلهدربارهٔ ماتماس با ما
ناحیهٔ کاربری
خانه/مجله/فلسک
فلسک۱۰ دقیقه مطالعه

آموزش اجرای Flask روی هاست cPanel

آموزش قدم‌به‌قدم Flask برای اولین انتشار؛ ورود به cPanel، انتقال فایل‌ها، نصب کتابخانه‌ها و تنظیم فایل شروع تا نمایش برنامه روی دامنه.

انتشار: 1404/11/24

تهیه و انتشار: هاست وردپرس· به‌روزرسانی: ۲۰ مهر ۱۴۰۵

آموزش اجرای Flask روی هاست cPanel
از برنامهٔ محلی تا API آنلاین؛ راهنمای اجرای Flask با محیط مجازی، Passenger و WSGI.
فهرست مطالب +
پیش‌نیازها و نام‌های نمونهورود به cPanelساخت پوشه و آپلودapp.py و requirements.txtساخت Python AppTerminal و نصب Flaskفایل شروع برنامهتنظیمات و دیتابیسراه‌اندازی و رفع خطاسوالات متداولمنابع آموزش

در این راهنما

  • ورود به cPanel، ساخت پوشه و آپلود یا ساخت فایل‌ها
  • نصب Flask و تنظیم محیط مجازی و ورودی WSGI
  • راه‌اندازی برنامه و دیدن نتیجه روی دامنه

قبل از شروع؛ برنامه را آماده کنید

در این آموزش از ورود به cPanel شروع می‌کنیم و در پایان، برنامهٔ Flask را روی دامنه می‌بینیم. اگر پروژه دارید، فایل‌های آن و requirements.txt را آماده کنید. اگر هنوز پروژه ندارید، با نمونهٔ سادهٔ همین مقاله مراحل را انجام دهید.

نام پوشهٔ هاست در مثال‌ها flaskapp، فایل اصلی app.py و نام برنامه داخل آن app است. USERNAME را در فرمان‌ها با نام کاربری cPanel خود جایگزین کنید.

۱. ورود به cPanel

cPanel پنل مدیریت هاست شماست؛ فایل‌ها، دیتابیس و ترمینال را از همین صفحه مدیریت می‌کنید. برای ورود، اطلاعات سرویس فعال خود را آماده داشته باشید.

  1. وارد ناحیهٔ کاربری هاست وردپرس شوید؛ از حسابی استفاده کنید که هاست را با آن تهیه کرده‌اید.
  2. در بخش سرویس‌ها، هاست فعال خود را باز کنید و گزینهٔ ورود به cPanel را بزنید. اگر لینک ورود مستقیم ندارید، از آدرس و اطلاعات ورودِ پیام فعال‌سازی سرویس استفاده کنید.
  3. پس از ورود، صفحهٔ اصلی cPanel را می‌بینید. نام ابزار موردنیاز، مثل File Manager یا Terminal را در کادر جست‌وجوی پنل بنویسید.

نام کاربری cPanel را از اطلاعات سرویس پیدا کنید. هر جا در فرمان‌ها USERNAME دیدید، همین نام را جایگزین کنید؛ این مقدار، ایمیل یا نام نمایشی حساب شما نیست.

دامنه باید به هاست شما وصل شده باشد. نام آن را در بخش Domains ببینید؛ برای تنظیم DNS، از اطلاعات پیام فعال‌سازی هاست استفاده کنید. در ادامه File Manager، Setup Python App و Terminal را از جست‌وجوی cPanel باز می‌کنیم.

۲. ساخت پوشه و انتقال فایل‌ها

  1. در File Manager از ستون کناری Home را باز کنید.
  2. با + Folder پوشهٔ flaskapp را کنار public_html بسازید و وارد آن شوید.
  3. اگر پروژه دارید، فایل‌های آن را روی رایانه ZIP کنید؛ پوشهٔ محیط مجازی، Git و رمزها را کنار بگذارید.
  4. Upload را بزنید و ZIP را آپلود کنید. در File Manager، ZIP را انتخاب و با Extract باز کنید.

فایل اصلی باید مستقیم داخل flaskapp باشد؛ مثلاً /home/USERNAME/flaskapp/app.py. اگر ZIP یک پوشهٔ اضافی ساخته، محتویات آن را با Move به flaskapp بیاورید. پروژهٔ پایتون را در public_html قرار ندهید.

۳. ساخت app.py و requirements.txt

اگر پروژه ندارید، داخل flaskapp روی + File بزنید و فایل app.py را بسازید. آن را انتخاب و Edit را بزنید؛ کد زیر را قرار دهید و Save Changes را بزنید.

app.py؛ نمونهٔ سادهٔ Flask
from flask import Flask

app = Flask(__name__)

@app.get("/")
def home():
    return "Flask application is ready."
    

این برنامه با باز شدن صفحهٔ اصلی، پیام Flask application is ready. را نمایش می‌دهد. app نام شیء برنامه است و در مراحل بعد همین شیء را به وب‌سرور معرفی می‌کنیم.

با + File، فایل requirements.txt را نیز در همین پوشه بسازید. برای این نمونه، فقط یک خط Flask داخل آن بنویسید و ذخیره کنید. این فایل فهرست پکیج‌های لازم است؛ برای پروژهٔ خودتان، وابستگی‌ها و نسخه‌های همان پروژه را قرار دهید.

۴. ساخت Python App در پنل

به صفحهٔ اصلی cPanel بروید، Setup Python App را باز کنید و Create Application را بزنید:

  • Python version: نسخهٔ سازگار با برنامه و کتابخانه‌های آن.
  • Application root: مقدار flaskapp؛ بدون /home/USERNAME.
  • Application URL: دامنهٔ متصل به هاست؛ در این مثال مسیر بعد از دامنه خالی است.
  • Application startup file: مقدار passenger_wsgi.py.
  • Application Entry point: مقدار application.

Create را بزنید. پنل محیط مجازی برنامه را می‌سازد؛ این محیط محل نصب جداگانهٔ پکیج‌های پروژه است. دستور فعال‌سازی آن را که بالای صفحهٔ برنامه آمده کپی کنید.

۵. باز کردن Terminal و نصب Flask

در جست‌وجوی cPanel، Terminal را پیدا و باز کنید. اگر پیام تأیید اولین ورود نمایش داده شد، آن را بخوانید و I understand and want to proceed را بزنید. هر فرمان را وارد کنید و Enter بزنید:

فعال‌سازی محیط و نصب requirements.txt
# Use the activation command shown in your cPanel account.
# Replace USERNAME, APP_ROOT and PYTHON_VERSION with your account values.
source /home/USERNAME/virtualenv/APP_ROOT/PYTHON_VERSION/bin/activate
cd /home/USERNAME/APP_ROOT
python -m pip install -r requirements.txt
    

به‌جای خط اول از دستور واقعی پنل استفاده کنید. در خط دوم، USERNAME نام کاربری شما و APP_ROOT برابر flaskapp است. خط آخر کتابخانه‌ها را نصب می‌کند؛ تا پایان نصب صبر کنید.

برای اطمینان از نصب، python -m pip show Flask را اجرا کنید. باید نام و نسخهٔ Flask را ببینید. در نشست تازهٔ Terminal، دوباره محیط مجازی را فعال کنید و وارد پوشهٔ برنامه شوید.

۶. ساخت فایل passenger_wsgi.py

در File Manager پوشهٔ flaskapp را باز کنید. فایل passenger_wsgi.py را با + File بسازید یا اگر پنل آن را ساخته، با Edit باز کنید. برای نمونهٔ app.py، این محتوا را قرار دهید و Save Changes را بزنید:

passenger_wsgi.py
import sys
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent
sys.path.insert(0, str(BASE_DIR))
# app.py must export a Flask instance called app.
from app import app as application
    

در خط آخر، app اول نام فایل app.py و app دوم نام شیء داخل آن است. application نامی است که در Entry point پنل نوشتیم. این فایل باید کنار app.py باشد. Passenger درخواست‌های دامنه را به همین برنامه می‌رساند.

فقط اگر پروژهٔ شما تابع create_app دارد

اگر پروژه تابعی دارد که برنامه را می‌سازد، به‌جای نمونهٔ بالا از کد زیر استفاده کنید. myproject را با نام بستهٔ واقعی پروژه عوض کنید. برای نمونهٔ سادهٔ app.py، همان کد قبلی کافی است.

ورودی برای پروژهٔ دارای create_app
import sys
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent
sys.path.insert(0, str(BASE_DIR))
from myproject import create_app

application = create_app()
    

۷. تنظیم رمزها و دیتابیس پروژه

نمونهٔ سادهٔ این مقاله به دیتابیس و کلید نشست نیاز ندارد؛ می‌توانید به مرحلهٔ بعد بروید. اگر برنامهٔ خودتان دیتابیس، ورود کاربر یا API خارجی دارد، تنظیماتش را نیز منتقل کنید.

در Setup Python App برنامه را باز کنید. در بخش Environment variables، با Add Variable نام و مقدار هر متغیر را وارد کنید، Done و سپس Save را بزنید. نام‌ها باید دقیقاً با کد پروژه یکسان باشند؛ مثلاً DATABASE_URL فقط وقتی کاربرد دارد که برنامهٔ شما آن را بخواند.

  1. برای MySQL یا MariaDB، ابزار Manage My Databases یا MySQL Databases را در cPanel باز کنید.
  2. دیتابیس و کاربر را بسازید و در Add User To Database کاربر را به دیتابیس متصل کنید و مجوزها را ذخیره کنید.
  3. نام کامل دیتابیس و کاربر، رمز و میزبانِ اعلام‌شدهٔ هاست را در تنظیم اتصال برنامه قرار دهید.
  4. اگر دادهٔ قبلی دارید، از آن خروجی بگیرید و به دیتابیس جدید وارد کنید؛ ساخت دیتابیس خالی، داده‌ها را منتقل نمی‌کند.

Debug را در محیط انتشار خاموش کنید، رمزها را خارج از Git نگه دارید و برای فرم‌های حساس از HTTPS و محافظت CSRF استفاده کنید. دستور flask run یا app.run() را برای روشن‌ماندن سایت در ترمینال اجرا نکنید؛ Passenger اجرای وب را مدیریت می‌کند.

۸. راه‌اندازی و دیدن نتیجه

  1. در Setup Python App برنامهٔ flaskapp را باز کنید و Restart را بزنید.
  2. دامنه را در مرورگر باز کنید. در نمونهٔ این مقاله، باید پیام Flask application is ready. دیده شود.
  3. اگر برنامهٔ خودتان را منتقل کرده‌اید، یک مسیر دیگر و بخشی که از دیتابیس استفاده می‌کند را نیز باز کنید.
  4. Terminal را ببندید و دامنه را دوباره باز کنید؛ سایت باید از طریق Passenger پاسخ دهد.

برای به‌روزرسانی بعدی، فایل‌های تغییرکرده را آپلود کنید، در صورت تغییر requirements.txt آن را در محیط مجازی نصب کنید و در پایان Restart بزنید.

رفع خطاهای اجرای Flask روی cPanel
نشانهکاری که انجام دهید
ModuleNotFoundError در محیط مجازی همین برنامه، نصب requirements.txt را انجام دهید.
خطای import نام فایل و شیء برنامه را با خط import در passenger_wsgi.py مقایسه کنید.
خطای اتصال دیتابیس نام کامل کاربر و دیتابیس، رمز، میزبان و مجوز کاربر را دوباره ببینید.
خطای 500 خطای اصلی را در لاگ Passenger یا برنامه پیدا و گزارش بدون رمز را برای پشتیبانی ارسال کنید.

سوالات متداول اولین انتشار Flask

برای این روش Gunicorn نصب کنم؟

خیر؛ در این آموزش Passenger برنامهٔ WSGI را اجرا می‌کند. نصب و اجرای جداگانهٔ Gunicorn جزو این مراحل نیست.

Entry point باید app باشد یا application؟

در این مثال application است؛ همان متغیر صادرشده از passenger_wsgi.py. شیء اصلی برنامه در app.py همچنان app نام دارد.

برای ساخت فایل لازم است از ترمینال استفاده کنم؟

خیر؛ با + File و Edit در File Manager فایل را بسازید و ذخیره کنید. در این آموزش فقط برای نصب پکیج‌ها از Terminal استفاده می‌کنیم.

منابع و ادامهٔ آموزش

  • مدیریت فایل‌ها در cPanel
  • تنظیم محیط Python App
  • راهنمای رسمی استقرار Flask

برای انتخاب پلن، راهنمای منابع هاست را بخوانید. پشتیبانی تخصصی نیز در انتشار برنامه همراه شماست.

قدم بعدی سایت شما

برای وردپرس، یک خانهٔ تازه.

منابع میزبانی را به اندازهٔ سایت خود انتخاب کنید یا برای انتقال و بررسی فنی، از تیم پشتیبانی راهنمایی بگیرید.

انتخاب هاست وردپرس ←گفت‌وگو با پشتیبانی ↗

در همین مقاله

فهرست مطالب
01پیش‌نیازها و نام‌های نمونه02ورود به cPanel03ساخت پوشه و آپلود04app.py و requirements.txt05ساخت Python App06Terminal و نصب Flask07فایل شروع برنامه08تنظیمات و دیتابیس09راه‌اندازی و رفع خطا10سوالات متداول11منابع آموزش
همهٔ آموزش‌ها ←
برای ادامهٔ مسیر

این راهنماها هم به کارتان می‌آیند.

مجلهٔ هاست وردپرس ←
آموزش اجرای جنگو روی هاست cPanel
جنگو۱۲ دقیقه

آموزش اجرای جنگو روی هاست cPanel

از ورود به cPanel تا نمایش سایت جنگو روی دامنه؛ آموزش آپلود پروژه، نصب پکیج‌ها، تنظیم دیتابیس، WSGI و فایل‌های static، مناسب اولین انتشار.

چگونه منابع هاست پایتون را انتخاب کنیم؟
انتخاب هاست۸ دقیقه

چگونه منابع هاست پایتون را انتخاب کنیم؟

منابع هاست را به زبان ساده بشناسید؛ انتخاب RAM، CPU، دیسک و محل سرور، همراه راهنمای ورود به cPanel و مشاهدهٔ مصرف پروژه.

آموزش راه‌اندازی ربات تلگرام روی هاست cPanel
تلگرام۱۲ دقیقه

آموزش راه‌اندازی ربات تلگرام روی هاست cPanel

ربات پایتونی خود را روی cPanel اجرا کنید؛ از ورود به پنل و آپلود فایل‌ها تا نصب کتابخانه‌ها، تنظیم توکن و اجرای مداوم با BotCTL.

فصل بعدی سایت شما از همین‌جا شروع می‌شود

آماده‌اید آنلاین‌تر شوید؟

انتخاب هاست وردپرس ←
هاست وردپرسمیزبانی برای فردای بزرگ‌تر
ثبت دامنهبهینه‌سازی سایتمجلهدربارهٔ ماتماس با ماقوانین خدماتحریم خصوصی
۰۲۱ ۷۱۰۵۷۲۰۹
ناحیهٔ کاربری پایتون‌هاستسرویس‌های من ↗دامنه‌های من ↗صورتحساب‌ها ↗ثبت تیکت ↗
تمام حقوق برای هاست وردپرس محفوظ است.پیگیری تیکت‌ها ↗