Passenger + Ruby/ExecJS не находит NodeJS
У меня есть приложение Ruby on Rails, развернутое с помощью capistrano на сервере с Ubuntu 16.04 + nginx + passenger5 + ruby 2.5.0 (через rbenv) + nodejs 9.4. По какой-то неизвестной причине при открытии сайта пассажир возвращает ошибку:
There was an error while trying to load the gem 'bootstrap'.
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes."
Как уже было сказано, у меня установлен nodejs, и если я пытаюсь запустить первый пример ExecJS через консоль ruby (irb), он работает правильно:
require "execjs"
ExecJS.eval "'red yellow blue'.split(' ')'"
Если я изменю среду выполнения javascript, добавив гем "therubyracer" в Gemfile, проект будет работать правильно. Есть идеи, почему в автоопределении ExecJS отсутствует NodeJS?
Заранее спасибо.
1 ответ
По какой-то причине nginx / passenger не может найти правильный путь nodejs. Я исправил это ранее, добавив его в начало моей конфигурации nginx ( /etc/nginx/nginx.conf):end PATH;
Проверьте: Rails / Passenger / Node.js: ExecJS "Не удалось найти среду выполнения JavaScript" для получения дополнительной информации.
Также убедитесь, что пользователь, в котором выполняется nginx (www-data?), Может запустить узел.