2016-09-28 98 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 

是非常有用的。