2016-09-28 102 views
0

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

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

给我的印象是,一切都很好,而在现实中的命令

$ ps -ef | grep puma 

回报什么。 挖掘更多的记录到日志文件

$ 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' 

不知道如何解决这一问题,并与彪马设置前进?

回答

1

我放弃了AWS EC2实例,并使用Ubuntu 14.04实现重新创建它,并将其升级到16.04。 我严格遵循的指导这里找到

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

,并从同一博客相关链接。

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

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

唯一的区别形成的准则是,我不停的AWS RDS实例数据库。 虽然我在我的Mac上使用RBENV,但我在生产服务器上使用了RVM。 我使用Ubuntu的用户(如root)进行部署,因为我怀疑所有与权限有关的问题,但我不知道如何解决这些问题。

许多错误早期遇到的努力开始插槽正确彪马,使其与Nginx的工作,特别是没有重启后

cap production deploy 

均与产生secret,并把该值在此时,相应的文件。对我来说,它最好的写在/etc/environment文件中。

我也做了文件/etc/ssh/sshd_config的变化,以便通过ssh获得rootubuntu访问权限。在这个问题上这个链接

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

是非常有用的。