¡De nuevo por aquí, Colegas! Y hoy con la segunda parte y final sobre el Lighty, como también denominan al Lighttpd. Seguro leyeron el primer post sobre él. Por tanto entremos de a lleno en el único tópico de ésta entrega: ¿Cómo publicar dos sitios web diferentes en una misma IP mediante hosts virtuales?

 

light_logo

 

Siguiendo las recomendaciones de la documentación, después de instalado el Lighty, podemos llevar a cabo la tarea en un orden determinado, el cual no necesariamente tendrá que ser el indicado en este post. Ok?. Nosotros empezaremos con la creación de los directorios y el copiado o enlazado de la documentación a publicar con los directorios en cuestión. Posteriormente, haremos los cambios necesarios en el archivo /etc/lighttpd/lighttpd.conf; habilitaremos el módulo “mod_simple_vhost”; reiniciaremos el servidor; y por último comprobaremos su funcionamiento.

sitio-web

Documentación sobre el Lighty descargada de Internet

Aunque corta, la ayuda de la documentación del paquete lighttpd-doc es suficiente para enfrentar mayores retos mediante el Lighty. No obstante un colega y amigo mío me descargó parte de la documentación del sitio http://redmine.lighttpd.net/projects/1/wiki/Docs, la cual pongo a disposición de ustedes. Aquellos que necesiten más funcionalidades, podrán lograrlas mediante la lectura de la documentación acompañante y de las páginas descargadas.

[Descarga no encontrada]

A propósito, a la documentación bajada de Internet, le quité un poco de ruido innecesario, sobre todo al comienzo de cada página, tarea ejecutada con la ayuda de mi amigo Composer. 😉 Por favor, lean la documentación con calma y detalladamente. Y está en inglés, escollo que encontraremos muchas veces los que nos dedicamos a la informática, y por tanto debemos aprender al menos a leerla. No hay más remedio.

En la ayuda descargada encontrarán otras formas de declarar hosts virtuales y un millón de cosas muy interesantes. No pretendemos ni por asomo sustituir ese material con éste post.

Consideraciones:

Nombre del dominio: amigos.cu
Dirección IP del hosts: 192.168.10.20
Nombre del host: web.amigos.cu
Nombre del sitio principal: web.amigos.cu
Nombre del sitio para la documentación: docs.amigos.cu
Contenido del sitio principal: Linux Freakes (sitio imaginario)
Contenido del sitio de la documentación: Debian Reference en inglés y en español
Ambos sitios son Estáticos o con muy poco cambio en el tiempo.

Creación de directorios de trabajo y preparación de contenidos

Por defecto se crea el directorio /var/www cuando se instala el Lighttpd. Precisamente dentro de él crearemos los nuestros, logeados como el usuario root para no repetir tantas veces el comando sudo:

mkdir /var/www/servers
mkdir /var/www/servers/web.amigos.cu
mkdir /var/www/servers/web.amigos.cu/pages
mkdir /var/www/servers/docs.amigos.cu
mkdir /var/www/servers/docs.amigos.cu/pages

Observemos que hemos seguido fielmente la recomendación de la ayuda. Los nombres de las carpetas corresponden a los nombres de los host virtuales, y es imprescindible que se haga así para que funcione correctamente el servidor. Por supuesto que, dentro del directorio web.amigos.cu/pages colocaremos el contenido del sitio imaginario Linux Freakes, mientras que dentro del directorio docs.amigos.cu/pages, crearemos un enlace simbólico a la documentación de los paquetes de debian-reference una vez instalados. También es posible copiar o mover hacia el último directorio todo el contenido de debian-reference. Todo dependerá del espacio libre en disco duro que tengamos en la partición donde está el directorio /var/www. Estas consideraciones las debemos tener muy en cuenta cuando vamos a particionar él o los discos duros de nuestro servidor web.

Para instalar los paquetes de las Referencias sobre Debian, lo hacemos mediante el conocido comando:

aptitude install debian-reference-en debian-reference-es

y las páginas las podemos encontrar en /usr/share/doc/debian-reference-common/html.

El contenido de su sitio web lo copian hacia /var/ww/servers/web.amigos.cu/pages/ de la forma que quieran, pero recuerden que necesitan permisos de escritura de root para hacerlo. Y para los Novatos, recuerden que la página inicial deberá tener por nombre index.html.

El enlace simbólico de la carpeta de las Referencias lo creamos mediante:

ln -sf /usr/share/doc/debian-reference-common/html/ /var/www/servers/docs.amigos.cu/pages

Propietario y permisos de los directorios de trabajo

Hasta aquí parece que tenemos todo Ok en cuanto a directorios y contenidos se refiere. Sin embargo, debemos tener en cuenta algunos aspectos que en más de una ocasión -sobre todo por apurados- nos han mordido y nos han hecho perder tiempo en buscar ¿donde está el problema?. Esos aspectos son, el Propietario de los Directorios y los Permisos. Y aquí le insistimos a los Nuevos una vez más que Siempre vayan de lo Sencillo a lo Complejo. Guerra avisada no debe matar soldados.

Cuando instalamos un servidor web en Debian, generalmente se crea el usuario y el grupo www-data. Como su nombre ya nos indica, se encarga de los datos de lo que publiquemos en la web, sea en una LAN o en Internet. Es saludable hacerlo propietario de los directorios y archivos del contenido web siempre y cuando se indique en las ayudas de los servidores y marcos de trabajo (framework) que decidamos emplear. En nuestro caso no será obligatoriamente necesario para el correcto funcionamiento, pues se trata de sitios de sólo lectura básicamente. Cuando se requiere escribir en directorios publicados, otro gallo es el que canta.

Con los permisos sucede otro tanto. Si no damos los permisos adecuados sobre nuestro contenido web a TODOS, no podremos visitar las páginas, incluso desde el localhost, y el navegador nos mostrará el archiconocido 403 – Forbidden, en el peor de los casos, o no se nos mostrarán correctamente las imágenes asociadas a las páginas. Un imagen, sin permiso de lectura y ejecución no se muestra correctamente. Por tanto, como mínimo debemos hacer a todo nuestro contenido Estático y en este ejemplo:

chmod -R +r /var/www/servers/

En programas como WordPress o Drupal o Jomla, los permisos son diferentes, ya que el contenido se maneja de manera distinta, sobre todo por problemas de Seguridad. Ok?.

Y si tenemos todas nuestras imágenes en un directorio images, lo cual es lo recomendado canónicamente hablando:

chmod -R +x /var/www/servers/web.amigos.cu/pages/images/

y Voalá, se nos mostrará correctamente todo el contenido. ¡Nuevos!, practiquen ustedes mismos y verán.

Modificaciones al archivo /etc/lighttpd/lighttpd.conf

Debemos agregar el módulo mod_simple_vhost al inicio donde se declaran los módulos; y al final agregar la declaración de nuestros sitios web .amigos.cudocs.amigos.cu:

server.modules = (
"mod_simple_vhost",
"mod_access",
"mod_alias",
-------
-------
-------
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"$HTTP["host"] == "web.amigos.cu" {
simple-vhost.server-root = "/var/www/servers/"
simple-vhost.default-host = "web.amigos.cu"
simple-vhost.document-root = "pages"
}$HTTP["host"] == "docs.amigos.cu" {
simple-vhost.server-root = "/var/www/servers/"
simple-vhost.default-host = "docs.amigos.cu"
simple-vhost.document-root = "pages/html"
}

Habilitar el módulo mod_simple_vhost y reinicio del servidor

Para habilitar el módulo ejecutamos como el usuario root:

lighty-enable-mod simple_vhost

Y para que los cambios realizados se tomen en consideración:

/etc/init.d/lighttpd force-reload

Abran su navegador y tecleen las direcciones de los nuevos sitios creados y publicados para comprobar lo que hemos configurado hasta ahora. ¿No se encuentra el o los sitios?. Uhmmmm!

Sí todo lo hemos hecho correctamente hasta ahora, y no encontramos los sitios, una de las causas fundamentales se debe a que ¡No hemos declarado en ningún lugar la relación entre la dirección IP de nuestro host y la de los nombres de los hosts virtuales creados!

Y ese será el tema de nuestro próximo post. Nociones sobre el DNS.

¡Hasta la próxima aventura, Amigos!