Eu não posso ter meus virtualhosts funcionando corretamente no Apache

1

Embora eu saiba que este tópico já foi discutido em alguns outros tópicos onde é explicado como configurar o Virtualhosts no Apache. A questão é depois de procurar por possíveis respostas para o meu problema aqui, pesquisando no Google e lendo a documentação oficial do Apache não posso ter meu problema resolvido.

Primeiramente, eu tive uma instalação do WordPress rodando no Apache 2.4 instalado no CentOS 7 e configurei o seguinte Virtualhost:

<VirtualHost *:80>

ServerName subdomain1.domain.com
ServerAlias www.subdomain1.domain.com
DocumentRoot /some/path/to/wordpress

<Directory "/some/path/to/wordpress">
    DirectoryIndex index.php
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/subdomain1-error.log"
CustomLog "logs/subdomain1-access.log" combined      
LogLevel warn

</VirtualHost>

Funcionou bem, mas decidi adicionar uma instalação do Moodle (porque o servidor não tem muito tráfego) e, se eu navegar no Chrome subdominio1.dominio.com ou subdominio2.dominio.com, não importa , O Chrome sempre vai para subdominio2.dominio.com (site Moodle).

Eu tentei no Chrome e no Firefox com os mesmos resultados. O moodle Virtualhost é:

<VirtualHost *:80>

ServerName subdomain2.domain.com
ServerAlias www.subdomain2.domain.com
DocumentRoot /some/path/to/moodle

<Directory "/some/path/to/moodle">
    DirectoryIndex index.php
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

<Files ".ht*">
   Require all denied
</Files>

ErrorLog "logs/subdomain2-error.log"
CustomLog "logs/subdomain2-access.log" combined
LogLevel warn

</VirtualHost>

Além disso, o arquivo de configuração do Apache httpd.conf inclui esses VirtualHosts usando a diretiva: IncludeOptional conf.d / *. conf

O arquivo /etc/hosts é:

127.0.0.1   localhost 

134.122.191.221 subdomain1.domain.com

134.122.191.221 subdomain2.domain.com

Não consigo ver nenhum erro óbvio em meus arquivos de configuração do Apache Virtualhosts, por isso gostaria de saber se alguém poderia me dar uma dica sobre o que está errado e qualquer possível erro.

Muito obrigado.

    
por jocag 17.02.2016 / 11:40

1 resposta

3

Você está tentando configurar o Host virtual baseado em nome e perder um configuração importante:

NameVirtualHost *:80

Então, adicione a linha acima em seu httpd.conf e reinicie o apache / httpd, e isso deve resolver o problema.

N.B. De acordo com a documentação do apache 2.4 , esta diretiva está obsoleta e não é mais necessário .

Prior to 2.3.11, NameVirtualHost was required to instruct the server that a particular IP address and port combination was usable as a name-based virtual host. In 2.3.11 and later, any time an IP address and port combination is used in multiple virtual hosts, name-based virtual hosting is automatically enabled for that address.

Mas ainda estou para descobrir porque funciona com a diretiva acima.

    
por 17.02.2016 / 11:56