miércoles, 17 de abril de 2013

Configurar sitios virtuales e implementar Web Hosting en Apache 2 bajo GNU/Linux CentOS 6.4

Si queremos alojar mas de un website en nuestro servidor Web necesitamos configurar hosts virtuales dentro de Apache (httpd). Cada uno de los VirtualHost es independiente del otro. Lo mas común es que cada sitio sea gestionado por un usuario diferente.
Siguiendo esa lógica creemos un usuario al que se le asignará nuestro sitio.

# useradd vhuser01 -s /sbin/nologin
# passwd vhuser01


Dentro de la carpeta personal de vhuser01 adicionemos un directorio denominado public_html

# mkdir /home/vhuser01/public_html
# chown vhuser01.vhuser01 /home/vhuser01/public_html
# chmod 755 /home/vhuser01/public_html
# chmod 755 /home/vhuser01


Ahora que tenemos el directorio base es hora de configurar httpd. Primero realizamos una copia de seguridad a nuestro archivos de configuración:

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.back

Abrimos el archivo httpd.conf

# vi /etc/httpd/conf/httpd.conf

Y buscamos las siguientes lineas comentadas:

#NameVirtualHost *:80

#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


Descomentamos esas sentencias y realizamos las modificaciones pertinentes:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@initwebsite.com
    DocumentRoot /home/vhuser01/public_html
    ServerName initwebsite.com
    ServerAlias www.initwebsite.com
</VirtualHost>


En esencia, la configuración anterior nos indica donde almacenaremos nuestras páginas web (/home/vhuser01/public_html), el nombre de nuestro dominio (initwebsite.com) y el puerto de escucha para nuestro sitio (80).
Por defecto, SElinux bloquea todo intento de acceso a los directorios personales. Por eso ahora debemos permitir que httpd pueda leer archivos del directorio personal

# setsebool -P httpd_enable_homedirs 1

Para que nuestro dominio "initwebsite.com" sea traducido a una dirección IP  necesitaremos añadir este dominio a nuestro cliente web.

Modifiquemos el archivo hosts:

# vi /etc/hosts

192.168.40.24   www.initwebsite.com


Y por fin podemos ejecutar nuestro navegador web favorito y colocar la URL initwebsite.com para ver nuestro sitio.

Pagina de inicio por defecto de httpd centos 6.4 - host virtuales - webhosting

Si te gustó esta publicación no olvides compartirlo. Espero sus comentarios.



1 comentario:

  1. Saludos.
    Realice el procedimiento pero siempre me direcciona a xx.xx.xx.xx/cgi-sys/defaultwebpage.cgi

    como puedo solucionarlo?
    Gracias

    ResponderEliminar