Ruby on rails 指向主目录的乘客点

Ruby on rails 指向主目录的乘客点,ruby-on-rails,apache,ruby-on-rails-4,rubygems,passenger,Ruby On Rails,Apache,Ruby On Rails 4,Rubygems,Passenger,我正在inmotion主机上部署一个Rails应用程序,位于coolmappdb.com——当我到达那里时,它说 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 tha

我正在inmotion主机上部署一个Rails应用程序,位于
coolmappdb.com
——当我到达那里时,它说

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>
错误信息很清楚。这是说我的乘客被指向了错误的位置。我怎样才能使它在正确的位置工作

更新:

<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>

服务器名coolmappdb.com
ServerAlias www.coolmappdb.com
DocumentRoot/home/coolma7/public\u html
PassengerRuby/home/coolma7/.rvm/gems
服务器管理员webmaster@coolmappdb.com
UseCononicalName关闭
CustomLog/usr/local/apache/domlogs/coolmappdb.com组合
CustomLog/usr/local/apache/domlogs/coolmappdb.com-bytes_log“%{%s}t%I。\n%{%s}t%O。”

我访问了应用程序,您在那里找到了问题的原因

正如我在对您的问题的第一次评论中所说,您的权限有问题,正如在you Phusion错误页面中所说:

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

Ruby interpreter command = /home/coolma7/.rvm/gems
在“环境变量”部分,您可以找到以下内容

MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-2.3.1
PassengerRuby "/home/coolma7/.rvm/gems"
您的Ruby解释器可能无法在/usr/local这样的系统文件夹中运行任何东西

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

MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-2.3.1
PassengerRuby "/home/coolma7/.rvm/gems"
这将使您的Ruby解释器在正确的位置搜索gems,在那里您拥有所需的所有权限

确保您的Apache是以有权在Apache的配置文件中正确设置
用户
的内部执行
/home/coolma7
的用户身份运行的


最后,您在
/usr/local/rvm/rubies/ruby-2.3.1
上有gems这一事实意味着您正在使用一个系统ruby。不建议这样做。在安装Ruby版本时,尽量坚持使用RVM,这样问题就会少一些。看见也许也会对你有所帮助。

你检查过目录的权限了吗?我曾经遇到过一个类似的问题,因为我创建了一个用户来运行我的ruby应用程序,但gems安装在一个目录中,该目录的权限没有正确设置,该用户无法读取。是的,代码在公共文件夹中您是否使用Apache或Nginx?然后在VirtualServer中,将
Passengeruby
设置为
/home/[username]/.rvm/gems
,其中[username]是您的用户名。这显然不是您的Apache配置,而是您在某处使用的一个示例。请发布您的配置,因为问题可能在于差异,我们永远不会看到它。在apache中,我已经在虚拟主机中设置了
PassengerRuby”/home/coolma7/.rvm/gems“
行。请检查我的最新问题