Como ter vários sites usando o Apache2?

2

Eu gostaria de ter dois sites na minha máquina de desenvolvimento.

Eu editei / etc / hosts como segue

127.0.0.1       restaurant.local    www.restaurant.local
127.0.0.1   lrv4.local      www.lrv4.local

Eu criei dois novos arquivos /etc/apache2/sites-available/restaurant.local e ../lrv4.local

<VirtualHost restaurant.local:80>
    ServerName restaurant.local
    ServerAlias www.restaurant.local
    DocumentRoot /var/www/restaurant/public
    <Directory /var/www/restaurant/public/>
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    CustomLog /var/log/apache2/restaurant.local-access.log combined
</VirtualHost>

<VirtualHost lrv4.local:80>
    ServerName lrv4.local
    ServerAlias www.lrv4.local
    DocumentRoot /var/www/lrv4/public
    <Directory /var/www/lrv4/public/>
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    CustomLog /var/log/apache2/lrv4.local-access.log combined
</VirtualHost>

esses dois arquivos são relativamente semelhantes entre si.

Eu habilitei esses dois sites usando

sudo a2ensites restaurant.local
sudo a2ensites lrv4.local

Também verifico sites ativados usando

ls /etc/apache2/sites-enabled

Meu problema é quando eu tentei acessar lrv4.local, eu tenho a página pertence a restaurant.local, eu tentei verificar o arquivo de log que eu declarado no arquivo de configuração VirtualHost acima, todos os logs são registrados em / var / log /apache2/restaurant.local-access.log, nada está logado em /var/log/apache2/lrv4.local-access.log.

Por favor ajude.

    
por Artisan 29.08.2013 / 10:51

1 resposta

2

Editou minha resposta depois de algumas leituras nos documentos do Apache : tecnicamente, você pode declarar um domínio em VirtualHost , mas é desencorajado porque pode ter efeitos inesperados com o DNS . Eu suponho que aconteceu com sua configuração.

Na sua configuração do Apache, você usou a diretiva VirtualHost de uma forma possivelmente problemática. Você declarou o nome de domínio nele, e. g. %código%. Mas isso é desencorajado em favor de declarar o endereço IP dos servidores. Os nomes de domínio são definidos dentro do bloco <VirtualHost restaurant.local> , por exemplo, com VirtualHost ou ServerName .

Na diretiva ServerAlias , você pode indicar o endereço IP ao qual deseja hospedar seu host virtual, além da porta:

<VirtualHost 127.0.0.1:80>

Essa definição de host virtual só é aplicada se um cliente (na maioria dos casos, um navegador da Web) se conectar ao IP 127.0.0.1 na porta 80. Como 127.0.0.1 é (em quase todos os casos) o dispositivo de loopback interno, esse virtual host só pode ser alcançado a partir do próprio servidor. Claro, em servidores públicos, você preferiria usar um endereço IP público.

Se você deseja aplicar uma definição de host virtual a qualquer IP (que chega ao servidor no nível da rede), é possível usar o curinga VirtualHost , por exemplo:

<VirtualHost *:80>
    
por Henning Kockerbeck 29.08.2013 / 21:49