数字海洋上部署Strapi应用程序时出现Pm2错误

7

我一直在遵循官方文档将Strapi应用部署到Digital Ocean上,但我在设置pm2时遇到了困难。它会启动应用程序一秒钟,然后显示

status: errored

没有script.js运行应用程序,但是当我cd到/home/myusername/appname/backend并运行npm start时,它可以正常工作,这让我相信我已经正确设置了ENV变量。

这是配置文件

module.exports = {
  apps: [
    {
      name: 'strapi',
      cwd: '/home/your-name/project/backend',
      script: 'npm',
      args: 'start',
      env: {
        NODE_ENV: 'production',
        DATABASE_HOST: 'localhost', // database endpoint
        DATABASE_PORT: '5432',
        DATABASE_NAME: 'strapi', // DB name
        DATABASE_USERNAME: 'your-name', // your username for psql
        DATABASE_PASSWORD: 'password', // your password for psql
      },
    },
  ],
};

当我运行pm2日志时,我看到:

2020-07-13T01:58:49: PM2 log: App [strapi:0] online
PM2        | 2020-07-13T01:58:49: PM2 error: Error: spawn node ENOENT
PM2        |     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
PM2        |     at onErrorNT (internal/child_process.js:415:16)
PM2        |     at process._tickCallback (internal/process/next_tick.js:63:19)

感谢您的信任。
2个回答

9
  1. 首先要替换:
    NODE_ENV: 'production',
    DATABASE_HOST: '127.0.0.1', // database endpoint
    DATABASE_PORT: '5432',
    DATABASE_NAME: 'THE DB NAME EX.SAMMY'
    DATABASE_USERNAME: 'THE DB USERNAME EX.SAMMY'
    DATABASE_PASSWORD: 'THE DB PASSWORD'
  1. 使用 pm2 del 0(检查 strapi 应用程序与 pm2 start)。

  2. 使用 pm2 start ecosystem.config.js。


谢谢。删除应用程序解决了问题。 - web master
需要一个 database_host 吗?我没有使用它,但是出现了这个错误。 - SeanMC
SeanMC,你的项目中不使用数据库吗? - michael.marid

8

对我来说,这是因为cwd已经是相对路径,并且不喜欢我的路径结构。 我尝试使用〜/my-app以及/home/me/my-app,但都是错误的。最终,它只想要my-app


1
那正是我的问题。不是格式问题,而是我的“cwd”路径无效。这是一个简单的错误,但一旦我纠正过来,我就可以在线上没有错误。谢谢! - SeanMC
1
部署到 EC2 时遇到了同样的问题。通过这个方法解决了,谢谢! - Andres9619

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接