手动部署PayloadCMS至Azure Linux Web App(FTPS)遇dotenv缺失错误
问题分析与解决步骤
你遗漏了安装项目生产依赖的核心步骤,同时部署PayloadCMS到Azure Linux Web App还有几个关键环节需要完善,具体如下:
1. 安装生产环境依赖
你的dist/server.js依赖dotenv等第三方包,但你只上传了build和dist文件夹,服务器上没有这些依赖包,导致启动报错。解决方法:
- 通过Azure门户开启Web App的SSH连接(路径:开发工具 > SSH > 进入),进入
/home/site/wwwroot目录 - 执行命令安装生产依赖:
npm install --production - 依赖安装完成后,再执行
node dist/server.js启动应用
2. 配置环境变量(替代本地.env文件)
Azure Linux Web App不推荐直接上传.env文件,建议通过平台内置的应用设置管理敏感信息:
- 登录Azure门户,进入你的Web App,打开配置 > 应用设置
- 添加PayloadCMS所需的环境变量,比如
PAYLOAD_SECRET、数据库连接字符串DATABASE_URI等 - 保存设置后,Web App会自动重启,应用可通过
process.env.XXX读取这些变量,无需依赖本地.env文件
3. 设置自动启动命令
手动启动应用只是临时测试,配置Azure的启动命令可实现应用自动启动:
- 在配置 > 常规设置的"启动命令"栏,填入
node dist/server.js - 保存后,Web App会自动以该命令启动应用,重启或部署后也会自动运行
4. 对齐Node.js版本
确保本地开发使用的Node.js版本与Azure Web App上的版本一致,避免兼容性问题:
- 本地执行
node -v查看版本 - 在Azure门户配置 > 常规设置的"Node.js版本"选项中,选择匹配的版本
内容的提问来源于stack exchange,提问作者Qiuzman
相关产品推荐
相关产品推荐

