Posso ter dois (ou mais) Apache VirtualHosts separados por subdiretórios?

1

Acho que esta é uma pergunta simples, mas deixe-me explicar melhor. Eu tenho o seguinte ambiente de desenvolvimento:

  • Ubuntu Server 12.04 LTS;
  • Apache 2.4 ;
  • PHP 5.5;

Tudo está funcionando bem, exceto a configuração do VirtualHost . Eu quero implantar dois aplicativos: Drupal e Wordpress. Cada aplicativo tem seu próprio diretório, por exemplo:

  • Drupal: / l / disk0 / drupal / public_html ;
  • Wordpress: / l / disco0 / wordpress / public_html ;

No site padrão, a configuração do VirtualHost aponta para / var / www como raiz do documento. Eu quero desabilitar esta configuração de site padrão e eu quero criar dois VirtualHosts, um para o Drupal e outro para o Wordpress.

No entanto, este é um ambiente de desenvolvimento e não há domínio aqui. Pesquisei muitos sites e encontrei muitos tutoriais, todos eles explicam como fazer isso com domínios, mas não com subdiretórios.

Depois de fazer a configuração, o URL para acessar meus aplicativos será:

 - http://example.com/wordpress;
 - http://example.com/drupal;

Eu já experimentei com este VirtualHost:

<VirtualHost *:80>
        ServerName example.com
        ServerAdmin [email protected]
        DocumentRoot /l/disk0/site/public_html

        <Directory />
                AllowOverride None
        </Directory>

        Alias /site /l/disk0/site/public_html
        <Directory /l/disk0/site/public_html>
                Options MultiViews Indexes Includes FollowSymLinks ExecCGI
                AllowOverride All
                Require all granted
                allow from all
        </Directory>

        RewriteEngine On
        LogLevel warn
        ErrorLog "/l/disk0/site/logs/apache/site/error.log"
        CustomLog "/l/disk0/site/logs/apache/site/access.log" combined
        SSLProxyEngine on
</VirtualHost>

Não funcionou.

    
por Ricardo Giaviti 17.03.2014 / 17:27

1 resposta

6

O VirtualHost é usado quando você deseja ter um nome de domínio separado para cada site. Quando o apache escolhe qual virtualhost usar, ele verifica a parte do nome do domínio do URL. Então, quando essa parte é a mesma, significa que você não pode dividir usando VirtualHosts.

Você tem duas opções:

  • Use nomes de host separados, por exemplo drupal.example.com e wordpress.example.com em vez de example.com/drupal e example.com/wordpress

  • Use outra maneira de separar os dois sites.

No primeiro caso, você manteria seu VirtualHost configs, mas mudaria o ServerName em cada.

No último caso, você removeria a configuração VirtualHost e faria algo como

    Alias /drupal /l/disk0/drupal/public_html
    <Directory /l/disk0/drupal/public_html>
            Options MultiViews Indexes Includes FollowSymLinks ExecCGI
            AllowOverride All
            Require all granted
            allow from all
    </Directory>

    Alias /wordpress /l/disk0/wordpress/public_html
    <Directory /l/disk0/wordpress/public_html>
            Options MultiViews Indexes Includes FollowSymLinks ExecCGI
            AllowOverride All
            Require all granted
            allow from all
    </Directory>
    
por 17.03.2014 / 17:35