Ubuntu Puma Upstart 脚本失败

Ubuntu Puma Upstart Script fails

我可以使用以下命令启动 Puma: $HOME/.rbenv/bin/rbenv exec bundle exec puma -C /home/deploy/tasks/shared/puma.rb --daemon -p 3000 该应用程序正在为所有页面提供服务。 我还没有安装 Nginx 或 Apache。 我正在尝试首先开发 Upstart Puma 脚本。 运行 命令:

$ sudo start puma-manager
puma-manager start/running

给我的印象是一切正常,而实际上命令

$ ps -ef | grep puma

returns 没什么。 深入挖掘日志文件

$ sudo tail -f /var/log/upstart/puma-_home_deploy_tasks_current.log

我收到这样的错误:

[2889] Puma starting in cluster mode...
[2889] * Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
[2889] * Min threads: 5, max threads: 5
[2889] * Environment: development
[2889] * Process workers: 2
[2889] * Preloading application
[2889] ! Unable to load application: LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile
bundler: failed to load command: puma (/home/deploy/tasks/shared/bundle/ruby/2.3.0/bin/puma)
LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile
  /home/deploy/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
  /home/deploy/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
  /home/deploy/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
  /home/deploy/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'

不知道如何解决这个问题并继续使用 Puma 设置?

我废弃了 AWS EC2 实例并使用 Ubuntu 14.04 实施重新创建它,我升级到 16.04。 我严格遵循此处的指导

http://codepany.com/blog/rails-5-puma-capistrano-nginx-jungle-upstart/

和来自同一博客的相关 link。

现在 Nginx 和 Puma 一起正常工作,我的应用程序在这里运行完美:

http://ec2-54-159-156-217.compute-1.amazonaws.com/

与指南的唯一区别是我为数据库保留了 AWS RDS 实例。 尽管我在 Mac 上使用 RBENV,但我在生产服务器中使用了 RVM。 我使用 ubuntu 用户(如 root)进行部署,因为我怀疑我遇到的所有问题都与权限有关,而且我不知道如何修复它们。

之前尝试在 socket 上正确启动 Puma 并使其与 Nginx 一起工作时遇到许多错误,尤其是在

之后没有重新启动
cap production deploy

与生成 secret 并将此值放入适当的文件有关。对我来说,将它写在 /etc/environment 文件中效果最好。

我还对文件 /etc/ssh/sshd_config 进行了更改,以便通过 ssh 获得 rootubuntu 访问权限。在这件事上link

https://forums.aws.amazon.com/thread.jspa?threadID=86876

非常有用。