采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如图:setup成功,部署失败,提示bash: pm2: command not found尝试过 重新安装 npm i -g pm2 和 ~/.bashrc 中指定路径 仍然无法找到pm2
但是实际进入指定路径后发现pm2 -v 有效!
ubuntu:16.04 (没办法便宜的服务器只有16.04可选 不然就是windows了)
求我大scott 有空看看是什么毒....
这么鬼...
.bashrc 里面指定后,有 source ~/.bashrc 么
如果还不行,sudo npm uninstall pm2 -g 先卸载掉后,在服务器上不加 root 安装下试试
如果还不行,再试试这个办法:https://github.com/Unitech/pm2/issues/1112
我大scott v587 真的解决了 详情如下: 接上面pm2找不到的锅 1、先用 whereis pm2 定位到pm2 绝对路径 如:/root/.nvm/versions/node/v8.2.1/bin/pm2 然后将截取成 ~/.nvm/versions/node/v8.2.1/bin 添加到 vim /etc/environment 文件的末尾,前面记得加上 :隔开 ,source /etc/environment 2、现在运行 pm2 deploy ecosystem.json production 我报了一个找不到node的错,/usr/bin/env: ‘node’: No such file or directory ; 只需要运行 ln -s /usr/bin/nodejs /usr/bin/node 就ok了。 3、再次运行pm2 deploy ecosystem.json production 我的天 居然好了!
我大Scott V587
我也出现这个问题,感觉pm2登录主机的时候不会 source ~/.bashrc,手动加上也没有,改成这样了
"post-deploy" : "source ~/.nvm/nvm.sh && pm2 startOrRestart ecosystem.json --env production",
加上好了
Admin@DESKTOP-TUDOU01 MINGW64 /d/Users/Administrator/WebstormProjects/ice (master) $ pm2 deploy ecosystem.json production setup --> Deploying to production environment --> on host 49.235.68.139 ○ hook pre-setup ○ running setup ○ cloning https://gitee.com/wangyanjun0608_admin/ice.git ○ full fetch Cloning into '/www/wwwroot/ice/production/source'... ○ hook post-setup ○ setup complete --> Success Admin@DESKTOP-TUDOU01 MINGW64 /d/Users/Administrator/WebstormProjects/ice (master) $ pm2 deploy ecosystem.json production --> Deploying to production environment --> on host 49.235.68.139 ○ deploying origin/master ○ executing pre-deploy-local Deploy Done! ○ hook pre-deploy ○ fetching updates ○ full fetch Fetching origin ○ resetting HEAD to origin/master HEAD is now at 6fe1ce4 To delete an Ecosystem file. ○ executing post-deploy `export NODE_ENV=production && source ~/.nvm/nvm.sh && pm2 startOrRestart ecosystem.json --env production` [PM2][WARN] Applications Ice not running, starting... [PM2][ERROR] Error: No script path - aborting post-deploy hook failed Deploy failed Deploy failed with exit code: 1
看看我这是啥问题。
楼中楼好乱 这里重新回复下
1、先用 whereis pm2 定位到pm2 绝对路径 如:/root/.nvm/versions/node/v8.2.1/bin/pm2 然后将截取成 ~/.nvm/versions/node/v8.2.1/bin 添加到 vim /etc/environment 文件的末尾,前面记得加上 :隔开 ,然后运行 source /etc/environment 2、现在运行 pm2 deploy ecosystem.json production 我报了一个找不到node的错,/usr/bin/env: ‘node’: No such file or directory ; 只需要运行 ln -s /usr/bin/nodejs /usr/bin/node 就ok了。 3、再次运行pm2 deploy ecosystem.json production 我的天 居然好了!
同样的问题,stackoverflow上有兄弟提出这样的解决方法,我这解决了。
修改配置文件.bashrc,sudo vi ~/.bashrc,把下面这堆东西注掉。
# If not running interactively, don't do anything
#case $- in
# *i*) ;;
# *) return;;
#esac
厉害了,按照你的方法 跑通了 谢谢!
感觉这个锅是nvm出的,这个是第二种解决方法,在修复之前whereis node、nvm、npm、pm2 全部指向 .nvm 里面的位置,然后指令加sudo的指令都失效,sudo node -v也会提示找不到对象,
我尝试将nvm删除
rm -rf ~/.nvm
rm -rf ~/.npm
rm -rf ~/.brew
然后apt install nodejs 这个安装出来是老的 大概4.5左右的版本
然后apt install npm
然后安装npm install n 换成了n
再然后安装 n latest
运行node -v 返回8.2.1
npm install -g pm2
查看所有npm node pm2 的位置 返回 /usr/bin/xxx 或者 /usr/local/bin/ 这样的绝对路径
然后我删除了之前手动添加的pm2 和 nvm环境变量
随便修改了项目中东西,上传github 重新运行 pm2 deploy ecosystem.json production
一次成功 very nice
//补一个 ecosystem.js 配置 { "apps":[ { "name":"winter", "script":"server.js", // "instances":2, "env":{ "COMMON_VARIABLE": "true" }, "env_production":{ "NODE_ENV": "production" } }], "deploy":{ "production":{ "user":"root", "host": "106.15.88.8", "ref":"origin/master", "repo":"git@github.com:coffeeTeaMe/winter.git", "path":"/var/www/winter/production", "ssh_options":"StrictHostKeyChecking=no", //"post-deploy": "pm2 startOrRestart ecosystem.json --env production", "pre-deploy-local": "echo 'deploy done!'", "env": { "NODE_ENV": "production" } } }}
登录后可查看更多问答,登录/注册
Nuxt/Vue SSR + Koa2 跨栈开发微信公众号+小程序
983 11
1.3k 10
852 8
977 8
1.2k 7