Host Virtuales en FreeBSD

Antes de crea un Host Virtual, debe configurar un dominio que hará uso de este, por lo tanto, es recomendable ver el siguiente articulo: Configurar un Dominio en FreeBSD.

El término Hosting Virtual se refiere a hacer funcionar más de un sitio web (tales como www.company1.com y www.company2.com) en una sola máquina. Los sitios web virtuales pueden estar "basados en direcciones IP", lo que significa que cada sitio web tiene una dirección IP diferente, o "basados en nombres diferentes", lo que significa que con una sola dirección IP están funcionando sitios web con diferentes nombres (de dominio). El hecho de que estén funcionando en la misma máquina física pasa completamente desapercibido para el usuario que visita esos sitios web. (Fuente: Apache)

Ejemplo:
www.google.cl, www.yahoo.com, www.uct.cl, etc. en el mismo servidor.

Lo que primero que debemos hacer es crear un usuario (para este caso llamado "dominio3", con password "dominio123") que será propietario de los archivos que componen el sitio Web del dominio: "www.ciocomcris.org".

# adduser dominio3

Después se debe modificar el archivo "/etc/group", para que el usuario "dominio3" pertenezca al grupo "www", que es el administrador de los servicios de Apache:

# vim /etc/group

... buscamos la linea "www:*:80" y la dejamos así: "www:*:80:dominio3" (no incluir las comillas)

Luego nos logueamos como usuario3 y creamos en nuestro home el directorio "public_html":

# su - dominio3
$ mkdir /home/dominio3/public_html

Es importante que el directorio que acabamos de crear, pertenezca al grupo "www", y que este grupo pueda escribir en el directorio "public_html", así Apache puede trabajar en este sin contratiempos. Antes debemos volver a ser root.

$ exit
# cd /home/dominio3
# chgrp www public_html
# chmod g+w public_html/

Luego en "public_html", creamos un archivo llamado index.html o index.php como ejemplo, para probar si realmente el dominio www.ciocomcris.org funciona correctamente.

#vim /home/dominio3/public_html/index.php
<?php
echo "esto es del dominio www.ciocomcris.org, que pertenece al usuario dominio3"
?>

Enseguida se debe activar el acceso al archivo de configuración de Host Virtuales, descomentando las siguientes lineas en "usr/local/etc/apache22/httpd.conf".

# cd /usr/local/etc/apache22
# vim httpd.conf
Include etc/apache22/extra/httpd-vhosts.conf
Include etc/apache22/extra/httpd-userdir.conf

Luego configurar el archivo "httpd-vhosts.conf" para definir donde quedaran los virtualhost que estarán en Apache.

# cd /usr/local/etc/apache22/extra
# vim httpd-vhosts.conf

El archivo "httpd-vhosts.conf" debe contener las siguientes lineas, donde se configura el dominio "www.ciocomcris.org", asociado con "public_html" del usuario "dominio3" (DocumentRoot "/home/dominio3/public_html")

<VirtualHost *:80>
ServerAdmin webmaster@ciocomcris.org
DocumentRoot "/home/dominio3/public_html"
ServerName www.ciocomcris.org
# ServerAlias www.dummy-host.example.com
ErrorLog "/var/log/apache/www.ciocomcris.org.error_log"
CustomLog "/var/log/apache/www.ciocomcris.org-access_log" common
</VirtualHost>

En las lineas que comienzan con "ErrorLog" y "CustomLog", se definen los archivos que guardaran los log, de error o acceso al sitio "www.ciocomcris.org". Por lo tanto en "/var/log" se debe crear un directorio llamado "apache", con dos archivos llamados "www.ciocomcris.org.error_log" y "www.ciocomcris.org-access_log", cuyo propietario es usuario "www" (usuario asociado a Apache en FreeBSD).

# cd /var/log
# mkdir apache
# cd apache
# vim www.ciocomcris.org.error_log
# vim www.ciocomcris.org-access_log
# chown -Rf www:www /var/log/apache/

Finalmente se debe reiniciar Apache, para que los cambios surjan efecto.
# apachectl restart

Luego accedemos al sitio "www.ciocomcris.org", donde debe aparecer el mensaje: esto es del dominio www.ciocomcris.org, que pertenece al usuario dominio3

# lynk www.ciocomcris.org


Puede que lo anterior no funcione, porque no tienes configurado el dominio "www.ciocomcris.org", para lo cual recomiendo ver el siguiente artículo: Configurar un Dominio en FreeBSD.

Asegurate que en "/etc/resolv.conf", tengas como servidor DNS la ip del computador donde configuraste el dominio, en mi caso era la ip "192.168.7.58".

También puede que tengas problemas de permisos, por lo tanto tendrás que revisar los log:
# vim /var/log/apache/www.ciocomcris.org.error_log
# vim /var/log/apache/www.ciocomcris.org-access_log

Comentarios

Entradas populares de este blog

Configurar un Dominio en FreeBSD

Servidor DNS en FreeBSD

Unix shell scripting: Full Log