【问题标题】:setting up multiple redmine instance with apache/passenger使用 apache/passenger 设置多个 redmine 实例
【发布时间】:2011-12-15 02:01:20
【问题描述】:

我正在努力在 apache 下的单个服务器上设置一对 redmine 实例。

第一个运行良好,我使用以下虚拟主机配置为其设置了一个虚拟主机:

<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 错误。

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

关于如何让这两者成功并存的任何提示?

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    您还必须更改每个 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>
    

    【讨论】:

    • 谢谢,我想你回答了我的问题。基本上我需要源代码的不同目录来生活。我试图查看是否可以让两个实例在同一个目录下运行。我复制了源目录,一切运行良好。
    【解决方案2】:

    passenger 根据路径区分配置。请查看 Ubuntu 错误数据库: 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多