Phusion-Passenger

帶有Passenger Standalone 的Elastic Beanstalk:工作配置?

  • October 9, 2017

我正在嘗試將彈性豆莖應用程序從 Puma 遷移到 Phusion Passenger。但是,Passenger 在啟動時失敗並出現以下錯誤:

 /opt/elasticbeanstalk/support/conf/nginx_config.erb:48:in `block in write_nginx_config_file': undefined local variable or method `location_config_filename' for #<PhusionPassenger::Standalone::StartCommand:0x007f1eb35d06f0> (NameError)
   from /opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/erb.rb:863:in `eval'
   from /opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/erb.rb:863:in `result'
   from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/passenger-5.0.15/lib/phusion_passenger/standalone/start_command/nginx_engine.rb:120:in `block in write_nginx_config_file'

亞馬遜堆棧名稱是:

64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)

相同的應用程序使用Passenger 在本地和Heroku 上執行。(它也可以與 Puma 一起執行)。

是否有我錯過的必需配置文件或配置選項?

(我使用 eb_deployer 進行藍綠部署,而不是 AWS 控制台 - 所以它可能是某處的預設設置)。

我遇到了同樣的問題,經過一番探勘,我發現亞馬遜正在使用的乘客版本

64位亞馬遜Linux 2015.03 v2.0.0

是乘客4.0.59

如果您只是gem "passenger"在 gemfile 中沒有指定您的應用程序正在安裝的版本 v5.0 或更新版本,這與 EBS 設置衝突。他們在 4.0.59 和 5.0 之間所做的任何更改似乎都會擾亂部署,因為當我在我的 gemfile 中設置版本並重新部署時,它就可以工作了。

gem "passenger", '~> 4.0.59'

更新 gemfile 並推送程式碼後,請確保終止實例以獲取新實例。部署後檢查 eb-activity.log 的行

使用乘客 4.0.59

編輯:正如克里斯在下面指出的那樣,您不需要在 gem 文件中包含乘客,因為它已經包含在內。這將一起防止問題,無需擔心版本。

gem "passenger ", group: :development

引用自:https://serverfault.com/questions/715116