找不到JavaScript运行时.有关可用运行时的列表,请参阅https://github.com/sstephenson/execjs

kal*_*elc 6 ruby-on-rails passenger nginx node.js ruby-on-rails-4

我在Ubuntu服务器14.04 AWS实例中遇到了Rails 4.1.7,Phusion Passenger版本4.0.53,nginx/1.6.2的问题,但是使用rails服务器运行良好.

error.log中

App 2029 stdout:App 2029 stderr:sh:1:App 2029 stderr:env:not found App 2029 stderr:App 2029 stdout:[2014-11-12 16:12:26.1580 1979/7feff83f9700 Pool2/Implementation.cpp:287] :无法为application/home/ubuntu/apps/doger生成进程:启动预加载器时出错.错误ID:b7381860错误详细信息保存到:/tmp/passenger-error-SUjzpL.html来自应用程序的消息:找不到JavaScript运行时.有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs.(ExecJS :: RuntimeUnavailable)
/var/lib/gems/1.9.1/gems/execjs-2.2.2/lib/execjs/runtimes.rb:51:in ' /var/lib/gems/1.9.1/gems/ execjs-2.2.2/LIB/execjs.rb:4:在需要'/var/lib/gems/1.9.1/gems/uglifier-2.5.3/lib/uglifier.rb:3:in 需要' 的/ var/lib/gems/1.9.1/gems/bundler-1.7.6/lib/bundler/runtime.rb:76:在 每个' /var/lib/gems/1.9.1/gems/bundler-1.7.6/lib/中bundler/runtime.rb:72:在 每个' /var/lib/gems/1.9.1/gems/bundler-1.7.6/lib/bundler/runtime.rb:61:in require'/ home/ubuntu/apps/doger /配置/ application.rb中:7:在需要' /home/ubuntu/apps/doger/config/environment.rb:2:in 需要' config.ru:3:in instance_eval的" /usr/lib中/红宝石/ vendor_ruby /rack/builder.rb:55:in 新的'config.ru:1:in EVAL' /usr/share/passenger/helper-scripts/rack-preloader.rb:112:in ' 在/ usr /共享/乘客/帮手-scripts/rack-preloader.rb:29:in 'autodetect'
/var/lib/gems/1.9.1/gems/execjs-2.2.2/lib/execjs.rb:5:in

<top (required)>'
/var/lib/gems/1.9.1/gems/uglifier-2.5.3/lib/uglifier.rb:3:in
<top (required)>'
/var/lib/gems/1.9.1/gems/bundler-1.7.6/lib/bundler/runtime.rb:76:in

block (2 levels) in require'
/var/lib/gems/1.9.1/gems/bundler-1.7.6/lib/bundler/runtime.rb:72:in

block in require'
/var/lib/gems/1.9.1/gems/bundler-1.7.6/lib/bundler/runtime.rb:61:in

require'
/var/lib/gems/1.9.1/gems/bundler-1.7.6/lib/bundler.rb:133:in
<top (required)>' /home/ubuntu/apps/doger/config/environment.rb:2:in
<top (required)>' config.ru:3:inblock in <main>'
/usr/lib/ruby/vendor_ruby/rack/builder.rb:55:in

initialize'
config.ru:1:in
<main>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:112:in

preload_app'
/usr/share/passenger/helper-scripts/rack-preloader.rb:158:in

<module:PhusionPassenger>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:28:in

[2014-11-12 16:12:26.1691 1979/7feff60bf700 agents/HelperAgent/RequestHandler.h:2306]:[客户端20]无法结账会话,因为发生了产生错误.错误的标识符是b7381860.有关错误的详细信息,请参阅前面的日志.

的Gemfile

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.7'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
#gem 'therubyracer',  platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0',          group: :doc

# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring',        group: :development
Run Code Online (Sandbox Code Playgroud)

我已经安装了nodejs(v0.10.25)

drd*_*tor 14

每次我设置一个新的ubuntu/nginx/passenger/rails服务器时我都会遇到这个问题.试试这个

首次安装节点:

sudo apt-get install nodejs

然后将你的路径env添加到/etc/nginx/nginx.conf中,如下所示:

env PATH;

或者更具体(如果节点位于/ usr/bin/nodejs):

env PATH=/bin:/usr/bin;


小智 4

取消注释行 'therubyracer' gem,如下所示:

gem 'therubyracer',  platforms: :ruby
Run Code Online (Sandbox Code Playgroud)

并运行捆绑安装。我希望这能帮到您。