我正致力于在 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/