Criando múltiplos Virtual Hosts no XAMPP

Ao tentar criar múltiplos virtual hosts no XAMPP eu sempre tinha o mesmo problema: qualquer um dos domínios que eu utilizasse, o Apache redirecionava apenas para a mesma pasta.

O que acontece é que qualquer erro que seja encontrado em um arquivo, o Apache utiliza a pasta do primeiro Virtual Host como padrão. Então para que isso não ocorra, siga este passo-a-passo:

1 – Edite seu arquivos de hosts, para que ao acessar o domínio o navegador seja redirecionado para seu endereço IP. Este arquivo poderá ser encontrado no endereço “C:WindowsSystem32driversetchosts”. siga o exemplo abaixo:

[sourcecode language=”plain”]
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

127.0.0.1 dominio1.com.br
127.0.0.1 www.dominio1.com.br
127.0.0.1 dominio2.com.br
127.0.0.1 www.dominio2.com.br
[/sourcecode]

Agora, é necessário modificar o arquivo de configurações do XAMPP que estará na pasta C:xamppapacheconfextrahttpd-vhosts.conf

Siga o exemplo abaixo:

[sourcecode language=”plain”]
# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn’t need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option ‘-S’ to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#

NameVirtualHost 127.0.0.1:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:80>
ServerName default
DocumentRoot "C:xampphtdocs"
ErrorLog "logs/default-error.log"
CustomLog "logs/default-access.log" common
<Directory "C:xampphtdocs">
DirectoryIndex index.php index.html index.htm
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName dominio1.com.br
ServerAlias www.dominio1.com.br
DocumentRoot "C:xampphtdocsdominio1.com.br"
ErrorLog "logs/dominio1-error.log"
CustomLog "logs/dominio1-access.log" common
<Directory "C:xampphtdocsdominio1.com.br">
DirectoryIndex index.php index.html index.htm
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName dominio2.com.br
ServerAlias www.dominio2.com.br
DocumentRoot "C:xampphtdocsdominio2.com.br"
ErrorLog "logs/dominio2-error.log"
CustomLog "logs/dominio2-access.log" common
<Directory "C:xampphtdocsdominio2.com.br">
DirectoryIndex index.php index.html index.htm
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
[/sourcecode]

3 – Crie as pastas “C:xampphtdocsdominio1.com.br” e “C:xampphtdocsdominio2.com.br” – Dentro delas ficarão os arquivos de cada um de seus sites.

4 – Inicie o Apache.

Observação 01: Este arquivo foi escrito levando em consideração os diretórios padrão de instalação do Windows (c:windows) e do XAMPP (C:xampp). No Linux ubunto, o arquivo de configuração do apache 2 fica localizado no endereço “/etc/apache2/sites-available/000-default.conf”

Observação 02: Nunca se esqueça de adicionar os comandos NameVirtualHost e a sub-tag Directory, estes erros são um dos maiores motivos para criar o problema do único redirecionamento.

Observação 03: Verifique a direção das barras, isso pode causar o mesmo erro citado acima, siga o exemplo.

Observação 04: Se você utilizar um proxy para acessar a internet, não esqueça de adicionar os domínios que você incluiu no arquivo de hosts na lista de exceções (“Não usar servidor de proxy para endereços iniciados por”).

5 comentários em “Criando múltiplos Virtual Hosts no XAMPP”

  1. ativa a conta administrador do seu computador e faz por lá que da certo

    poe o seguinte comando no powerShell

    net user administrador /active:yes

  2. Boa Noite, Vinício! Eu também utilizo o Windows 10 e consigo realizar modificações. Você não conseguirá editar o arquivo e salvar, mas você pode salvar as modificações como um arquivo com nome diferente e depois utilizá-lo para sobrescrever o arquivo original.

  3. Vinicio Coelho

    Estou utilizando o Windows 10 e ele não permite que eu altere o arquivo hosts. Vc tem idéia como eu faço pra criar permissão no windows pra alterar o arquivo?
    Obrigado.

  4. Isso talvez seja em decorrência de uma concorrência de portas HTTP. Você pode ter instalado com um NPM um servidor Web que passou a utilizar a porta 80. Jogando o servidor apache para um outra porta que não tem uma configuração definida no arquivo do Virtual Host.

  5. Jose Paulo

    Po, muito bom! Eu tava com um problema pois, após tentar atualizar o yarn.lock com o NPM, por algum motivo, o localhost padrão do Xampp parou de chamar a pasta htdocs e estava chamando o meu primeiro Virtualhost configurado. Se eu tivesse um index.php no htdocs ele não era chamado, abria direto no primeiro Virtualhost. Ao configurar o htdocs como localhost default, resolveu meu problema. Sabe dizer se isso tem a ver com as variáveis de ambiente do Windows? De repente alguma instalação utilizando o NPM causou isso? Abraços.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima