ruby-on-rails - 使用 apache/passenger 设置多个 redmine 实例

标签 ruby-on-rails ruby apache passenger redmine

我正致力于在 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 中都有/ops(对于 JS 和其他文件)

如果我重新启动 apache 并命中罚单。首先是网站,它加载得很好,但随后我在/ops url 上收到来自 Redmine 的 404 错误。

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

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

谢谢

最佳答案

这是我的 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>

关于ruby-on-rails - 使用 apache/passenger 设置多个 redmine 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892171/

相关文章:

php - 不同版本的 PHP、Apache 和 MySQL 之间的字符编码问题

python - 将 Django 应用程序部署到 Apache 时出现问题

apache - 仅在第一个节点发生故障时才向第二个 tomcat 节点发送请求

ruby-on-rails - Controller Refinery CMS 中的 Ruby on Rails Helper

ruby-on-rails - before_create 未在 model.create 上调用

ruby-on-rails - 是否运行 rake Assets :precompile always return the same filenames?

Ruby:NoMethodError,但为什么呢?

ruby-on-rails - rails 3.2 + OSX : Cannot install rmagick gem

ruby-on-rails - rails : How can I ignore fixtures for single test

ruby-on-rails - number_with_ precision 未返回 :fr locale in ruby on rails 的正确结果