繁体   English   中英

使用 NVM 的 Phusion 乘客和 Rails 应用程序找不到 JavaScript 运行时

[英]Phusion Passenger and Rails app using NVM Could not find a JavaScript runtime

我正在使用 Apache 和 Phusion Passenger 部署 Rails 应用程序我已经使用此堆栈部署了应用程序,但现在我使用 NVM 来安装节点,但是当我尝试加载站点时显示错误,查看日志显示此错误:

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

在这台服务器上,我没有从 OS 存储库安装 nodejs,查看乘客文档显示了一些关于 passer_nodejs 的信息,但这是来自 nginx。

这是我来自 apache 的 conf:

服务器名称 yourserver.com

# Tell Apache and Passenger where your app's 'public' directory is
DocumentRoot /var/www/myproj/public

PassengerRuby /home/appuser/.rvm/gems/ruby-2.3.0/wrappers/ruby
PassengerNodejs /home/appuser/.nvm/versions/node/v6.9.2/bin/node


# Relax Apache security settings
<Directory /var/www/myproj/public>
  Allow from all
  Options -MultiViews
  # Uncomment this if you're on Apache >= 2.4:
  Require all granted
</Directory>

并继续显示该错误

从 OS 存储库安装 nodejs 修复了该消息并且该应用程序可以工作,但这是因为它使用的是来自 OS 的节点版本,但我想使用 NVM 版本。

我有同样的问题,没有很好的解决方案,但我确实发现我可以通过创建一个符号链接来解决我的问题,例如:

ln -sf /home/deploy/.nvm/versions/node/v6.10.1/bin/node /usr/local/bin/node

如果在同一台服务器上有多个部署,则效果不佳,但我也找不到“正确”将 NVM 与Passenger/Rails 一起使用的方法。

另一种不需要写入 /usr/local/bin 的方法是使用https://www.phusionpassenger.com/library/config/apache/reference/#passengernodejsPassengerNodeJs指令。 如果服务器上有其他应用程序使用不同版本的节点,这也适用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM