Creando servidores virtuales en Apache 2.2
Apache 2.2 adopta una estructura modular para sus ficheros de configuración.
Así la definición de servidores virtuales la realizamos en un archivo externo extra/
httpd-vhosts.conf
.Incluimos este archivo dentro del archivo de configuración principal
httpd.conf
. También impone unas restricciones más severas en acceso que versiones anteriores, por lo que debemos configurar propiedades extra para conseguir acceso a los servidores virutales y no obtener el siguiente mensaje:
Forbidden
- You don't have permission to access /index.php on this server.
Suponemos que nuestro directorio de servidores virtuales es
D:\vhosts
.Nota: Las restricciones de seguridad de Windows Vista y Windows 7 previenen el guardar datos en los archivos que mencionamos en estas instrucciones, incluso aunque estes logado como administrador.
- Crear un directorio dentro de
D:\htdocs
para cada servidor virtual. - Abre
C:\WINDOWS\system32\drivers\etc\hosts
con tu editor de textos, y añade una línea como éstas por cada servidor virutal.
127.0.0.1 localhost
127.0.0.1 vhExample
- Abre
conf\httpd.conf
en tu editor de texto y busca la sección#Virtual hosts ,
y descomenta la línea
#Include conf/extra/httpd-vhosts.conf
- Abre
conf\extra\httpd-vhosts.conf
en tu editor de texto. La imagen muestra su típica estructura:
- Al comienzo del archivo insertamos las siguientes líneas:
<directory>
Order Deny,Allow
Allow from all
</directory>
Esto define los permisos correctos para el directorio que contiene los sites que queremos tratar como servidores virtuales.
La ruta del archivo debe usar forward slashes e incluirse entre comillas si tiene espacios en blanco.
Mientras que los servidores virutales estén en subdirectorios de este directorio raiz, tienen los permisos adecuados.
Si hay varios directorios raiz, podemos crear diferentes directivas <directory> para ellos.
- De los comandos que arriba se usan para definir un servidor virutal solo
DocumentRoot
yServerName
son obligatorias.
Cuando usamos virutal hosting, Apache desactiva la raiz del servidor principal, así que nuestro primer servidor virutal debe replicar la raiz original del servidor.
Luego añadimos tantos modulos virutalHost como servidores queramos definir, con su localización como DocumentRoot, y su nombre.
Volvemos a usar forward slashes e incluir entre comillas si necesario.
<VirtualHost *:80>
DocumentRoot D:/htdocs/
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot D:/htdocs/vhExample
ServerName
vhExample
</VirtualHost>
Guardamos los cambios enhttpd-vhosts.conf
, y reiniciamos Apache.
Todos los sites configurados siguen siendo accesibles comohttp://localhost/sitename/
.
Además podemos acceder a cada servidor virtual de forma directa comohttp://
v
hExample
/
.- Si continuas teniendo problemas para acceder a los servidores virtuales, asegúrate de haber añadido la directiva
DirectoryIndex
enhttpd.conf
.
No hay comentarios:
Publicar un comentario