Criando múltiplos Virtual Hosts no XAMPP

Publicidade

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:\Windows\System32\drivers\etc\hosts". 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:\xampp\apache\conf\extra\httpd-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:\xampp\htdocs"
ErrorLog "logs/default-error.log"
CustomLog "logs/default-access.log" common
<Directory "C:\xampp\htdocs">
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:\xampp\htdocs\dominio1.com.br"
ErrorLog "logs/dominio1-error.log"
CustomLog "logs/dominio1-access.log" common
<Directory "C:\xampp\htdocs\dominio1.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:\xampp\htdocs\dominio2.com.br"
ErrorLog "logs/dominio2-error.log"
CustomLog "logs/dominio2-access.log" common
<Directory "C:\xampp\htdocs\dominio2.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:\xampp\htdocs\dominio1.com.br" e "C:\xampp\htdocs\dominio2.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").

Apache
julho 28, 2016
5

Comentários

  1. 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.

    ResponderExcluir
  2. 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.

    ResponderExcluir
  3. 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.

    ResponderExcluir
  4. 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.

    ResponderExcluir
  5. 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

    ResponderExcluir

Postar um comentário

Menu

Pesquisar

Últimos Comentários

Fale Comigo