Apache2: mod_wsgi e passageiro não se dão bem

2

Estou tentando executar uma instância do apache2 em um servidor Ubuntu com dois hosts virtuais. Um para redmine (passageiro de phusion) e outro para ReviewBoard (mod_wsgi). Eu não criei uma única configuração de servidor que permita que ambos estejam disponíveis, e há algumas coisas curiosas acontecendo.

Estou tentando obter www.domain.com/redmine e www.domain.com/reviews. Dependendo da ordem de inicialização dos dois sites, quando eu executo, sudo service apache2 restart depende de qual site eu posso acessar. Por exemplo, se eu tiver no apache2.conf:

 Include sites-enabled/reviews
 Include sites-enabled/redmine

www.domain.com/reviews será onde eu posso conseguir, mas se eles forem revertidos eu posso chegar a www.domain.com/redmine .

As configurações em sites habilitados se parecem com:

#sites-enabled/redmine
<VirtualHost *:80>
   ServerName redmine.ts.com

   # !!! Be sure to point DocumentRoot to 'public'!
   DocumentRoot /var/www/tracking

   <Directory /var/www/tracking/redmine>
      Order allow,deny
      Allow from all
      Options -MultiViews FollowSymLinks Indexes
      PassengerResolveSymlinksInDocumentRoot on
      RailsBaseURI /redmine
   </Directory>
</VirtualHost> 

#sites-enabled/reviews
<VirtualHost *:80>
        ServerName reviews.ts.com
        DocumentRoot /var/www/reviews/htdocs

        # Error handlers
        ErrorDocument 500 /errordocs/500.html

        WSGIPassAuthorization On
        WSGIScriptAlias "/reviews" "/var/www/reviews/htdocs/reviewboard.wsgi/reviews"

        <Directory /var/www/reviews/htdocs>
                AllowOverride All
                Options -Indexes FollowSymLinks
                Allow from all
        </Directory>

        # Alias static media requests to filesystem
        Alias /reviews/media "/var/www/reviews/htdocs/media"
        Alias /reviews/errordocs "/var/www/reviews/htdocs/errordocs"
        Alias /reviews/favicon.ico "/var/www/reviews/htdocs/media/rbcommons/images/favicon.png"
</VirtualHost>

Alguém sabe por que esses dois sites estão lidando com o outro dependente do qual é inicializado primeiro? Isso é muito frustrante

    
por Adaleigh Martin 29.07.2012 / 01:41

1 resposta

1

Você precisa ter um único host virtual com dois diretórios sob ele para atingir suas metas. Dois hosts virtuais vinculados a *: 80 com configurações diferentes do ServerName resultarão em dois hosts virtuais nomeados separados e as URLs não estarão localizadas sob o mesmo host.

Isso deve ser feito com a diretiva alias apontando para os diretórios que você já listou. Com base nos seus dois arquivos de configuração, ele deve ser semelhante ao seguinte.

<VirtualHost *:80>
   ServerName www.domain.com

   # Set a default root
   DocumentRoot /var/www/html

   # Define redmine subfolder and directory settings
   Alias /redmine /var/www/tracking/redmine
   <Directory /var/www/tracking/redmine>
      Order allow,deny
      Allow from all
      Options -MultiViews FollowSymLinks Indexes
      PassengerResolveSymlinksInDocumentRoot on
      RailsBaseURI /redmine
   </Directory>


   # These settings may need to be moved under the directory definiton
   WSGIPassAuthorization On

   WSGIScriptAlias "/reviews" "/var/www/reviews/htdocs/reviewboard.wsgi/reviews"
   <Directory /var/www/reviews/htdocs>
           AllowOverride All
            Options -Indexes FollowSymLinks
            Allow from all
   </Directory>
   Alias /reviews/media "/var/www/reviews/htdocs/media"
   Alias /reviews/errordocs "/var/www/reviews/htdocs/errordocs"
   Alias /reviews/favicon.ico "/var/www/reviews/htdocs/media/rbcommons/images/favicon.png"


</VirtualHost> 
    
por 29.07.2012 / 02:02