Я сам размещаю своего бота на cPanel. Я помогу вам с хостингом вашего бота. Убедитесь, что ваш бот находится в домашнем каталоге с разрешениями 755 .
Вам понадобится стартовый скрипт и скрипт остановки. Создайте новый файл в cgi-bin вашего public_ html, и вы сможете запустить бота по адресу yourmaindomain.com/cgi-bin/startbot.py, учитывая, что вы называете стартовый скрипт startbot.py. Поместите следующий код в сценарий запуска:
#!/usr/bin/python3.6
import os, subprocess, signal
print("Content-Type: text/html\n\n")
counter = 0
p = subprocess.Popen(['ps', '-u', 'username'], stdout=subprocess.PIPE)
# must match your username --------^^^^^^^^
out, err = p.communicate()
for line in out.splitlines():
if 'heliobot.py'.encode('utf-8') in line:
# ^^^^^^^^^^^----- this has to match the filename of your bot script
counter += 1
print("Bot already running.")
if counter == 0:
subprocess.Popen("/home/username/heliobot.py")
# ^^^^^^^^-- be sure to update it to your username
print("Bot started!")
Для сценария остановки вы можете создать файл stopbot.py в том же бункере cgi, где вы сможете остановить бота на своем домене. com / cgi-bin / stopbot.py, поместите следующий код в скрипт:
!/usr/bin/python3.6
import os, subprocess, signal
print("Content-Type: text/html\n\n")
counter = 0
p = subprocess.Popen(['ps', '-u', 'username'], stdout=subprocess.PIPE)
# must match your username --------^^^^^^^^
out, err = p.communicate()
for line in out.splitlines():
if 'heliobot.py'.encode('utf-8') in line:
# ^^^^^^^--- this has to match the filename of your loop
counter += 1
pid = int(line.split(None, 1)[0])
print("Stopping bot.")
os.kill(pid, signal.SIGTERM)
if counter == 0:
print("Already stopped.")
Замените первую строку, это шебанг, на путь Python вашего хостинг-провайдера. Убедитесь, что используемые модули установлены, иначе попросите хост установить его для вас. Кроме того, убедитесь, что разрешения всех этих файлов 755, в противном случае вы получите внутренние ошибки сервера.
Не забудьте заменить те параметры, которые я выделил в сценариях. Именно так я размещаю своего бота на бесплатном хостинге cPanel с тех пор, как начал разработку. У меня никогда не было денег, чтобы получить VPS, так что это был лучший и, казалось бы, единственный вариант для меня. (Я не предпочитаю Heroku и другие хосты приложений по разным причинам). Надеюсь, что это поможет и решит вашу проблему! Если вам нужна помощь с чем-то еще, просто прокомментируйте это, и я постараюсь помочь вам. :)
С уважением,
Саян Бхаттачарья.