php - por - Cómo crear un host virtual en XAMPP
virtual host xampp mac (15)
Estoy seguro de que esta pregunta se hace muchas veces, pero no encuentro ningún problema. Estoy usando XAMPP donde configuro el marco Zend.
XAMPP se ejecuta en el
puerto 8081
ya que
80
está ocupado por algún proceso de Windows. Necesito usar un host virtual para eso lo configuro con el siguiente código en
C:/xampp/apache/config/extra/httpd-vhosts.config
(o
C:/xampp/apache/conf/extra/httpd-vhosts.conf
en versiones más recientes).
<VirtualHost *:80>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
<Directory "C:/xampp/htdocs/CommunicationApp/public"
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
y también actualice el archivo hosts con
127.0.0.1 comm-app.local
e intente reiniciar apache pero muestra un error.
15:03:01 [Apache] Error: Apache shutdown unexpectedly.
15:03:01 [Apache] This may be due to a blocked port, missing dependencies,
15:03:01 [Apache] improper privileges, a crash, or a shutdown by another method.
15:03:01 [Apache] Press the Logs button to view error logs and check
15:03:01 [Apache] the Windows Event Viewer for more clues
15:03:01 [Apache] If you need more help, copy and post this
15:03:01 [Apache] entire log window on the forums
El problema con xampp en mi caso es cuando se especifica una carpeta diferente que no sea htdocs, especialmente con múltiples dominios y carpetas dedicadas.
Esto se debe a que
httpd-ssl.conf
también hace referencia a
<VirtualHost>
.
Para hacer esto, rem toda la entrada
<VirtualHost>
en
httpd-ssl.conf
A partir de ahí, cualquier configuración que realice en su
httpd-vhosts.conf
se actualizará como se esperaba tanto en las referencias
http
como en las
https
.
En su unidad de disco: / xampp / apache / conf / extra / httpd-vhosts.conf existe un ejemplo y puede editarlo con su configuración:
##<VirtualHost *:80>
##ServerAdmin [email protected]
##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
##ServerName dummy-host.example.com
##ServerAlias www.dummy-host.example.com
##ErrorLog "logs/dummy-host.example.com-error.log"
##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>
Sería así, como ejemplo, y no olvide agregar VirtualHost para localhost para tener la posibilidad de ejecutar phpmyadmin y otro proyecto al mismo tiempo en el puerto 80, como ejemplo mostraré con el proyecto store.local :
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "c:/xampp/htdocs/store.local/public"
ServerName www.store.local
ServerAlias store.local
<Directory C:/xampp/htdocs/store.local>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
entonces, como se mencionó anteriormente, debe agregar: C: / windows / system32 / drivers / hosts al final del archivo
127.0.0.1 store.local
127.0.0.1 www.store.local
reinicie Apache e intente en el navegador:
store.local or www.store.local
quizás la primera vez que deba agregar así:
http://store.local or http://www.store.local
para usar otros puertos, debe agregar los siguientes, antes de su VirtualHost:
Listen 8081 or another which you prefer
luego use el puerto para su VirtualHost de esta manera:
<VirtualHost *:8081>
ServerAdmin [email protected]
DocumentRoot "c:/xampp/htdocs/store.local/public"
ServerName store.local
ServerAlias www.store.local
<Directory C:/xampp/htdocs/store.local>
AllowOverride All
Require all granted
</Directory>
luego reinicie Apache e intente en el navegador
store.local:8081 or www.store.local:8081
y solo el proyecto para el que agregue el puerto se ejecutará en este puerto, por ejemplo, otros proyectos y phpmyadmin seguirán ejecutándose en el puerto 80
Escriba estos códigos al final del archivo C: / xampp / apache / conf / extra / httpd-vhosts.conf,
DocumentRoot "D:/xampp/htdocs/foldername"
ServerName www.siteurl.com
ServerAlias www.siteurl.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
entre la etiqueta de host virtual.
y edite el archivo System32 / Drivers / etc / hosts use notepad como administrador
agregar al final del archivo
127.0.0.1 www.siteurl.com
He agregado la configuración a continuación a httpd.conf y reinicié el servicio lampp y comenzó a funcionar. Gracias a todas las publicaciones anteriores, que me ayudaron a resolver los problemas uno por uno.
Listen 8080
<VirtualHost *:8080>
ServerAdmin [email protected]
DocumentRoot "/opt/lampp/docs/dummy-host2.example.com"
ServerName localhost:8080
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
<Directory "/opt/lampp/docs/dummy-host2.example.com">
Require all granted
</Directory>
</VirtualHost>
Llego un poco tarde a la fiesta, pero escribí este pequeño script bash para Mac que crea un VirtualHost a través del terminal:
#!/bin/bash
echo "Welcome to the VirtualHostCreator! Press <RETURN> to continue."
read
echo "Enter the name the VirtualHost you would like to create. No spaces or dashes, please."
read hostname
echo "Enter the document root of the VirtualHost."
read doc_root
echo "Creating VirtualHost /"$hostname/". You may be prompted for your password."
hosts_file="/etc/hosts"
vhosts_file="/Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf"
restart_command="sudo /Applications/XAMPP/xamppfiles/xampp restart"
cat >> $vhosts_file << EndOfMessage
<VirtualHost ${hostname}>
ServerName ${hostname}
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/${doc_root}"
</VirtualHost>
EndOfMessage
sudo sh -c "echo /"127.0.0.1 $hostname/" >> $hosts_file"
$restart_command
Estoy seguro de que se pueden hacer algunas mejoras, y solo tiene las dos opciones requeridas para el vhost (nombre del servidor y raíz del documento), pero hace el trabajo mucho más rápido y eficiente que abrir y editar todos los archivos manualmente, y también reinicia automáticamente XAMPP después.
Esto supone que tiene la ubicación de instalación predeterminada para XAMPP, que se puede cambiar.
Lo arreglé usando la siguiente configuración.
Listen 85
<VirtualHost *:85>
DocumentRoot "C:/xampp/htdocs/LaraBlog/public"
<Directory "C:/xampp/htdocs/CommunicationApp/public">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Paso 1) Abra el archivo de host en "C: / Windows / System32 / drivers / etc"
Añadir
127.0.0.1 vipsnum.mk
Paso 2) Abra el archivo httpd-vhosts.conf en "C: / xampp / apache / conf / extra"
Añadir
<VirtualHost vipsnum.mk:80>
ServerName vipsnum.mk
DocumentRoot "C:/xampp/htdocs/vipnum/"
SetEnv APPLICATION_ENV "development"
<Directory "C:/xampp/htdocs/vipnum/">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Simplemente cambie el puerto a
8081
y el siguiente host virtual funcionará:
<VirtualHost *:8081>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
<Directory "C:/xampp/htdocs/CommunicationApp/public">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Veo dos errores:
<VirtualHost *:80> -> Fix to :8081, your POrt the server runs on
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
<Directory "C:/xampp/htdocs/CommunicationApp/public" -> This is probably why it crashes, missing >
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
-> MIssing close container: </VirtualHost>
Versión fija:
<VirtualHost *:8081>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
<Directory "C:/xampp/htdocs/CommunicationApp/public">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Una cosa para mencionar:
Siempre puede intentar ejecutar el comando:
service apache2 configtest
Esto le dirá cuándo tiene una configuración mal formada y tal vez incluso le diga dónde está el problema.
Además, ayuda a evitar la indisponibilidad en un sistema LIVE:
service apache2 restart
se apagará y luego no se iniciará, esta prueba de configuración lo sabe de antemano "¡Uy, hice algo mal, debería solucionar esto primero" pero el apache en sí sigue funcionando con la configuración anterior. :)
documentation Apache Virtual Host La configuración de un host virtual (vhost) proporciona varios beneficios:
- Los hosts virtuales hacen que las URL sean más limpias: localhost / mysite vs mysite.local.
- Los hosts virtuales facilitan los permisos: restrinja el acceso para un solo vhost en una red local en lugar de permitir el acceso a todos los sitios en su red local.
- Algunas aplicaciones requieren un "." En la URL (ejem Magento). Si bien puede configurar localhost.com/mysite editando el archivo de hosts de Windows, crear un vhost es una mejor solución.
Directiva VirtualHost Contiene directivas que se aplican solo a un nombre de host específico o dirección IP
Directiva de ubicación Aplica las directivas adjuntas solo a las URL coincidentes
Example
cambios sobre el archivo de configuración -
D:/xampp/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin localhost
DocumentRoot "D:/xampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost localhost:80>
ServerAdmin [email protected]
DocumentRoot "/www/docs/host.example.com"
#DocumentRoot "D:/xampp/htdocs/phpPages"
ServerName host.example.com
ErrorLog "logs/host.example.com-error_log"
TransferLog "logs/host.example.com-access_log"
</VirtualHost>
# To get view of PHP application in the Browser.
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:/xampp/htdocs/app1"
ServerName app1.yash.com
ServerAlias app1.yash.com
ErrorLog "logs/app1.yash.com-error.log"
CustomLog "logs/app1.yash.com-access.log" combined
# App1 communication proxy call to Java War applications from XAMP
<Location /ServletApp1>
ProxyPass http://app1.yashJava.com:8080/ServletApp1
ProxyPassReverse http://app1.yashJava.com:8080/ServletApp1
Order Allow,Deny
Allow from all
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:/xampp/htdocs/app2"
ServerName app2.yash.com
ErrorLog "logs/app2.yash.com-error.log"
CustomLog "logs/app2.yash.com-access.log" combined
# App1 communication proxy call to Java War applications from XAMP
<Location /ServletApp2>
ProxyPass http://app1.yashJava.com:8080/ServletApp2
ProxyPassReverse http://app1.yashJava.com:8080/ServletApp2
Order Allow,Deny
Allow from all
</Location>
</VirtualHost>
Actualice su archivo de hosts de Windows «Abra su archivo de hosts de Windows ubicado en
C:/Windows/System32/drivers/etc/hosts.
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 test.com
127.0.0.1 example.com
127.0.0.1 myssl.yash.com
D:/xampp/apache/conf/httpd.conf, [httpd-ssl.conf](http://httpd.apache.org/docs/2.2/mod/mod_ssl.html)
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost> directive.
# Listen 0.0.0.0:80 | [::]:80
Listen 80
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule speling_module modules/mod_speling.so
# ServerAdmin: Your address, where problems with the server should be e-mailed.
# This address appears on some server-generated pages, such as error documents.
# e.g. [email protected]
ServerAdmin postmaster@localhost
ServerName localhost:80
DocumentRoot "D:/xampp/htdocs"
<Directory "D:/xampp/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"
# ===== httpd-ssl.conf - SSL Virtual Host Context =====
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
# Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
Listen 443
## SSL Virtual Host Context
<VirtualHost _default_:443>
DocumentRoot "D:/xampp/htdocs/projectFolderSSL"
ServerName myssl.yash.com:443
ServerAlias myssl.yash.com:443
ServerAdmin webmaster@localhost
ErrorLog "logs/error.log"
<IfModule log_config_module>
CustomLog "logs/access.log" combined
</IfModule>
## Redirecting URL from Web server to Application server over different machine.
# myssl.yash.com:443/ServletWebApp
<Location /path>
ProxyPass http://java.yash2.com:8444/ServletWebApp
ProxyPassReverse http://java.yash2.com:8444/ServletWebApp
Order Allow,Deny
Allow from all
</Location>
#SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateFile "D:/SSL_Vendor/yash.crt"
#SSLCertificateKeyFile "conf/ssl.key/server.key"
SSLCertificateKeyFile "D:/SSL_Vendor/private-key.key"
#SSLCertificateChainFile "conf/ssl.crt/server-ca.crt"
SSLCertificateChainFile "D:/SSL_Vendor/intermediate.crt"
</VirtualHost>
# ===== httpd-ssl.conf - SSL Virtual Host Context =====
@ver
- Concepto de seguridad XAMPP - Error 403.404
- Apache VirtualHost y localhost
Agregue este código en C: / xampp / apache / conf / extra / httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName qa-staging.com
ServerAlias www.qa-staging.com
<Directory "c:/xampp/htdocs">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Ahora agregue su nombre de host virtual en el siguiente archivo.
C:/Windows/System32/drivers/etc/hosts
127.0.0.1 qa-staging.com
Si no puede guardar este código en el archivo host, haga clic con el botón derecho en notpad, seleccione Ejecutar como administrador y luego podrá guardar su código personalizado ahora reinicie su XAMP
Paso 1) C: / WINDOWS / system32 / drivers / etc / Abra el archivo "hosts":
127.0.0.1 localhost
127.0.0.1 test.com
127.0.0.1 example.com
Paso 2) xampp / apache / conf / extra / httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot C:/xampp/htdocs/test/
ServerName www.test.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot C:/xampp/htdocs/example/
ServerName www.example.com
</VirtualHost>
Paso 3) C: / xampp / apache / conf / httpd.conf. Desplácese hacia abajo hasta la sección de configuración complementaria al final, y ubique la siguiente sección (alrededor de la línea 500). Elimine el # del comienzo de la segunda línea para que la sección se vea así:
#Virtual hosts
Include conf/extra/httpd-vhosts.conf
Paso 4) Reinicie XAMPP y ahora ejecútelo en su navegador:
www.example.com or www.test.com
Simple, puede ver la plantilla a continuación y usarla en consecuencia. Es muy común crear un host virtual y muy simple. Seguramente debajo de la plantilla funcionará.
<VirtualHost *:8081>
DocumentRoot "C:/xampp/htdocs/testsite"
ServerName testsite.loc
ServerAlias www.testsite.loc
<Directory "c:/xampp/htdocs/testsite">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
También para obtener más información sobre el host virtual, visite este sitio. http://www.thegeekstuff.com/2011/07/apache-virtual-host
Gracias,
1. C:/xampp/apache/conf/https.conf
Virtual hosts
Include conf/extra/httpd-vhosts.conf
2. C:/Windows/System32/drivers/etc/hosts
127.0.0.1 localhost
127.0.0.1 helpdesk.local
3. C:/xampp/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/helpdesk/public"
ServerName helpdesk.local
</VirtualHost>
Now, Restart Apache and go through the link.
URL : http://helpdesk.local
<VirtualHost *:80>
DocumentRoot "D:/projects/yourdirectry name"
ServerName local.yourdomain.com
<Directory "D:/projects/yourdirectry name">
Require all granted
</Directory>
</VirtualHost>
Guarde el archivo de configuración de Apache.
para obtener información detallada, consulte this