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

web*_*ter 5 deployment config environment-variables digital-ocean strapi

我一直在关注将 Strapi 应用程序部署到数字海洋的官方文档,但是我在设置 pm2 时遇到了问题。它启动应用程序一秒钟,然后显示

status: errored
Run Code Online (Sandbox Code Playgroud)

没有 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
      },
    },
  ],
};
Run Code Online (Sandbox Code Playgroud)

然后我运行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)
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 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'
Run Code Online (Sandbox Code Playgroud)
  1. pm2 del 0(使用 pm2 start 检查 Strapi 应用程序)

  2. pm2启动ecosystem.config.js


okw*_*wme 5

对我来说这是因为cwd已经是相对的并且不喜欢我的路径是如何构建的。我试着~/my-app以及/home/me/my-app两者都是错误的。它最终只是想要my-app