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

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

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

انتشار: 1404/09/03

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

آموزش راه‌اندازی ربات تلگرام روی هاست cPanel
استقرار ربات polling روی cPanel؛ آپلود فایل، محیط مجازی، توکن خصوصی و اجرای مداوم با BotCTL.
فهرست مطالب +
پیش‌نیازهای استقرارورود به cPanelآپلود فایل‌های رباتbot.py و requirements.txtتنظیم توکن در .envTerminal و نصب کتابخانه‌هااجرای اولیهٔ رباتاجرای مداوم با BotCTLلاگ و به‌روزرسانیرفع خطاهای استقرارسوالات متداولمنابع آموزش

در این راهنما

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

قبل از شروع؛ هدف این آموزش چیست؟

در این مقاله، ربات پایتونی را روی هاست cPanel مستقر می‌کنیم تا پس از بستن مرورگر و ترمینال هم پاسخ دهد. از ورود به پنل شروع می‌کنیم، فایل‌ها و کتابخانه‌ها را آماده می‌کنیم و در پایان، اجرای مداوم و لاگ ربات را با BotCTL مدیریت می‌کنیم.

یک سرویس فعال و سازگار با اجرای پایتون، دسترسی به Telegram Bot API، فایل‌های ربات و توکن BotFather لازم دارید. برای شناخت محیط اجرا، راهنمای منابع میزبانی را ببینید. اگر فایل ربات ندارید، نمونهٔ کوتاه همین آموزش را برای یادگیری مراحل استقرار استفاده کنید. این نمونه با python-telegram-bot==22.8 و Python 3.10 یا بالاتر کار می‌کند.

نام پوشهٔ نمونه telegrambot و نام فایل اصلی bot.py است. هر جا USERNAME آمده، نام کاربری cPanel خودتان را بنویسید. نام فایل و پوشهٔ پروژهٔ موجودتان ممکن است متفاوت باشد؛ فرمان‌ها را با همان نام‌ها هماهنگ کنید.

۱. ورود به cPanel

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

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

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

دو ابزار این راهنما File Manager و Terminal هستند. File Manager برای انتقال و ویرایش فایل‌هاست؛ Terminal فرمان‌های پایتون را روی هاست اجرا می‌کند.

در این راهنما ربات از polling استفاده می‌کند؛ یعنی برنامه پیام‌ها را از تلگرام می‌گیرد. به دامنه یا فایل passenger_wsgi.py نیاز نداریم. ربات را داخل Setup Python App به‌عنوان برنامهٔ وب اجرا نمی‌کنیم؛ اجرای آن را BotCTL مدیریت می‌کند.

۲. ساخت پوشه و آپلود فایل‌های ربات

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

فایل شروع باید مستقیم داخل پوشهٔ پروژه باشد؛ در مثال ما /home/USERNAME/telegrambot/bot.py. اگر ZIP یک پوشهٔ اضافی ساخته، فایل‌های داخل آن را با Move به telegrambot منتقل کنید.

۳. آماده کردن bot.py و requirements.txt

اگر کد ربات آماده است، همان فایل اصلی را نگه دارید و به مرحلهٔ بعد بروید. اگر نمونهٔ ساده می‌خواهید، داخل پوشهٔ telegrambot با + File فایل bot.py را بسازید؛ آن را با Edit باز کنید، کد زیر را قرار دهید و Save Changes را بزنید.

bot.py؛ نمونه برای استقرار روی هاست
import logging
import os
from pathlib import Path
from dotenv import load_dotenv
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    if update.effective_message:
        await update.effective_message.reply_text("سلام! ربات پایتونی شما آماده است.")

def main():
    load_dotenv(Path(__file__).resolve().with_name(".env"))
    token = os.environ["TELEGRAM_BOT_TOKEN"]
    logging.basicConfig(level=logging.WARNING)
    app = Application.builder().token(token).build()
    app.add_handler(CommandHandler("start", start))
    app.run_polling()

if __name__ == "__main__":
    main()
    

این ربات به دستور /start پاسخ می‌دهد. خط load_dotenv توکن را از فایل خصوصی .env کنار bot.py می‌خواند؛ در هر اجرای تازه نیز همان فایل خوانده می‌شود. برای ساخت قابلیت‌های ربات خودتان، کد پروژه را جایگزین نمونه کنید.

فایل requirements.txt فهرست کتابخانه‌های موردنیاز است. برای همین نمونه، آن را با + File بسازید، دو خط زیر را در Edit قرار دهید و ذخیره کنید:

requirements.txt برای نمونهٔ این مقاله
python-telegram-bot==22.8
python-dotenv
    

برای ربات موجود، requirements.txt خود پروژه را آپلود کنید. اگر به آن نیاز دارید، در محیط مجازیِ فعال پروژه روی رایانه، فرمان python -m pip freeze > requirements.txt فهرست پکیج‌های همان محیط را می‌سازد.

۴. ذخیرهٔ توکن در فایل خصوصی .env

توکن، کلید دسترسی برنامه به ربات شماست. اگر ربات را قبلاً در BotFather ساخته‌اید، توکن همان ربات را آماده کنید. در صورت نداشتن ربات، با /newbot نام و نام کاربری آن را ثبت و توکن را دریافت کنید.

  1. در File Manager روی Settings بزنید، Show Hidden Files (dotfiles) را فعال و Save کنید تا فایل‌های شروع‌شده با نقطه دیده شوند.
  2. داخل telegrambot، با + File فایلی به نام دقیق .env بسازید؛ نقطهٔ اول نام را حذف نکنید.
  3. فایل را با Edit باز کنید، خط زیر را قرار دهید و مقدار نمونه را با توکن واقعی خود جایگزین و ذخیره کنید.
.env؛ مقدار نمونه را با توکن واقعی عوض کنید
TELEGRAM_BOT_TOKEN=PASTE_YOUR_BOTFATHER_TOKEN_HERE
    

توکن را در Git، ZIP عمومی یا پیام پشتیبانی قرار ندهید. فایل .env باید در همین پوشهٔ خصوصی بیرون public_html بماند. اگر توکن منتشر شد، از BotFather توکن تازه بگیرید.

برای رباتی که کد آن آماده است، روش تنظیم توکن باید با کد همان پروژه هماهنگ باشد؛ ساخت .env به‌تنهایی کافی نیست. نمونهٔ بالا آن را با python-dotenv می‌خواند، اما پروژهٔ شما باید خواندن این فایل را پشتیبانی کند یا تنظیم ماندگار دیگری داشته باشد.

۵. باز کردن Terminal و نصب کتابخانه‌ها

از صفحهٔ اصلی cPanel، Terminal را جست‌وجو و باز کنید. در اولین ورود، پیام را بخوانید و I understand and want to proceed را بزنید. فرمان‌های زیر را یکی‌یکی وارد کنید و بعد از هر خط Enter بزنید:

محیط مجازی و نصب کتابخانه‌های ربات
cd /home/USERNAME/telegrambot
python3 --version
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -c "import sys; print(sys.executable)"
    
  1. در خط اول USERNAME را با نام کاربری هاست جایگزین کنید؛ این فرمان وارد پوشهٔ ربات می‌شود.
  2. خط دوم نسخهٔ Python را نشان می‌دهد. برای نمونهٔ این مقاله، شماره باید 3.10 یا بالاتر باشد؛ پیش از ساخت محیط، نسخه را ببینید.
  3. فرمان venv یک محیط مجازی به نام .venv می‌سازد؛ کتابخانه‌های ربات داخل همین محیط نصب می‌شوند.
  4. source محیط را فعال می‌کند. دو فرمان pip نصب پکیج‌ها را انجام می‌دهند؛ تا پایان نصب صبر کنید.
  5. خط آخر مسیر دقیق Python را نشان می‌دهد؛ آن را برای مرحلهٔ ثبت در BotCTL یادداشت کنید.

اگر python3 قدیمی است، ابتدا مسیر نسخهٔ جدیدِ نصب‌شده روی هاست را از پشتیبانی بگیرید و در فرمان ساخت venv به‌جای python3 قرار دهید. نمونهٔ مسیر در CloudLinux می‌تواند /opt/alt/python311/bin/python3.11 باشد؛ فقط وقتی از وجود آن در حساب خود مطمئن هستید از آن استفاده کنید.

اگر نصب با خطا تمام شد، هنوز ربات را اجرا نکنید. پیام خطا مشخص می‌کند نسخهٔ پایتون، پکیج یا فایل requirements.txt کدام بخش را باید اصلاح کنید.

۶. اجرای اولیه و دیدن پاسخ ربات

پس از آماده شدن bot.py، .env و کتابخانه‌ها، در Terminal فرمان‌های زیر را اجرا کنید. خط chmod دسترسی فایل توکن را به مالک حساب محدود می‌کند.

اجرای اولیه از پوشهٔ ربات
cd /home/USERNAME/telegrambot
chmod 600 .env
.venv/bin/python bot.py
    

اکنون ربات را در تلگرام باز کنید و /start بفرستید. در نمونهٔ این مقاله باید پیام «سلام! ربات پایتونی شما آماده است.» دریافت کنید. اگر پاسخی نیامد، پیام Terminal را بخوانید؛ جدول خطاهای پایین مقاله به شما کمک می‌کند.

برای پایان این اجرا Ctrl+C بزنید. اجرای اولیه را حتماً متوقف کنید و سپس به BotCTL بروید؛ هم‌زمان دو پردازش polling با یک توکن اجرا نکنید.

۷. ثبت ربات و اجرای مداوم با BotCTL

BotCTL ابزار مدیریت اجرا روی هاست ربات است. به آن می‌گوییم کدام Python، کدام فایل و کدام پوشه را اجرا کند. در همان Terminal، فرمان زیر را وارد کنید؛ تمام USERNAMEها را با نام حساب خود عوض کنید:

ثبت ربات با Python محیط مجازی
botctl add telegram '/home/USERNAME/telegrambot/.venv/bin/python /home/USERNAME/telegrambot/bot.py' --workdir /home/USERNAME/telegrambot
    

telegram نام ربات در BotCTL است؛ این نام با نام کاربری تلگرام فرق دارد. مسیر Python باید همان خروجی مرحلهٔ نصب باشد. مسیر آخرِ فرمان، پوشهٔ کاری برنامه را مشخص می‌کند. اگر نام فایل شما main.py است، به‌جای bot.py همان را بنویسید.

فرمان ثبت را فقط یک بار برای همین نام اجرا کنید. سپس ربات را روشن کنید و راه‌اندازی خودکار را فعال کنید:

اجرا، فعال‌کردن Autostart و دیدن وضعیت
botctl start telegram
botctl enable telegram
botctl status telegram
    

Start ربات را اجرا می‌کند. Enable راه‌اندازی خودکار را فعال می‌کند و Status وضعیت فعلی را نشان می‌دهد. باید وضعیت اجرا را ببینید؛ اگر برنامه فوراً متوقف شد، لاگ را در مرحلهٔ بعد بخوانید.

توکن نمونه از فایل .env خوانده می‌شود و فرمان BotCTL از مسیر کامل Python استفاده می‌کند؛ بنابراین اجرای بعدی به فعال‌بودن محیط مجازی یا متغیر موقت در نشست Terminal وابسته نیست.

۸. لاگ، به‌روزرسانی و پایان کار

برای دیدن پیام‌های آخر و خطاهای برنامه، این فرمان را اجرا کنید:

۱۰۰ خط آخر لاگ ربات
botctl logs telegram -n 100
    

وقتی ربات پاسخ داد و Status اجرای آن را نشان داد، Terminal و مرورگر را ببندید و دوباره در تلگرام /start بفرستید. ربات باید از اجرای BotCTL پاسخ دهد؛ این مرحله پایان استقرار اولیه است.

برای انتشار نسخهٔ جدید، فایل‌های تغییرکرده را در File Manager آپلود یا ویرایش کنید. اگر requirements.txt تغییر کرده، وارد پوشه شوید و .venv/bin/python -m pip install -r requirements.txt را اجرا کنید. سپس فرمان زیر را بزنید و پاسخ ربات را دوباره ببینید:

اجرای دوباره پس از به‌روزرسانی
botctl restart telegram
    

برای توقف، botctl stop telegram و برای غیرفعال‌کردن اجرای خودکار، botctl disable telegram را به کار ببرید. راهنمای همهٔ فرمان‌ها در آموزش BotCTL آمده است.

رفع خطاهای استقرار ربات روی cPanel

خطاهای نصب و اجرای ربات روی هاست
نشانهکاری که انجام دهید
No such file or directory نام کاربری، پوشهٔ telegrambot و محل واقعی bot.py را با File Manager مقایسه کنید.
نصب نشدن کتابخانه نسخهٔ Python و requirements.txt را ببینید؛ نمونهٔ این مقاله به Python 3.10+ نیاز دارد.
ModuleNotFoundError کتابخانه را با Python محیط مجازی نصب کنید و همان مسیر Python را به BotCTL بدهید.
KeyError: TELEGRAM_BOT_TOKEN .env باید کنار bot.py باشد و کد، آن را بخواند. نام متغیر را دقیق بنویسید.
InvalidToken یا Unauthorized توکن معتبر BotFather را در .env بدون فاصلهٔ اضافی قرار دهید و ربات را Restart کنید.
Conflict در getUpdates اجرای مستقیم در ترمینال یا اجرای اضافی با همان توکن را متوقف کنید؛ یک پردازش polling نگه دارید.
botctl: command not found از پشتیبانی بخواهید دسترسی BotCTL را برای سرویس ربات شما بررسی کند.
Timeout یا خطای شبکه لاگ ارتباط با Telegram API را بدون توکن برای پشتیبانی بفرستید.

سوالات متداول اجرای ربات روی هاست

برای ربات polling، دامنه و SSL لازم است؟

برای دریافت پیام در این روش، آدرس وبِ برنامه لازم نیست؛ ربات خودش به Telegram API وصل می‌شود. روش webhook متفاوت است و به یک نشانی HTTPS قابل دسترس برای دریافت پیام‌ها نیاز دارد.

چرا ربات را در Setup Python App اجرا نکردیم؟

نمونهٔ ما یک پردازش polling مداوم است، نه برنامهٔ وب WSGI. فایل شروع Passenger برای وب‌اپلیکیشن است؛ اجرای این ربات را با BotCTL مدیریت کردیم.

آیا با بستن cPanel ربات خاموش می‌شود؟

اجرای مستقیم در Terminal به نشست آن وابسته است. پس از ثبت و اجرای ربات با BotCTL، مدیریت پردازش به ابزار سپرده می‌شود؛ در پایان آموزش، پاسخ‌دهی بعد از بستن پنل را هم می‌سنجیم.

منابع و آموزش‌های مرتبط

  • آپلود و ویرایش فایل در cPanel
  • Terminal در cPanel
  • اجرای polling در python-telegram-bot
  • خواندن فایل .env با python-dotenv

راهنمای کامل BotCTL و انتخاب منابع هاست قدم‌های بعدی شما هستند. برای انتقال و راه‌اندازی پروژه نیز پشتیبانی تخصصی همراه شماست.

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

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

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

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

در همین مقاله

فهرست مطالب
01پیش‌نیازهای استقرار02ورود به cPanel03آپلود فایل‌های ربات04bot.py و requirements.txt05تنظیم توکن در .env06Terminal و نصب کتابخانه‌ها07اجرای اولیهٔ ربات08اجرای مداوم با BotCTL09لاگ و به‌روزرسانی10رفع خطاهای استقرار11سوالات متداول12منابع آموزش
همهٔ آموزش‌ها ←
برای ادامهٔ مسیر

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

مجلهٔ هاست وردپرس ←
آموزش استفاده از ابزار BotCTL
مدیریت ربات۸ دقیقه

آموزش استفاده از ابزار BotCTL

راهنمای مبتدی مدیریت ربات با BotCTL؛ از ورود به cPanel و بازکردن Terminal تا ثبت ربات، اجرا، خواندن لاگ و فعال‌کردن راه‌اندازی خودکار.

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

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

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

آموزش اجرای Flask روی هاست cPanel
فلسک۱۰ دقیقه

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

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

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

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

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