Archivo

miércoles, 30 de octubre de 2013

Virtual Hosts con Apache2



Debido a muchas dudas en cuanto a servidores virtuales (configuraciones) en Apache, escribo este post rapidito, para mostrar la forma "correcta" de hacerlo.

He visto muchas veces (yo tmb lo hacia) que al momento de desarrollar un site, tenemos la costubre de colgar todos los proyectos en un directorio similar a este:

/home/usrprogramador/www/site1
/home/usrprogramador/www/site2
/home/usrprogramador/www/site3

y crear un link simbolico en /var/www, para asi poder llegar, mediante el navegador a los diferentes proyectos con que estemos trabajando de esta manera

http://localhost/www/site1
http://localhost/www/site2

Esto es totalmente funcional pero, lo correcto seria hacerlo utilizando hosts virtuales, o sea, usar diferentes nombres de dominio utilizando una unica direccion IP, y de esta manera navegar por los mismos se haria de la siguiente forma:

http://www.site1.com
http://www.site2.com
http://www.site3.com

Bueno, vamos paso a paso (cuatro para ser exactos =)


Paso 1: /etc/hosts
En este archivo crearemos tantos nombres de dominio como necesitemos utilizando la misma direccion IP, p.e.
127.0.0.1 localhost
127.0.0.1 www.site1.com
127.0.0.1 www.site2.com


Paso 2: /var/www/
Creamos un directorio por cada site

# mkdir -p site1/public_html
# mkdir -p site2/public_html

le asignamos al usuario que corresponda y con los permisos suficientes

# chown -R usrprogramador site1/public_html/
# chmod -R 755 site1/


Paso 3: /etc/apache2/sites-available/
Aqui vamos a escribir nuestro archivo de configuracion para los sites; y para ahorrarnos tiempo copiamos el que se encuentra por defecto:

# cp default site1

editamos el archivo recien copiado y debajo de la linea ServerAdmin, agregamos

ServerName site1
ServerAlias www.site1.com

y modificamos DocumentRoot por la direccion correcta 

DocumentRoot /var/www/site1/public_html

Ahora solo resta habilitar nuestro host virtual en apache

# a2ensite site1

Paso 4: Reiniciar Apache
Y aqui, volvemos a lo mismo, conozco gente que tienen la mala costumbre de matar el proceso (killall apache2) y levantarlo manualmente, si bien esto tambien es funcional, lo correcto seria hacerlo de esta manera:

# service apache2 restart

Bueno, espero no haberme liado demasiado, ni haber omitido algun paso, de todas formas si encuentran errores sientanse libre de corregirme, y asi aprendemos todos :)



Para más información:

http://httpd.apache.org/docs/2.2/vhosts/
https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

No hay comentarios: