Host virtual Apache2 não funciona

Host virtual Apache2 não funciona

Eu uso o Debian 7 e instalei um host virtual com endereço sub.domain.com seguindo este tutorial:http://www.debian-administration.org/articles/412

Eu ativei, reiniciei o PC, mas o subdomínio ainda abre /var/www

Aqui está o conteúdo do arquivo chamado "sub.domain.com", localizado em /etc/apache2/sites-available/ :

<VirtualHost *>
    ServerName sub.domain.com
    DocumentRoot /usr/share/destfolder
    ServerAdmin [email protected]
    ErrorLog /var/log/apache2/sub.domain.com-error_log
    CustomLog /var/log/apache2/sub.domain.com-access_log common
</VirtualHost>

A propósito, quando recarrego a configuração do Apache, recebo: NameVirtualHost *:80 has no VirtualHosts

Alguma sugestão?

Responder1

Vincular apenas o tutorial não é informação suficiente, melhor ainda se você postar seu arquivo de configuração. O que você encontra /var/wwwao abrir seu endereço de host virtual pode ter mais causas.

O arquivo de configuração do Apache é construído de forma que, sem contexto, as diretivas sejam aplicadas globalmente. Caso contrário, aplicam-se apenas dentro do contexto. Os virtualhosts são feitos da mesma forma que defaultou *virtualhost está definido como padrão. Se não houver, o primeiro host virtual encontrado durante a análise da configuração será considerado padrão.

Agora, finalmente, para a possível resposta:

1) Em seu host virtual você não definiu a diretiva DocumentRoot e o DocumentRoot global (presumivelmente padrão) está apontando para o arquivo /var/www.

2) Seu host virtual não está funcionando da maneira esperada. Isso às vezes acontece quando você comete um erro ao nomear. Com LogLevel debughabilite o log de depuração e observe o que acontece e qual host virtual é chamado quando você abre o endereço desejado. Os arquivos de log no Debian estão localizados em (não tenho 100% de certeza) /var/log/apache2/.

Publique seus arquivos de configuração e mensagens de depuração, você aumenta muito a chance de sugestões úteis.

Atualizar: Bem, parece que você ativou a hospedagem virtual baseada em nome. Basicamente, sua configuração parece razoável. Na <VirtualHost ...>cláusula, você deve especificar a porta de destino como <VirtualHost *:443>e assim.

As diretivas DocumentRoote ServerNameestão aqui, está tudo bem. Provavelmente o seu host virtual não é invocado quando você solicita a página.

Isso pode ocorrer porque o Apache não sabe sub.domain.compara qual IP ele aponta. Você tem sub.domian.comno DNS ou, pelo menos, no arquivo hosts?

Mais sobre hosts virtuais baseados em nomes:http://httpd.apache.org/docs/2.2/vhosts/name-based.html

informação relacionada