Я пытаюсь перенести приложение эластичного бобового стебля с 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'
Имя стека Amazon:
64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)
Одно и то же приложение работает локально и на Heroku с использованием Passenger. (Он также работает нормально с Puma).
Есть ли требуемый файл конфигурации или параметр конфигурации, который я пропустил?
(Я использую eb_deployer для сине-зеленого развертывания, а не консоль AWS - так что это может быть где-то по умолчанию).
У меня была такая же проблема, и после некоторых копаний я обнаружил, что версия пассажира Amazon использовалась на
64-разрядная версия Amazon Linux 2015.03 v2.0.0
пассажир 4.0.59.
Если у вас просто есть gem "passenger"
в вашем гем-файле без указания версии, которую ваше приложение устанавливает v5.0 или новее, что конфликтует с настройкой EBS. Какие бы изменения они ни внесли между 4.0.59 и 5.0, похоже, мешают развертыванию, потому что, когда я установил версию в своем гем-файле и повторно развернул, она сработала.
gem "passenger", '~> 4.0.59'
После того, как вы обновите свой гем-файл и отправите код, убедитесь, что вы завершили экземпляр, чтобы получить новый. После развертывания проверьте eb-activity.log на наличие строки
Использование пассажира 4.0.59
РЕДАКТИРОВАТЬ: Как указал Крис ниже, вам не нужно включать пассажира в свой файл драгоценного камня, поскольку он уже включен. Это предотвратит проблему в целом, не нужно беспокоиться о версиях.
gem "passenger ", group: :development