我一直关注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应用程序无法运行?
答案 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。