在 DigitalOcean 上部署 Strapi App 时出现 Pm2 错误

Pm2 error while deploying Strapi App on DigitalOcean

我一直在关注将 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)

谢谢

  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(用 pm2 启动检查 strapi 应用程序)

  2. pm2 开始ecosystem.config.js

对我来说,这是因为 cwd 已经是相对的,不喜欢我的路径结构。我试过 ~/my-app/home/me/my-app 都错了。它最终只是想要 my-app.