Configurar Dominios Virtuales en Xampp.


Última Actualización: 31/08/2022 19:03 Nro de Vistas: 46629

Configurar Dominios Virtuales en Xampp.

Xampp Configurar Virtual Host

A veces para los desarrolladores es necesario conocer mas nuestras herramientas. Si eres programador en PHP entonces seguramente como servidor de pruebas utilizas algún kit de Software como Xampp o Wamp.

En esta ocación les explicaré como configurar los virtual host de xampp. que en realidad pertenece a Apache.

¿Que es Virtual Host?

es el nombre de nominio para acceder a tu local host. ejm. cuando tu escribes en el navegador: LOCALHOST este simplemente redirige hacia 127.0.0.1 Entonces como hacemos para poner otro nombre y que este nombre redirija a la carpeta que queramos?.

Empezamos:


Como siempre describo mi plataforma de trabajo.

- Windows 10 Pro

- Xampp version 1.6.8

Primer Paso - Configuración de Archivo hosts de windows

Ejecuta Notepad en modo administrador y abre el siguiente archivo: 

c:\windows\system32\drivers\etc\hosts

El Archivo hosts es un archivo no es una carpeta. Es un archivo sin extensión. este archivo es una base de datos de los nombres de los host virtuales. Al final verás textos como:

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

 Ojo: No cambies ese nombre porque otras aplicaciones usan este nombre para funcionar. lo que tienes que hacer es agregar los nombres que tu quieras direccionando a la misma IP 127.0.0.1

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
127.0.0.1       localhost
127.0.0.1       otraweb.loc
127.0.0.1	otracarpeta.web

 Evita usar extensiones existentes ejm .com .net .org etc. puedes agregar tantos nombre como quieras.

Muy bien si ya hiciste esto guarda el archivo. Si no puedes guardar es porque no iniciaste notepad u otro programa como administrador (esto en win7 a win10).

Segundo Paso - Configuración de Archivo httpd-vhosts.conf

httpd-vhosts.conf es el archivo de Nombres Virtuales de Apache. En nuestro xampp está en la siguiente dirección:

C:/xampp/apache/conf/extra/httpd-vhosts.conf

Si este archivo esta aun virgen podrás apreciar que todo está comentado. y al final hay ejemplos de como colocar nuevos nombres virtuales.

##
##    ServerAdmin webmaster@dummy-host2.example.com
##    DocumentRoot /www/docs/dummy-host2.example.com
##    ServerName dummy-host2.example.com
##    ErrorLog @rel_logfiledir@/dummy-host2.example.com-error_log
##    CustomLog @rel_logfiledir@/dummy-host2.example.com-access_log common
##

Yo feliz cambié todo con los datos que puse en mi archivo host, descomenté todo y cuando accedí me enviaba el error Prohibido el Acceso. Pues bien lo que debemos hacer es darle los paramentros para que sea de acceso publico.

    <Directory "d:/proyectos/miswebs">
	Options Indexes FollowSymLinks
	Order allow,deny
	Allow from all
   </Directory>

Considera que tienes todos tus proyectos en esta carpeta. lo que le dices aquí es que das autorización a esta carpeta para que esta y todas sus subcarpetas sean configuradas como servidor web.

 

Ahora explicaré con un ejemplo.

Dentro de d:/proyectos/miswebs tengo una carpeta llamada biblioteca. Es decir d:/proyectos/miswebs/biblioteca/

Yo quiero que mi dominio local se llame http://biblioteca.loc y este a su vez muestre mi pagina que estan en d:/proyectos/miswebs/biblioteca/

Paso 1: Configuramos c:\windows\system32\drivers\etc\hosts y agregamos.

127.0.0.1     biblioteca.loc

Paso 2: Configuramos C:/xampp/apache/conf/extra/httpd-vhosts.conf y agregamos al Inicio

    <Directory "d:/proyectos/miswebs">
	Options Indexes FollowSymLinks
	Order allow,deny
	Allow from all
   </Directory>

Si te das cuenta aqui ponemos     <Directory "d:/proyectos/miswebs"> que es la carpeta madre. Al hacer esto ya no tengo que autorizar a cada carpeta de mis proyectos. por eso escribiremos esto el cual autorizará a todos nuestros dominios locales que agreguemos dentro de esta carpeta.

Paso 3: en el mismo Archivo Continuamo agregando la configuración del Nuevo dominio virtual que apuntará a esa carpeta.

<VirtualHost *:80>
    ServerAdmin webmaster@biblioteca.loc
    DocumentRoot d:/proyectos/miswebs/biblioteca
    ServerName biblioteca.loc
</VirtualHost>

Y eso es todo Reinicias Apache y podrás ver tu web en tu dominio LOCAL. Muy util para hacer las pruebas antes de subir tu web a un server público.

Algunos preguntaban. Y como haria para acceder con Certificado de Seguridad. es decir con https://

Pues es muy facil. Si sabes como crear certificados que explicaré en otro tutorial. Pero para que tengas ya una idea. Aqui mismo en este archivo debes agregar el dominio virtual con su certificado. Para nuestro ejemplo sería así.

<VirtualHost *:443>
	DocumentRoot "d:/proyectos/miswebs/biblioteca"
	ServerName biblioteca.loc
	ServerAdmin webmaster@biblioteca.loc
	SSLEngine on
	SSLCertificateFile "C:/xampp/apache/conf/certificados\biblioteca.crt"
	SSLCertificateKeyFile "C:/xampp/apache/conf/certificados\biblioteca.key"
</VirtualHost>

Muy facil no? Simplemento agrego las direcciones del Certificado SSL y su Archivo Key. Pero para que funcione deberás crear dichos certificados autofirmarlos e instalarlo en tu PC. Eso te explicaré en otro Tuto.

 

RESPUESTAS A LAS PREGUNTAS DE LOS COMENTARIOS

Luis Amor Sanchez: Esto solo es para netrar de manera local, pero para eso no hace falta tanta historia con poner la ip de la maquina que tiene el xampp activo en el navegador entras si estas conectado en la misma red Wifi.

Julia Flores: Y para crear dos dominios?

RESPUESTA A AMBOS: Justamente lo que dice Luis es cierto (suponiendo que el puerto 80 ya esta abierto) Pero esto a que llama (tanta historia) es para responder a Julia Flores. Simplemente añades en el archivo host de cada PC de la RED los nombres de dominio que configures y direcciones en el Xampp.

Al no configurar nada y desde otra PC escribes el N° de IP podrás acceder pero solo a la página que estaría dentro de la carpeta public_html.

Arael Mayron D. Lima: buenas un pregunta al crear un virtualhost como por ejemplo qwe.app 127.0.0.1,puedo hacerlo de esta manera: 192.168.5.5 qwe.app para q pueda acceder desde otros equipos, o como debo configurar un vhost para acceso remoto

Parece que respondiendo los anteriores ya respondí también esta. Recuerda que en los otros equipos debes agregar los nombres de dominio y la IP de la PC con el Xampp en el archivo host de windows.