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
.
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
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.
Tags virtualhost apache-2.2