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?), Может запустить узел.

Другие вопросы по тегам