Настройка нескольких экземпляров Redmine с Apache / passenger - PullRequest
4 голосов
/ 25 октября 2011

Я работаю над настройкой пары экземпляров redmine на одном сервере под apache.

Первый работал нормально, и у меня настроен виртуальный хост со следующей конфигурацией 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 и нажму на тикете.сайт сначала загружается просто отлично, но затем я получаю 404 ошибки от Redmine по URL-адресу / ops.

Это в Ubuntu с PPA-сервером redmine, а также / var / www / ops и / var / www / redmineопределены символические ссылки на общий исходный код redmine с их собственными средами (production и ops).

Есть ли какие-либо подсказки о том, как я могу успешно сделать эти два живых рядом?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 октября 2011

это моя конфигурация apache, на которой размещены несколько экземпляров redmine (domain.tld / dev1, domain.tld / dev2, ...).

Вы также должны изменить: key и: session_path в config / initializers / session_store.rb каждой настройки redmine.

<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>
0 голосов
/ 05 августа 2013

пассажирские конфиги, основанные на путях. Пожалуйста, загляните в базу данных об ошибках Ubuntu: Несколько экземпляров redmine не работают с пассажиром

создать каталоги для каждой конфигурации:

/var/lib/redmine/*configname*

создать символическую ссылку из redmine dir:

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

В вашем виртуальном хосте Apache вы можете добавить альтернативный PassengerAppRoot:

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