Passenger + Ruby / ExecJS没有找到NodeJS

时间:2018-01-17 15:46:57

标签: ruby-on-rails node.js ruby passenger execjs

我在服务器上使用capistrano部署了一个Ruby on Rails应用程序,使用ubuntu 16.04 + nginx + passenger5 + ruby​​ 2.5.0(通过rbenv)+ nodejs 9.4。由于某些未知原因,当我打开网站时,乘客返回错误: {{1}}

如上所述,我安装了nodejs,如果我尝试通过ruby console(irb)运行第一个ExecJS示例,它可以正常工作: {{1}}

如果我通过将“therubyracer”gem添加到Gemfile来更改javascript运行时项目正常工作。任何想法为什么ExecJS自动检测缺少NodeJS?

提前致谢。

1 个答案:

答案 0 :(得分:1)

由于某种原因,nginx / passenger无法找到合适的nodejs路径。我之前通过将其添加到我的nginx配置(/etc/nginx/nginx.conf)的顶部修复了此问题: end PATH;

检查:Rails/Passenger/Node.js: ExecJS "Could not find a JavaScript runtime"了解详情。

另外,确保执行nginx的用户(www-data?)能够运行节点。