在一个专用服务器上运行两个不同的Rails应用程序

AMI*_*ING 16 ruby ruby-on-rails passenger dedicated-server

我有一个具有以下配置的专用服务器

i3 - Dual Core - 3.06Ghz H/T
16GB RAM
500GB SATA2
Run Code Online (Sandbox Code Playgroud)

现在我想在一个专用服务器上执行两个不同的Rails应用程序.两个应用程序都不同,但它们使用的是通用数据库.

有可能吗?如果是的话 - 我该怎么做?使用Apache的Phusion Passenger是一个很好的方法吗?如果是 - 如何使用一个Phusion Passenger服务器配置两个应用程序?

Jon*_* M. 13

我将描述如何在一台Linux服务器上运行多个Rails应用程序,使用Apache,Phusion Passenger和某些版本的Ruby.你有很多选择,但这应该可以帮助你入门.其中许多细节来自安装脚本

首先,安装Phusion Passenger.

> gem install passenger
Run Code Online (Sandbox Code Playgroud)

其次,构建Apache 2 Passenger模块.您应该能够执行第一步中安装的以下脚本.

> passenger-install-apache2-module
Run Code Online (Sandbox Code Playgroud)

该脚本将编译Apache 2模块并解释如何配置Apache.如果缺少依赖项,脚本应提供有关如何安装它们的一些有用建议.

第三,编辑Apache配置文件.我必须添加这样的东西.(只需使用它作为参考,不要担心.rvm)在第二步中运行的脚本将为您提供可以复制和粘贴的内容.

LoadModule passenger_module /Users/me/.rvm/gems/ree/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /Users/me/.rvm/gems/ree/gems/passenger-3.0.9
PassengerRuby /Users/me/.rvm/wrappers/ree/ruby
Run Code Online (Sandbox Code Playgroud)

第四,将这样的内容添加到您要运行的每个应用程序的 Apache配置文件.

<VirtualHost *:80>
  ServerName app1.example.com
  DocumentRoot /somewhere/app1/public    # <-- be sure to point to 'public'!
  <Directory /somewhere/app1/public>
     AllowOverride all              # <-- relax Apache security settings
     Options -MultiViews            # <-- MultiViews must be turned off
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

如果您有两个Rails应用程序共享一个数据库,那么它们将在config/database.yml中具有类似的连接信息