precisa de ajuda para configurar o host virtual no apache

1

Eu tenho o seguinte em meus sites habilitados:

#
#  Example.com (/etc/apache2/sites-available/adityaherlambang.com)
#
<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName  www.adityaherlambang.com
        ServerAlias adityaherlambang.com

        # Indexes + Directory Root.
        DirectoryIndex index.html
        DocumentRoot /var/www/adityaherlambang.com/htdocs/

        # CGI Directory
        ScriptAlias /cgi-bin/ /var/www/adityaherlambang.com/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>


        # Logfiles
        ErrorLog  /var/www/adityaherlambang.com/logs/error.log
        CustomLog /var/www/adityaherlambang.com/logs/access.log combined
</VirtualHost>

No meu virtual.conf eu tenho:

#  We're running multiple virtual hosts.
#

NameVirtualHost *:80

Eu estava apenas seguindo o tutorial aqui . Por que é que agora quando eu reiniciar meu servidor estou recebendo:

 * Restarting web server apache2                                                                                                                             [Sun Aug 14 04:35:30 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
[Sun Aug 14 04:35:30 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
 ... waiting .......[Sun Aug 14 04:35:42 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
[Sun Aug 14 04:35:42 2011] [warn] NameVirtualHost *:80 has no VirtualHosts

Meus hosts etc se parecem com:

#127.0.0.1 localhost
127.0.0.1.:80 adityaherlambang.com

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
    
por EquinoX 14.08.2011 / 06:37

2 respostas

3

VirtualHost não tem uma porta padrão; quando você diz <virtualHost *> você quer dizer todas portas em todos endereços. Você precisa usar *:80 .

    
por 14.08.2011 / 06:40
1

Ignacio estava correto, mas eu só queria expandir.

Se você der uma olhada nos documentos para NameVirtualHost . Você pode ver as chamadas de sintaxe para um IP e, em seguida, uma porta. Isso não significa que o Apache irá escutar na porta que você especificar aqui, ou mesmo se você usar apenas NameVirtualHost * não significa que ele escutará todas as portas. O Apache tem a diretiva Listen que define em qual porta o Apache atende.

Definindo NameVirtualHost *:80 O que você está fazendo é dizer em todas as solicitações que chegam na porta 80, executá-las por meio da hospedagem virtual baseada em nome. Portanto, se você tiver apenas NameVirtualHost * seu apache informando que não importa de onde vem a solicitação, execute-a por meio da hospedagem virtual baseada em nome. Se especificado um IP, então apenas esse IP estaria sujeito a virutalhost.

Portanto, a resposta fácil seria sempre que o seu NameVirtualHost correspondesse ao seu host virtual. Mas acho que entender porque é importante. Porque um dia você pode ter esse servidor louco, onde ele tem Listen 80 8080 81 e NameVirtualHost só é configurado em 8080 e 81 ?? Poderia acontecer.

    
por 14.08.2011 / 06:57