如何在运行自有网站的同一CPanel服务器上托管JS编写的Discord bot
可行性说明与操作方案
可行性确认
该操作完全可行。JS编写的Discord Bot依赖Node.js环境运行,和你服务器上现有网站的运行环境互不冲突,只要满足两个基础条件即可:
- 服务器可正常访问Discord官方API
- 服务器支持Node.js 16.9及以上版本(适配最新版Discord.js框架要求)
基于cPanel的具体实现步骤
- 第一步:上传Bot代码
登录cPanel后台,通过文件管理器或者FTP工具,将Bot完整项目文件上传到服务器非公开目录,不要放在public_html、wwwroot等web根目录下,避免敏感配置泄露,推荐在家目录下新建单独的discord_bot文件夹存放。 - 第二步:安装项目依赖
打开cPanel的「终端」功能,执行命令进入Bot项目目录:cd /home/你的cPanel用户名/discord_bot
再执行依赖安装命令:npm install
等待执行完成无报错即可。 - 第三步:临时启动测试
在终端执行启动命令(入口文件如果不是index.js请替换为对应文件名):node index.js
前往Discord确认Bot正常上线、功能可正常调用后,按Ctrl+C停止临时进程。 - 第四步:配置后台常驻运行
直接用终端启动的进程会在终端关闭后停止,需要配置进程守护,推荐两种cPanel适配的方案:- PM2进程管理(优先选择)
全局安装PM2工具:npm install pm2 -g
启动Bot进程并命名:pm2 start index.js --name discord_bot
保存当前进程列表:pm2 save
生成开机自启配置,按终端提示执行输出的命令即可:pm2 startup - Cron作业兜底方案
如果你的cPanel权限不足无法安装全局PM2,可以进入cPanel的「Cron作业」功能,添加一条每分钟执行的任务,命令填写:pgrep -f "node.*discord_bot" || cd /home/你的cPanel用户名/discord_bot && node index.js > /dev/null 2>&1
该命令会自动检测Bot进程是否存在,进程异常退出时自动重启。
- PM2进程管理(优先选择)
常见问题排查
如果启动失败可优先排查对应问题:
- Node版本过低:进入cPanel的「Node.js选择器」,切换项目使用的Node版本到16.9以上即可
- API连接超时:确认服务器可正常访问discord.com,可在Bot代码中配置代理适配网络环境
- Token无效:确认
.env配置文件已同步上传到服务器,Bot Token填写正确
内容的提问来源于stack exchange,提问作者Zenxya
相关产品推荐
相关产品推荐

