Como configurar o host virtual do XAMPP no Windows 10

O termo Virtual Host refere-se à prática de executar mais de um site (como exemplo1.com e exemplo2.com) em uma única máquina. Um host virtual pode ser “baseado em IP”, o que significa que você tem um endereço IP diferente para cada site, ou “baseado em nome”, o que significa que você tem vários nomes em execução em cada endereço IP. O fato de eles serem executados no mesmo servidor físico é invisível para o usuário final.

O Apache foi um dos primeiros servidores a oferecer suporte a hosts virtuais baseados em IP. O Apache versão 1.1 e posteriores suportam hosts virtuais (vhosts) baseados em IP e em nomes. A última variante de um host virtual às vezes também é chamada de host virtual baseado em host ou não IP.

Virtual Host Configuration on XAMPP

xampp 2
XAMPP Control Panel
  1. Abra o arquivo de configuração do Apache Virtual Hosts no diretório de instalação do XAMPP (por exemplo) em “C:xamppapacheconfextrahttpd-vhosts.conf
  2. Adicione o seguinte código no final do arquivo
<VirtualHost *:80>
    ServerName www.example1.com
    DocumentRoot "C:\XAMPP\htdocs"
   <Directory "C:\XAMPP\htdocs">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
  1. Adicione uma configuração no final de um arquivo do Windows host em “C:\Windows\System32\drivers\etc\host“.
127.0.0.1  www.example1.com

A configuração virtual hospeda vários domínios com um único IP público

  1. Por exemplo, temos 2 domínios com nomes www.example1.com e www.example2.com.
  2. Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<VirtualHost *:80>
    ServerName www.example1.com
    DocumentRoot "C:\XAMPP\htdocs\www.example1.com"
   <Directory "C:XAMPP\htdocs\www.example1.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
 
<VirtualHost *:80>
    ServerName www.example2.com
    DocumentRoot "C:\XAMPP\htdocs\www.example2.com"
   <Directory "C:\XAMPP\htdocs\www.example2.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
  1. Add a setting at the end of a windows host file in “C:\Windows\System32\drivers\etc\host”.
127.0.0.1  www.example1.com
127.0.0.1  www.example2.com

Configuração virtual de vários domínios e hosts IP

  1. Por exemplo, temos 2 domínios com nomes www.example1.com, ip 172.20.30.40 e www.example2.com, ip 172.20.30.50.
  2. Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<VirtualHost 172.20.30.40:80>
    ServerName www.example1.com
    DocumentRoot "C:\XAMPP\htdocs\www.example1.com"
   <Directory "C:XAMPP\htdocs\www.example1.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
 
<VirtualHost 172.20.30.50:80>
    ServerName www.example2.com
    DocumentRoot "C:\XAMPP\htdocs\www.example2.com"
   <Directory "C:\XAMPP\htdocs\www.example2.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
  1. Adicione uma configuração no final de um arquivo de host do Windows em “C:\Windows\System32\drivers\etc\host”.
127.0.0.1 www.example1.com
127.0.0.1 www.example2.com

Configuração de host virtual com portas diferentes

  1. Por exemplo, temos 2 domínios com nomes www.example1.com, ip 172.20.30.40 e www.example2.com, ip 172.20.30.50 em execução na porta 80 e www.example3com, ip 172.20.30.50 com a porta 8080.
  2. Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<VirtualHost 172.20.30.40:80>
    ServerName www.example1.com
    DocumentRoot "C:\XAMPP\htdocs\www.example1.com"
   <Directory "C:\XAMPP\htdocs\www.example1.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
 
<VirtualHost 172.20.30.50:80>
    ServerName www.example2.com
    DocumentRoot "C:\XAMPP\htdocs\www.example2.com"
   <Directory "C:\XAMPP\htdocs\www.example2.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
 
<VirtualHost 172.20.30.50:8080>
    ServerName www.example3.com
    DocumentRoot "C:\XAMPP\htdocs\www.example3.com"
   <Directory "C:\XAMPP\htdocs\www.example3.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </Directory
</VirtualHost>
  1. Add a setting at the end of a windows host file in “C:\Windows\System32\drivers\etc\host”.
127.0.0.1 www.example1.com
127.0.0.1 www.example2.com
127.0.0.1 www.example3.com

Configurar o host virtual com SSL

  1. Crie um certificado SSL, discutido no próximo artigo.
    Por exemplo, um certificado com o nome de arquivo “server.crt“, “server.key
  2. Coloque o certificado SSL em “C:\XAMPP\apache\conf”
  3. Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<virtualhost *:443>
    ServerName www.example1.com
    DocumentRoot "C:\XAMPP\htdocs\www.example1.com"
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
   <directory "c:\xampp\htdocs\www.example1.com">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
  </directory>
</virtualhost>

Últimos artigos