Point Phusion乘客到主目录

时间:2016-07-16 19:50:48

标签: ruby-on-rails apache ruby-on-rails-4 rubygems passenger

我正在coolmappdb.com的inmotion托管中部署Rails应用程序 - 当我到达那里时它说

Could not spawn process for application /home/username/public_html/coolmappdb.com: An error occurred while starting up the preloader.
<p>If that didn't work, then maybe the problem is that your gems are installed to <code>/home/username/.rvm/gems</code>, while at the same time you set <code>PassengerRuby</code> (Apache) or <code>passenger_ruby</code> (Nginx) to <code>/usr/local/rvm/gems/ruby-2.3.1/wrappers/ruby</code>. Because of the latter, RVM does not load gems from the home directory.</p>

错误消息很明确。据说我的Phusion Passenger指向错误的位置。如何让它在正确的位置工作?

更新

<VirtualHost 170.239.250.29:80>
  ServerName coolmappdb.com
  ServerAlias www.coolmappdb.com
  DocumentRoot /home/coolma7/public_html
  PassengerRuby /home/coolma7/.rvm/gems
  ServerAdmin webmaster@coolmappdb.com
  UseCanonicalName Off
  CustomLog /usr/local/apache/domlogs/coolmappdb.com combined
  <IfModule log_config_module>
    <IfModule logio_module>
      CustomLog /usr/local/apache/domlogs/coolmappdb.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
    </IfModule>
  </IfModule>
</VirtualHost>

1 个答案:

答案 0 :(得分:1)

我在http://coolmappdb.com/访问了该应用程序,在那里您找到了问题的原因。

正如我在对您的问题的第一条评论中所述,您在权限方面遇到问题,正如您在Phusion错误页面中所述:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.0-rc2/angular-material.min.css">

碰巧你有

*** ERROR ***: Cannot execute /home/coolma7/.rvm/gems: Permission denied (13)

并在“环境变量”部分中,您可以找到以下内容

Ruby interpreter command = /home/coolma7/.rvm/gems

您的Ruby解释器无法在/ usr / local等系统文件夹中运行任何内容。

要解决此问题,您必须在Apache的VirtualServer中设置以下

MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-2.3.1

这将使您的Ruby解释器在正确的位置搜索宝石,您需要拥有所有权限。

确保您的Apache作为具有在PassengerRuby "/home/coolma7/.rvm/gems" 内执行权限的用户运行,并在Apache的配置文件中正确设置/home/coolma7User

最后,你在Group拥有宝石的事实意味着你正在使用系统Ruby。不建议这样做。在安装Ruby版本时尽量坚持RVM,你会遇到更少的问题。见this。也许this post也可以帮到你。