Creando virtualhosts en Apache
Apache
Apache es un servidor web, considerado uno de los más populares para proveer contenido web en Internet. Este cuenta con más de la mitad de todos los sitios web activos en la red y es extremadamente poderoso y flexible. Apache divide su funcionalidad y componentes en unidades independientes que pueden ser configuradas independientemente. La unidad básica que describe un sitio individial o el dominio es conocido como virtualhost.
Estas asignaciones permiten al administrador utilizar un servidor para alojar varios dominios o sitios en una simple interface o IP utilizando un mecanismo de coincidencias. Esto es relevante para cualquiera que busque alojamiento para más de un sitio en un solo VPS.
Antes de empezar
Bueno, conociendo un poco la teorÃa ya podemos pasar al pollo del arroz con pollo, por decirlo en buen cubano. Lo primero que debemos tener en cuenta para poder realizar esta configuración es instalar Apache y esto lo puedes realizar con la siguiente orden:
1
| sudo apt-get install apache2 |
Una vez instalado el servidor web, podemos comenzar a configurar. La configuración que llevaré a cabo creará un virtualhost para ejemplo.uci.cu y otro para ejemplo.xetid.cu.
Paso Uno – Crear la Estructura del Directorio
El primer paso que necesitamos es crear la estructura de directorios que mantendrán la información de nuestro sitio.
Nuestro documento raÃz (el directorio principal en el cual Apache busca el contenido para mostrar) será configurado en directorios individuales dentro de la ruta /var/www/html (para versiones anteriores a ubuntu 14.10 serÃa en/var/www). Crearemos los directorios aquà para los dos virtual hosts que pretendemos configurar.
Dentro de cada uno de estos directorios crearemos un directorio denominado public_html el cual mantendrá la información pública del sitio y sus respectivos archivos. Esto nos dará más flexibilidad en nuestro alojamiento.
Creamos los directorios donde se contendrán nuestros virtualhosts:
1
2
| sudo mkdir -p /var/www/html/ejemplo .uci.cu /public_html sudo mkdir -p /var/www/html/ejemplo .xetid.cu /public_html |
Paso Dos – Otorgar Permisos
Ahora tenemos la estructura de los directorios para neustros archivos, pero el usuario root es el propietario de ellos. Si queremos que nuestro usuario regular pueda modificar los archivos en nuestro directorio web, necesitamos cambiar el propietario haciendo lo siguiente:
1
2
| sudo chown -R $USER:$USER /var/www/ejemplo .uci.cu /public_html sudo chown -R $USER:$USER /var/www/pruebas .xetid.cu /public_html |
La variable $USER tomará el valor del usuario con el cual actualmente estás identificado. Al hacer esto, nuestro usuario regular ahora es propietario de los directorios public_html donde se almacenará nuestro contenido.
Debemos además modificar los permisos un poco para asegurarnos que el permiso de lectura pueda ser aplicado a archivos y directorios para que las páginas puedan ser desplegadas correctamente:
1
| sudo chmod -R 755 /var/www/html |
Tu servidor ahora tiene los permisos necesarios para mostrar el contenido, y el usuario deberá ser capaz de crear contenido en los directorios a medida que sea necesario.
Paso Tres — Crear una Página de Prueba para cada Virtual Host
Actualmente tenemos la estructura en su lugar, asà que ahora vamos a crear contenido para mostrar. Como solo vamos a hacer una demostración, nuestras páginas serán muy simples. Solo crearemos un archivo index.html para cada sitio.
Empecemos con ejemplo.uci.cu creando un archivo denominado index.html:
Empecemos con ejemplo.uci.cu creando un archivo denominado index.html:
1
| nano /var/www/html/ejemplo .uci.cu /public_html/index .html |
En este archivo, crea un documento HTML simple que indicara que el sitio está conectado. Mi archivo quedó asÃ:
1
2
3
4
5
6
7
8
| < html > < head > < title >Bienvenido a Ejemplo.uci.cu!</ title > </ head > < body > < h1 >Éxito! El Virtual Host ejemplo.uci.cu esta funcionando!</ h1 > </ body > </ html > |
Guardamos y cerramos el archivo cuando terminemos.
Podemos copiar este archivo y usarlo de base para nuestro segundo sitio escribiendo:
1
| cp /var/www/html/ejemplo .uci.cu /public_html/index .html /var/www/html/ejemplo .xetid.cu /public_html/index .html |
Ahora podemos abrir el archivo y modificar la información relevante:
1
| nano /var/www/html/ejemplo .xetid.cu /public_html/index .html |
1
2
3
4
5
6
7
8
| < html > < head > < title >Bienvenido a Ejemplo.xetid.cu!</ title > </ head > < body > < h1 >Éxito! El Virtual Host ejemplo.xetid.cu esta funcionando!</ h1 > </ body > </ html > |
Guardamos y cerramos como el en caso anterior. Ahora tienes páginas suficientes para probar tu configuración.
Paso Cuatro — Crear Nuevos Archivos Virtual Host
Los archivos Virtual Host son archivos que contienen información y configuración especÃfica para el dominio y que le indican al servidor Apache como responder a las peticiones de varios dominios.
Apache incluye un archivo Virtual Host por defecto denominado 000-default.conf que podemos usar como base. Realizaremos una copia para trabajar sobre ella y crear nuestro Virtual Host para cada dominio. Iniciaremos con un dominio, lo configuraremos y luego copialo lo copiaremos para el segundo dominio, después realizamos los ajustes necesarios.
La configuración por defecto de Ubuntu requiere que cada archivo de configuración de Virtual Host termine en .conf.
Crear el Archivo Virtual Host
Empezemos por copiar el archivo para el primer dominio:
1
| sudo cp /etc/apache2/sites-available/000-default .conf /etc/apache2/sites-available/ejemplo .uci.cu.conf |
Abre el nuevo archivo con tu editor como usuario root y eliminamos todos los comentarios que existen dentro del mismo, deberÃa quedar asÃ:
1
2
3
4
5
6
|
ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
|
Como podemos ver, no hay mucho aquÃ. Personalizaremos los datos aquà para nuestro primer dominio y agregaremos algunas directivas adicionales. Esta sección del Virtual Host coincide cualquier peticion que es solicitada al puerto 80, el puerto por defecto de HTTP.
Primero, necesitamos cambiar la directiva ServerAdmin por un correo del administrador del sitio que pueda recibir correos.
Primero, necesitamos cambiar la directiva ServerAdmin por un correo del administrador del sitio que pueda recibir correos.
1
| ServerAdmin admin@ejemplo.uci.cu |
Después de esto, necesitamos agregar dos directivas. La primera llamada ServerName , que establece la base del dominio que debe coincidir para este Virtual Host. Esto será como tu dominio. La segunda, llamada ServerAlias, determina nombres futuros que pueden coincidir y servirse como el nombre base o dominio principal.
1
2
| ServerName ejemplo.uci.cu ServerAlias www.ejemplo.uci.cu |
Lo que resta por cambiar para la configuración básica de un Virtual Host es la ubicación del directorio raÃz para el dominio. Ya hemos creado lo que necesitamos, asà que solo necesitamos modificar DocumentRoot para apuntarlo al directorio que hemos creado:
1
| DocumentRoot /var/www/html/ejemplo.uci.cu/public_html |
En total, nuestro archivo de Virtual Host debe verse asÃ:
1
2
3
4
5
6
7
8
|
ServerAdmin admin@ejemplo.uci.cu ServerName ejemplo.uci.cu ServerAlias www.ejemplo.uci.cu DocumentRoot /var/www/html/ejemplo.uci.cu/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
|
Guarda y cierra el archivo.
Copia el primer Archivo Virtual Host y cámbialo para el Segundo Dominio
Ahora que tenemos nuestro primer archivo Virtual Host configurado, podemos crear el segundo copiando el primero y realizando los cambios necesarios.
Empecemos por copiarlo:
Empecemos por copiarlo:
1
| sudo cp /etc/apache2/sites-available/ejemplo .uci.cu.conf /etc/apache2/sites-available/ejemplo .xetid.cu.conf |
Abre el nuevo archivo con privilegios root en tu editor:
1
| sudo nano /etc/apache2/sites-available/ejemplo .xetid.cu.conf |
Ahora tenemos que modificar todas las piezas de información para referirnos al segundo dominio. Cuando hayas terminado, deberá verse algo asÃ:
1
2
3
4
5
6
7
8
|
ServerAdmin admin@ejemplo.xetid.cu ServerName ejemplo.xetid.cu ServerAlias www.ejemplo.xetid.cu DocumentRoot /var/www/html/ejemplo.xetid.cu/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
|
Guarda y cierra al concluir.
Paso Cinco — Habilita los nuevos Archivos Virtual Host
Ahora que hemos creado nuestros archivos virtual hosts, debemos habilitarlos. Apache incluye herramientas que nos permiten hacer esto.
Podemos usar la herramienta a2ensite para habilitar cada uno de nuestros sitios haciendo esto:
Podemos usar la herramienta a2ensite para habilitar cada uno de nuestros sitios haciendo esto:
1
2
| sudo a2ensite ejemplo.uci.cu.conf sudo a2ensite ejemplo.xetid.cu.conf |
Cuando hayas concluido, deberás reiniciar Apache para asegurarte de que tus cambios surtan efecto:
1
| sudo service apache2 restart |
Paso Seis — Configura Archivos Locales
Como nuestros dominios no están registrados en un servidor DNS, debemos adicionarlos en nuestro fichero hostspara que nuestro sistema los asocie a nuestra dirección ip. Para esto editamos el archivo medianto la orden:
1
| sudo nano /etc/hosts |
Los detalles que necesitas agregar son la IP de nuestra computadora, en este caso localhost; seguido del dominio que deseas apuntar a la misma.
1
2
3
4
5
| 127.0.0.1 localhost 127.0.0.1 mysginf.xetid.cu 127.0.0.1 ejemplo.xetid.cu 127.0.0.1 ejemplo.uci.cu 127.0.1.1 L-06582 |
Esto apuntará directamente cualquier petición para ejemplo.uci.cu y ejemplo.xetid.cu en nuestra computadora y enviarlas a nuestro servidor en 127.0.0.1.
Guardamos y cerramos el archivo.
Guardamos y cerramos el archivo.
Paso Siete — Prueba tus resultados
Ahora que tenemos nuestros Virtual Hosts configurados, podemos realizar pruebas de configuración simplemente visitando el dominio que hemos configurado mediante nuestro navegador web, accediendo a la url:http://ejemplo.uci.cu/, deberás ver algo como esto:
Mientras que en la ruta: http://ejemplo.xetid.cu/
Espero que les sea de ayuda.
Creando virtualhosts en Apache
Reviewed by PDFREEBOOK
on
9:45
Rating:
Post a Comment