dominio - Cómo configurar los hosts virtuales de Apache en XAMPP(Windows)
crear un dominio virtual windows (4)
¿A dónde va esta etiqueta?
¿Dónde encuentro el archivo vhosts?
No pude encontrarlo en la documentación.
<VirtualHost hostname:80>
...
SetEnv NS_ENV variable_value
...
</VirtualHost>
Guía completa para hacer VHOST (Virtual Host) en XAMPP / WAMP
Nota: Para comenzar, la única diferencia para esta guía, entre XAMPP y WAMP u otros paquetes de Apache para Windows, es la cuestión de dónde están instalados esos paquetes en su computadora.
Introducción: vhost (host virtual) es una gran solución si tiene la intención de desarrollar muchos proyectos independientes en php y mantenerlos aislados unos de otros, como:
-
El Proyecto 1 se basa en php y tiene una dirección URL local
php.localhost
-
Project 2 es un proyecto de Laravel con url
laravel.localhost
-
Project 3 es un Codeigniter con url
codeigniter.locathost
-
Project 4 es un WordPress con url
wordpress.locathost
Se espera que haya instalado la última versión de XAMPP / WAMP. Por cierto, en mi caso, solo he instalado Apache y MySQL.
* Nota: Por defecto, la mayoría de los servidores web usarán el puerto 80 como puerto predeterminado, en alguna situación si tiene otro servidor web instalado como (Microsoft IIS), también usa el puerto 80 O en otros casos SKYPE también usa el puerto algunas veces 80 como es el caso de algunos en Windows 8/10 para algunos usuarios, en ese caso puedes hacer dos cosas
-
Cambie su puerto Apache al puerto
8080
,8081
, etc. o a otros puertos libres (nota: 8080 también puede ocasionar algunos problemas) - O cambie el software de otros / puerto IIS y mantenga Apache en el puerto predeterminado 80 en el caso de Skype, simplemente cierre la aplicación de Skype y reiníciela después de instalar Apache en el puerto 80, Skype obtendrá automáticamente un nuevo puerto.
Elegí cambiar mi Apache al puerto 8080 .
Nota:
- Para la siguiente sección, necesitamos usar el editor de texto como el bloc de notas o IDE normal. Usé un editor de texto sublime.
- Si mantiene Apache en el puerto predeterminado 80, omita esta parte y continúe con los hosts virtuales
Cambie el puerto XAMPP / WAMP (solo si es necesario) si se deja predeterminado, luego vaya a Configuración de host virtual
Paso 1. Edite httpd.conf
Haga clic en Configuración -> Apache (httpd.conf) O encuentre el archivo aquí
C:/XAMPP/apache/conf/httpd.conf
,
C:/XAMPP/apache2/conf/httpd.conf
,
C:/Bitnami/wampstack/apache/conf/httpd.conf
o
C:/Bitnami/wampstack/apache2/conf/httpd.conf
o una ubicación similar.
Cambia la línea con
Listen 80
A 8080 u otro, puertos libres.
Listen 8080
Si bien tenemos abierto el archivo
httpd.conf
, debemos asegurarnos de que se incluye
httpd-vhosts.conf
: Incluir
conf/extra/httpd-vhosts.conf
Anfitriones virtuales
Nota: Por defecto, los documentos del servidor se encuentran en
C:/XAMPP/htdocs
oC:/Bitnami/wampstack/apache2/htdocs
eso está bien si solo tiene un proyecto o muchos archivos de prueba pequeños. Sin embargo, si necesita desarrollar muchos proyectos, entonces sugirió separarlos por host virtual, como se mencionó anteriormente.
Paso 2. Configuración del host virtual
-
Crea una carpeta para tus proyectos;
He creado uno en
c:/vhost
, puede llamarlo proyectos, etc. -
En la carpeta
c:/vhost
creamos una subcarpeta dominio1 o proyecto1 o cualquier otro, depende de usted (c:/vhost/project1
) -
Abra el archivo
httpd-vhosts.conf
C:/XAMPP/apache/conf/extra/httpd-vhosts.conf
Agregue el siguiente código en línea dependiendo de cuántos vhost desee crear:
<Directory C:/vhost>
AllowOverride All
Require all granted
</Directory>
#this is the default address of XAMPP
<VirtualHost *:8080>
DocumentRoot "C:/XAMPP/htdocs/"
ServerName localhost
</VirtualHost>
#this is the first vhost address in XAMPP
<VirtualHost *:8080>
DocumentRoot "C:/vhost/project1/"
ServerName php.localhost
SetEnv NS_ENV variable_value
</VirtualHost>
#this is the second vhost address in XAMPP for project like Laravel
<VirtualHost *:8080>
DocumentRoot "C:/vhost/Laravel-Blog/public"
ServerName laravel.localhost
</VirtualHost>
etc
Nota: Si trabaja en proyectos Laravel, puede crear proyectos Laravel ilimitados, así como otros marcos como codeigniter, Yii, etc., el punto es tener sus proyectos Laravel en
c:/vhost/laravel1
,c:/vhost/laravel2
etc. y hagac:/vhost/laravel1/public
como DocumentRoot, etc. como se mostró anteriormente. Cada proyecto de Laravel tendrá su propia URL VirtualHost.
Guarde y cierre el archivo
Alguna información adicional y notas:
-
Si el puerto sigue siendo el predeterminado 80, la dirección URL será
localhost
-
Si el puerto sigue siendo el predeterminado 80, entonces la etiqueta VirtualHost debe cambiarse a
<VirtualHost *:80>
-
Si el puerto se cambia a
8080
, la dirección URL serálocalhost:8080
-
Y la dirección URL de
project1.localhost:8080
podría verse asíproject1.localhost:8080
etc. - Puede agregar proyectos ilimitados y host virtual de esta manera.
Todavía no estamos listos, lea más.
Paso 3. Edite el archivo de Windows Host
- Detenga los servicios de Apache y MySQL de XAMPP / WAMP.
-
Abra el archivo hosts en
C:/windows/system32/drivers/etc
necesita privilegios de administrador para editar el archivo. Sugiero editar el archivo directamente con el editor de texto Sublime. -
Agregue
127.0.0.1 project1.localhost
al final del archivo, guarde y cierre el archivo.
127.0.0.1 localhost
127.0.0.1 php.localhost
127.0.0.1 laravel.localhost
127.0.0.1 codeigniter.localhost
127.0.0.1 wordpress.localhost
127.0.0.1 laravel2.localhost
etc. those are just examples
guarda el archivo
Último paso. Inicie / reinicie su Apache y MySQL nuevamente.
Suma (sugerencia)
Nota: En el proceso de desarrollo, es posible que tenga problemas para tener la memoria caché activada, porque puede arriesgarse a actualizar algo en Laravel y no aparecerá en su navegador. Por lo tanto, es posible que deba deshabilitar el caché php en el proceso de desarrollo en su entorno local.
Abra el archivo
php.ini
en la carpeta php en su carpeta Apache (XAMPP o WAMP) y cambie
opcache.enable
a
0
para que se vea así:
[opcache]
zend_extension=php_opcache.dll
; Determines if Zend OPCache is enabled
opcache.enable=0
Adición (solución alternativa)
Importante: La siguiente solución no es adecuada para probar Restful Api, lienzo, soluciones pesadas, etc.puede darle algunos dolores de cabeza, sugeriría una solución de host virtual con el puerto 80 por defecto.
Es posible implementar un servidor virtual temporal sin configurar necesariamente el host virtual XAMPP / WAMP, iniciar la consola CMD y ejecutar el siguiente comando php:
php -S localhost:8001 -t c:/vhost/Laravel-Project/public
- El puerto 8001 se puede cambiar a cualquier número de puerto disponible y estar seguro o en conflicto con otros puertos de software.
-
c:/vhost/Laravel...
ruta debe cambiarse por la ruta de su proyecto. - Es posible iniciar varios servidores, pero debe tener diferentes números de puerto.
En su navegador solo necesita corregir
http://localhost:8001/
Nota sobre 403 Error de acceso prohibido
Si obtiene un error de acceso prohibido 403 cuando navega por su sitio, es posible que deba agregar esto a su archivo httpd.conf:
<Directory path_to_dir>
AllowOverride none
Require all granted
</Directory>
En primer lugar, abra su Bloc de notas como administrador y luego haga clic en
file > open
.
Luego vaya a su controlador de ventana ahora busque la carpeta
system32
y luego busque la carpeta de
drivers
y luego la carpeta
etc
Ahora verá una carpeta de archivos vacíos, así que no se preocupe por ver documentos de texto (
*.txt
) en la parte inferior.
Cambie la vista a
all files
y luego verá el archivo
vhost
.
¡Abre y disfruta!
Host virtual crear
-
C: / xampp / apache / conf / extra Abra el archivo httpd-vhost y luego agregue
DocumentRoot "C: / xampp / htdocs / project / timegrid / public" ServerName mytimegrid.me (su elección) - C: / Windows / System32 / drivers / etc Abra el archivo hosts y luego agregue 127.0.0.1 mytimegrid.me (su nombre de dominio)
Nota: primero abre su editor (bloc de notas, etc.) como modo Ejecutar como administrador; de lo contrario, no podrá guardar estos archivos. Okay.
Puede hacer que su host local apunte a diferentes carpetas en diferentes números de puerto. Siga estos sencillos pasos:
Paso 1: Haz que tu apache escuche múltiples puertos. Vaya a C: / xampp / apache / conf / httpd.conf y busque la palabra clave Listen, puede ver algo como esto Listen 80. Ahora dígale a su apache que escuche múltiples puertos, reemplácelo con el contenido a continuación.
- Escuchar 80
- Escucha 8001
- Escucha 8002
Paso 2: Ahora ve a "C: / xampp / apache / conf / extra / httpd-vhosts.conf", este es el reproductor real. Al final del archivo puede especificar algo como esto a continuación:
DocumentRoot "C: / xampp / htdocs / project1" ServerName localhost: 8001
DocumentRoot "C: / xampp / htdocs / project2" ServerName localhost: 8002
Lo que le dice a su apache que tome diferentes carpetas al presionar diferentes números de puerto. Es entonces cuando golpea localhost: 8001 / tomará el contenido del proyecto1, de manera similar localhost: 8002 / apuntará a su carpeta project2.
Al hacer esto, ejecutamos 2 sitios diferentes en nuestra máquina local.
Nota: debe reiniciar su apache cada vez que cambie algo en httpd.conf o httpd-vhosts.conf.