无法使用Nginx部署Passenger

时间:2015-08-18 11:30:14

标签: ruby-on-rails ruby nginx passenger

我一直关注this tutorial与Nginx一起部署Phusion Passenger,完成后,当我打开带有IP地址的URL(http://123.123.123.123

时,我仍然会收到错误

当我从nginx观看error.log时,我看到了:

http://pastie.org/pastes/10358955/text?key=s16vrhu2cofrian1hluwa

从那个日志中,我注意到了这一点:

  

警告:编译没有成功。要了解原因,请阅读此文件:App 15789 stderr:/tmp/passenger_native_support-1g8vwu3.log

所以这是该文件的输出:

http://pastie.org/pastes/10358951/text

这是什么问题?为什么我的rails应用程序无法运行?

2 个答案:

答案 0 :(得分:6)

实际上,问题不在于缺少Javascript运行时。虽然错误消息确实提到“无法找到JavaScript运行时”,但实际问题是您的PATH环境变量未正确设置。

该指标出现在以下两条看似不重要的错误消息中:

App 15789 stderr: sh: 1: 
App 15789 stderr: env: not found

env是一个常见的Unix命令,位于/ usr / bin中。 Node.js以及其他所有东西也位于/ usr / bin中。如果系统找不到env,那么这意味着您的PATH环境变量设置不正确。

未正确设置的原因很可能是因为Nginx nuked your environment variables。尝试将此添加到您的Nginx配置文件中:

# Don't nuke PATH; preserve original value.
env PATH;

答案 1 :(得分:0)

您需要安装javascript运行时。最简单的解决方案是在您的Gemfile中添加therubyracer。

# See https://github.com/rails/execjs#readme for more supported runtimes
gem 'therubyracer', platforms: :ruby

您似乎还需要根据日志安装curl或wget。