我正在使用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源代码的符号链接,并且定义了自己的环境(生产和操作)。
关于如何让这两个人成功并肩生活的任何提示?
由于
答案 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