在多个环境中运行相同的Ruby应用程序

时间:2014-02-02 21:01:51

标签: ruby-on-rails apache2 passenger

我正在进行Ruby应用程序的本地开发,并希望设置生产和开发环境。我打算在本地使用生产,几乎就像一个临时服务器,以向我的客户端演示代码库的当前状态。但是,我想运行一个具有不同设置的实际开发环境供我个人使用。

我打算使用虚拟主机来区分这两个站点。无论我如何尝试更改Apache + Passenger中的设置,它们都在相同的环境中运行(无论是生产还是两者都开发)。如何为不同的虚拟主机在不同的环境中运行相同的代码库?

/etc/apache2/sites-available/app.conf

<VirtualHost *:80>
    ServerName app.local
    ServerAlias app.example.com
    DocumentRoot /code/sites/app/public

    RailsEnv production
    RackEnv production

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    LogLevel debug ssl:debug

    ErrorLog ${APACHE_LOG_DIR}/app.error.log
    CustomLog ${APACHE_LOG_DIR}/app.access.log combined
</VirtualHost>

/etc/apache2/sites-available/app-dev.conf

<VirtualHost *:80>
    ServerName app.dev.local
    DocumentRoot /code/sites/app_dev/public

    RailsEnv development
    RackEnv development

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    LogLevel debug ssl:debug

    ErrorLog ${APACHE_LOG_DIR}/app-dev.error.log
    CustomLog ${APACHE_LOG_DIR}/app-dev.access.log combined
</VirtualHost>

2 个答案:

答案 0 :(得分:3)

为每个应用vhost提供不同的PassengerAppGroupName,以便Phusion Passenger将它们视为不同的应用。

答案 1 :(得分:0)

这是一个更容易解决问题的方法。 https://ngrok.com/它不会像你设置的那样快速运行,但设置起来会非常容易。