添加具有不同 Ruby 和 Passanger 版本的第二个虚拟主机

Adding second virtual host with different Ruby and Passanger version

我有主要的 Rails 应用程序在系统 Ruby 和 Passanger 上运行。以下虚拟主机工作正常:

<VirtualHost x.x.x.x:80>
  ServerName domain.com

  DocumentRoot /home/john/apps/main_app/public

  PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.29
    PassengerRuby /usr/bin/ruby

  <Directory /home/deploy/apps/main_app/public>
    PassengerEnabled On
    AllowOverride All
    Require all granted
    Options -MultiViews
  </Directory>
</VirtualHost>

现在我想为我的第二个应用程序添加第二个虚拟主机,该应用程序在不同 Ruby/Passanger 版本和不同域但在同一台机器上工作:

<VirtualHost x.x.x.x:80>
  ServerName domain2.com
  DocumentRoot /home/deploy/apps/app/public
  PassengerRoot /home/deploy/.rvm/gems/ruby-2.1.5@app/gems/passenger-4.0.59
  PassengerRuby /home/deploy/.rvm/rubies/ruby-2.1.5/bin/ruby

  <Directory /home/deploy/apps/app/public>
    PassengerEnabled On
    AllowOverride All
    Require all granted
    Options -MultiViews
  </Directory>
</VirtualHost>

启用第二个 VirtualHost 后,第一个(主应用程序)不再工作。在浏览器中我有 403 错误。第二个应用程序的情况相同。

来自主应用程序的错误日志:

[Sun Feb 15 13:29:08.596451 2015] [autoindex:error] [pid 53380] [client x.x.x.x] AH01276: Cannot serve directory /home/john/apps/main_app/public: 
No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) 
found, and server-generated directory index forbidden by Options directive, referer: x

禁用第二个应用程序后,第一个应用程序可以正常工作。我怎样才能同时运行这两个应用程序?

配置不正确。两个虚拟主机使用两个不同的 Passenger 版本,并加载两个不同的 Ruby 版本。

<VirtualHost x.x.x.x:80>
  PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.29
  PassengerRuby /usr/bin/ruby
</VirtualHost>

<VirtualHost x.x.x.x:80>
  PassengerRoot /home/deploy/.rvm/gems/ruby-2.1.5@app/gems/passenger-4.0.59
  PassengerRuby /home/deploy/.rvm/rubies/ruby-2.1.5/bin/ruby
</VirtualHost>