如何将HTML/CSS/JS/Node/Express应用部署到GoDaddy cPanel?
GoDaddy cPanel 部署自有Node.js/Express Web应用操作步骤
所有WordPress托管相关的推广弹窗、一键安装选项全部直接忽略即可,不需要安装任何WordPress相关组件,按以下步骤操作即可部署你自己开发的HTML/CSS/JS+Node/Express应用:
部署前本地准备
- 本地先跑通完整项目,执行
npm install后通过npm start启动无报错,所有功能验证正常 - 修改Express服务启动端口配置,禁止硬编码固定端口,统一写成
const PORT = process.env.PORT || 3000,cPanel会自动给应用分配生产环境可用端口,硬编码会导致启动失败 - 打包项目文件:将项目根目录下的所有代码文件打包为zip压缩包,排除
node_modules文件夹、本地的.env文件,注意压缩包解压后要直接看到package.json、项目入口文件(通常是app.js/server.js/index.js),不要额外套一层项目名的外层文件夹 - 提前整理好项目运行需要的所有环境变量,比如数据库连接地址、自定义密钥、第三方接口配置等,后续需要在服务器上单独配置
cPanel应用实例创建
- 用你拿到的cPanel账号密码登录面板,所有WordPress相关的推广、引导安装提示全部跳过,不需要点击
- 在面板顶部搜索框直接搜「Node.js」,找到Setup Node.js App功能入口点击进入(也可以在「软件」分类栏里找到这个选项)
- 进入页面后点击「Create Application」创建新的应用实例,按要求填写配置项:
- Node.js版本:选择和你本地开发环境大版本一致的版本,比如本地用18.x就选平台提供的18.x最高可用小版本,不要跨大版本选择避免依赖兼容问题
- 应用模式:选择Production(生产模式)
- 应用根目录:填写项目代码在服务器上的存放路径,比如要存放在
public_html下的myapp文件夹就填myapp,不建议直接把项目放在public_html根目录除非你要让根域名直接指向该Node服务 - 应用URL:选择你已经购买解析好的目标域名,如果要把应用挂在子路径下就填写对应的子路径,根域名直接访问则留空子路径
- 应用启动文件:填写你项目的入口文件名,和本地
package.json里start脚本对应的入口保持一致
- 配置填完后点击「Create」完成空应用实例创建,系统会自动生成对应的运行环境和重启、停止、日志查看按钮
上传项目代码
- 回到cPanel主面板,找到「文件管理器」功能点击进入
- 导航到你上一步配置的应用根目录对应的文件夹,比如之前填的
myapp就进入public_html/myapp路径 - 点击文件管理器顶部的「上传」按钮,把本地打包好的项目zip压缩包上传到当前目录,上传完成后右键压缩包选择「提取」,将所有文件解压到当前目录,确认解压后
package.json直接在当前目录层级,不存在嵌套文件夹 - 在当前目录新建名为
.env的隐藏文件,把你之前整理好的所有环境变量粘贴进去保存,不要把带敏感信息的本地.env直接打包上传
安装依赖并启动服务
- 回到Setup Node.js App页面,找到你刚创建的应用实例,点击旁边的铅笔编辑图标
- 下拉页面找到「Run NPM Install」按钮点击,系统会自动根据你上传的
package.json安装所有生产依赖,等待执行完成、无报错提示后再进行下一步 - 找到「Package.json settings」区块,确认Start script对应的启动命令和你本地的启动命令一致,通常是
node app.js或者npm start,不对的话手动修改 - 所有配置确认无误后,点击页面最下方的「Save」保存配置,再点击「Restart」按钮重启应用
- 等应用状态显示为
Running后,直接在浏览器访问你之前配置的应用URL,即可正常访问你部署的Web应用
常见问题排查
- 访问URL显示404:先检查应用根目录、应用URL的路径配置是否匹配,确认代码解压的位置和你填写的应用根目录完全一致,重启应用后重试
- 应用启动失败:点击应用实例旁的「View Log」按钮查看运行日志,常见原因包括Node版本不匹配、依赖安装不全、环境变量配置错误、端口硬编码,对应修改即可
- 静态资源(CSS/JS/图片)加载失败:检查Express框架里的静态资源配置,确认
express.static指向的静态资源文件夹在服务器上路径正确、文件完整 - 后续更新代码:只需要通过文件管理器上传覆盖修改后的代码文件,回到Node.js应用管理页点击「Restart」即可生效,不需要重新创建应用实例
内容的提问来源于stack exchange,提问作者Muhammad Ahmad
相关产品推荐
相关产品推荐

