editar configurar apache localhost virtualhost

configurar - virtual host apache ubuntu



Apache VirtualHost y localhost (11)

¡Esto funcionó para mí!

Para ejecutar proyectos como http://localhost/projectName

<VirtualHost localhost:80> ServerAdmin localhost DocumentRoot path/to/htdocs/ ServerName localhost </VirtualHost>

Para ejecutar proyectos como http://somewebsite.com localmente

<VirtualHost somewebsite.com:80> ServerAdmin [email protected] DocumentRoot /path/to/htdocs/somewebsiteFolder ServerName www.somewebsite.com ServerAlias somewebsite.com </VirtualHost>

Lo mismo para otros sitios web

<VirtualHost anothersite.local:80> ServerAdmin [email protected] DocumentRoot /path/to/htdocs/anotherSiteFolder ServerName www.anothersite.local ServerAlias anothersite.com </VirtualHost>

Estoy trabajando con XAMPP en Mac OS X. Estoy tratando de ejecutar correctamente un sitio web de Symfony para un cliente, realmente no lo sé (todavía) Symfony, solo quiero instalarlo e iniciarlo.

He cambiado mi etc / hosts de esta manera:

127.0.0.1 www.mysite.local

y el httpd.conf de esta manera:

<VirtualHost *:80> ServerName www.mysite.local DocumentRoot /Applications/MAMP/htdocs/mysite/web DirectoryIndex index.php <Directory /Applications/MAMP/htdocs/mysite/web> AllowOverride All Allow from All </Directory> Alias /sf /Applications/MAMP/htdocs/mysite/lib/vendor/symfony/data/web/sf <Directory "/Applications/MAMP/htdocs/mysite/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All </Directory> </VirtualHost>

Ahora, el sitio está funcionando (¡yay!), Pero no puedo acceder a ninguno de mis otros sitios locales porque localhost se representa como www.misitio.local . Donde estoy equivocado?

¡Gracias!



Descripción adicional de la respuesta de John Smith a partir de la documentación oficial . Para entender por qué es así.

El anfitrión principal desaparece

Si está agregando hosts virtuales a un servidor web existente, también debe crear un bloque para el host existente . El ServerName y DocumentRoot incluidos en este host virtual deben ser los mismos que los ServerName y DocumentRoot globales. Enumere este host virtual primero en el archivo de configuración para que actúe como el host predeterminado.

Por ejemplo, para que funcione correctamente con XAMPP, para evitar que VirtualHost anule el host principal, agregue líneas de seguimiento en httpd-vhosts.conf

# Main host <VirtualHost *:80> ServerName localhost DocumentRoot "/xampp/htdocs" </VirtualHost> # Additional host <VirtualHost *:80> # over directives there </VirtualHost>


Esto es normal si lo ves. Como es la primera entrada de host virtual, mostrará el host local.

Digamos, por ejemplo, que no quería que se mostrara esa página. Todo lo que desea mostrar es apache, funciona la página para que realice una entrada de vhost antes de mysite.local como host local y apúntelo a la página de trabajo.

Pero esto es normal. Tuve este problema antes, así que no te preocupes!


Estoy ejecutando Ubuntu 16.04, esto es lo que funcionó para mí:

  1. Abra una terminal y cd a /etc/apache2/sites-available . Allí encontrará un archivo llamado 000-default.conf .
  2. Copie ese archivo: cp 000-default.conf example.local.conf
  3. Abra ese archivo nuevo (yo uso Nano, use lo que se sienta cómodo).
  4. Verás muchas líneas comentadas, que puedes eliminar.
  5. Cambiar <VirtualHost *:80> a <VirtualHost example.local:80>
  6. Cambia la raíz del documento para reflejar la ubicación de tus archivos.
  7. Agregue la siguiente línea: ServerName example.local Y si es necesario, agregue esta línea: ServerAlias www.example.local
  8. Guarde el archivo y reinicie Apache: service Apache2 restart

Abra un navegador y navegue a example.local . Deberías ver tu sitio web.


Para alguien que hace todo lo descripto aquí y aún no puede acceder:
Xampp con apache 2.4:

en httpd-vhost.conf

<VirtualHost *> DocumentRoot "D:/xampp/htdocs/dir" ServerName something.dev <Directory "D:/xampp/htdocs/dir"> Require all granted #apache v 2.4.4 uses just this </Directory> </VirtualHost>


No hay necesidad de puerto, o ip aquí, configure Apache en sus propios archivos. No necesita NameVirtualHost *: 80, está en desuso, puede usarlo, pero no hace ninguna diferencia.

Luego, para editar hosts, DEBE EJECUTAR NOTEPAD COMO ADMINISTRADOR (DESCRITO BELLOW), si está editando el archivo sin hacer esto, está editando un pseudo archivo, no el original (sí, guarda y caga, pero no es el archivo real) )
En windows:

Busque el icono del bloc de notas, haga clic con el botón derecho, ejecute como administrador, abra el archivo, vaya a c: / windows / system32 / driver / etc / hosts, marque "ver todos los archivos", abra hosts.

Si está editando antes, probablemente verá que no es el archivo que estaba editando previamente cuando no se ejecuta como administrador.

Luego, para verificar si Apache está leyendo su httpd-vhost.conf , vaya a xampFolder / apache / bin, shift + clic derecho, abra el comando del terminal aquí, abra xampp (como lo hace normalmente), inicie apache, luego en la línea de comando, escriba httpd -S, verá una lista de los hosts virtuales, solo verifique si your something.dev está allí.


Simplemente cambie <VirtualHost *:80> a <VirtualHost 127.0.0.1:80> .

Entonces, DocumentRoot defecto servirá para todos los dominios o direcciones IP que apuntan a su servidor y funcionará VirtualHost especificado.


Tuve el mismo problema de acceder a localhost mientras trabajaba con virtualHost. Lo resolví agregando el nombre en el código de escucha de VirtualHost como a continuación-

En mi archivo hosts , he agregado el código siguiente ( C: / Windows / System32 / drivers / etc / hosts ) -

127.0.0.1 main_live

Y en mi httpd.conf he agregado el código siguiente:

<VirtualHost main_live:80> DocumentRoot H:/wamp/www/raj/main_live/ ServerName main_live </VirtualHost>

Eso es. Funciona, puedo usar tanto localhost , phpmyadmin , como main_live (Mi proyecto virtual) simultáneamente.


es posible que desee utilizar esto:

<VirtualHost *:80> DocumentRoot "somepath/Apache2.2/htdocs" ServerName localhost </VirtualHost> <VirtualHost *:80>

como su primer host virtual (colóquelo antes de otro host)


puede ser porque su carpeta web (como se menciona "/ Aplicaciones / MAMP / htdocs / mysite / web ") está vacía.

Mi sugerencia es primero hacer su proyecto y luego trabajar para crear un host virtual. Fui con una situación similar. Estaba usando una carpeta vacía en DocumentRoot en httpd-vhosts.confiz y no puedo acceder a mi sitio shahg101.com


localhost siempre redirigirá a 127.0.0.1 . Puede engañar al nombrar su otro VirtualHost a otra dirección de bucle local, como 127.0.0.2 . Asegúrese de cambiar también el archivo de hosts correspondiente para implementar esto.

Por ejemplo, mi httpd-vhosts.conf ve así:

<VirtualHost 127.0.0.2:80> DocumentRoot "D:/6. App Data/XAMPP Shared/htdocs/intranet" ServerName intranet.dev ServerAlias www.intranet.dev ErrorLog "logs/intranet.dev-error.log" CustomLog "logs/intranet.dec-access.log" combined <Directory "D:/6. App Data/XAMPP Shared/htdocs/intranet"> Options Indexes FollowSymLinks ExecCGI Includes Order allow,deny Allow from all AllowOverride All Require all granted </Directory> </VirtualHost>

(Observe que en la sección <VirtualHost> escribí 127.0.0.2:80 . Esto significa que este bloque de VirtualHost solo afectará las solicitudes a la dirección IP 127.0.0.2 puerto 80 , que es el puerto predeterminado para HTTP.

Para enrutar el nombre intranet.dev correctamente, la línea de entrada de mi hosts es la siguiente:

127.0.0.2 intranet.dev

De esta forma, le impedirá crear otro bloque VirtualHost para localhost , lo cual es innecesario.