使用apache / passenger设置多个redmine实例

时间:2011-10-25 16:02:59

标签: ruby-on-rails ruby apache passenger redmine

我正在使用apache在单个服务器上设置一对redmine实例。

第一个工作正常,我使用以下vhost配置为它设置了虚拟主机:

<VirtualHost *:80>                                                                                        
  ServerName tickets.domain.com                                                                      
  DocumentRoot /var/www/redmine                                                                           
  RailsEnv production                                                                                     
  RailsBaseURI /                                                                                          
  PassengerResolveSymlinksInDocumentRoot on                                                               
</VirtualHost>  

第二个我需要设置为主要默认站点的子目录:

Alias /ops/ "/var/www/ops/"                                                                           
<Directory "/var/www/ops/">                                                                           
    RailsEnv ops                                                                                      
    RailsBaseURI /ops                                                                                 
    PassengerResolveSymlinksInDocumentRoot on                                                         
</Directory> 

所以server / ops是第二个实例的url。

我遇到的麻烦是,当我重新启动apache时,无论你先命中哪个url似乎都“赢了”,它会打破网站的另一个实例。如果我点击/ ops url然后它加载很好,但去票。将导致我获得权限被拒绝错误,因为所有的URL都有/ ops(对于JS和其他文件)

如果我重启apache并点击门票。站点首先,它加载得很好但是我在/ ops url上从Redmine得到404错误。

这是在Ubuntu上使用redmine PPA,/ var / www / ops和/ var / www / redmine都是共享redmine源代码的符号链接,并且定义了自己的环境(生产和操作)。

关于如何让这两个人成功并肩生活的任何提示?

由于

2 个答案:

答案 0 :(得分:1)

这是我的apache配置托管多个redmine实例(domain.tld / dev1,domain.tld / dev2,...)。

您还必须在每个redmine设置的config / initializers / session_store.rb中更改:key和:session_path。

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
          Servername domain.tld
          ServerAdmin webmaster@domain.tld
          DefaultInitEnv RAILS_ENV production
          DefaultInitEnv GEM_PATH /var/lib/gems/1.8
          DocumentRoot /var/www/default-ssl
          <Directory /var/www/default-ssl>
            AuthType Basic
            AuthName "secure section"
            AuthUserFile /etc/apache2/htpasswd
            Require valid-user
            Options +FollowSymLinks +ExecCGI
            RewriteEngine On
            RewriteRule ^$ index.html [QSA]
            RewriteRule ^([^.]+)$ $1.html [QSA]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
            ErrorDocument 500 "Application error Rails application failed to start properly"
            AllowOverride None
            Order allow,deny
            allow from all
          </Directory>

          LogLevel warn
          ErrorLog /ssl_error.log
          CustomLog /ssl_access.log combined
          ServerSignature Off
          SSLEngine on
          SSLCertificateFile    /etc/ssl/certs/domain.tld.crt
          SSLCertificateKeyFile /etc/ssl/private/domain.tld.key
          SSLCACertificateFile  /etc/ssl/certs/domain.tld.ca

          <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
          </FilesMatch>
          BrowserMatch "MSIE [2-6]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
          BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

          Alias /dev1 /var/www/default-ssl/dev1/public
          <Directory /var/www/default-ssl/dev1/public>
            PassengerAppRoot /var/www/default-ssl/dev1
            RailsBaseURI /dev1
            Require user user1 user2
          </Directory>

          Alias /dev2 /var/www/default-ssl/dev2/public
          <Directory /var/www/default-ssl/dev2/public>
            PassengerAppRoot /var/www/default-ssl/dev2
            RailsBaseURI /dev2
            Require user user1
          </Directory>

          ...

        </VirtualHost>
        </IfModule>

答案 1 :(得分:0)

乘客distingues基于路径配置。请查看Ubuntu bug数据库: Multiple instance of redmine does not work with passenger

为每个配置创建目录:

/var/lib/redmine/*configname*

从redmine目录创建符号链接:

ln -s /usr/share/redmine /var/lib/redmine/*configname*/passenger

在您的apache虚拟主机中,您可以添加备用PassengerAppRoot:

PassengerAppRoot /var/lib/redmine/*configname*/passenger