Host virtual Apache apontando para DocumentRoot errado

9

Eu opero um VPS no Digital Ocean executando o Ubuntu 12.04.3, com hosts virtuais. Consegui configurar as coisas seguindo este tutorial aqui: https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

No entanto, depois de alguns dias, naveguei para o meu domínio principal (noelforte.com) para verificar se tudo estava funcionando sem problemas, mas em vez de ver a página de destino que eu havia configurado temporariamente, fui recebida com uma listagem de diretórios.

Curiosamente, o subdomínio que eu havia configurado com o VHosts ainda estava apontado para o diretório certo, no entanto, meu domínio principal voltou a apontar para a raiz padrão do documento /var/www.

Excluir os arquivos de configuração /etc/apache2/sites-availablee configurar tudo de novo produziu os mesmos resultados: qualquer subdomínio apontará para o local certo, no entanto, o TLD raiz permanece travado apontando para /var/www.

O que pode causar uma situação como essa e por que, inicialmente, funcionou corretamente?

Noel Forte
fonte

Respostas:

12

Resolvi-o! A execução sudo apache2ctl -Sretornou o seguinte:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost media.noelforte.com (/etc/apache2/sites-enabled/media.noelforte.com:1)

Decidi desativar todos os sites, incluindo o padrão, e apenas ativar os sites necessários. Isso resolveu meu problema.

Se alguém pudesse explicar por que noelforte.comestava funcionando default-000como visto aqui:

port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)

isso ajudaria a esclarecer o que pode ter sido mal configurado. Obrigado!

Noel Forte
fonte
Eu tive o mesmo problema; para mim, foi porque o ServerName foi definido da mesma forma que o domínio no arquivo 000 padrão.
Hard-Boiled Wonderland
1

Crie um 000-defaultarquivo /etc/apache2/sites-availableou, se ele já existir, edite-o. É para onde o servidor da Web apontará se não houver um host virtual definido para o site que você está procurando.

Verifique se o arquivo também existe no /etc/apache2/sites-enabled. Caso contrário:ln -s /etc/apache2 sites-available/000-default /etc/apache2/sites-enabled/

Momo
fonte
Já existe um defaultarquivo no meu /etc/apache2/sites-availablediretório. Eu também tenho um host virtual para noelforte.comconfigurar e ativar, no entanto, ele não aponta para a raiz do documento definida no arquivo vhost. Por quê?
Noel Forte
0

Você precisa editar /etc/apache2/sites-enabled/yourdomain.conf e adicionar "ServerName" em "yourdomain". Ex:

<VirtualHost *:80>
    ServerName MyDomain
    DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>
sudip
fonte