Contents

Instalación y configuración del cliente RSS Selfoss (Parte 1): lighttpd como servidor Web

En este nuevo tutorial vamos a ver cómo instalar un el cliente Selfoss RSS autoalojado (aunque Selfoss es mucho más que eso) para reemplazar a servicios de terceros. Para el tutorial he elegido instalar Selfoss puesto que dentro de las alternativas existentes parece ser la que mejor rendimiento da en entornos con bajos recursos.

Este tutorial ha sido desarrollado sobre una Raspberry Pi con Raspbian instalado, por lo que debería ser idéntico para Debian y muy fácil de seguir en cualquier otra distribución en la que queramos aplicarlo.

/wp-content/uploads/2013/07/selfoss.png
Logo Selfoss

Índice de tutoriales:

  1. Lighttpd como servidor Web.
  2. Instalando Selfoss.

Acerca de Selfoss

Selfoss se trata de un cliente web RSS autoalojado con un funcionamiento similar a los Google Reader, Feedly y similares. La gran virtud de Selfoss es que a diferencia de estos este proyecto te permite tener control de la información que manejamos. Si además te gusta cacharrear aún tienes más motivos para darle una oportunidad.

Si nos dirigimos a la página web del proyecto podemos ver las características que nos ofrece. Estas son algunas de ellas:

  • Código abierto.
  • Soporte para dispositivos móviles.
  • Aplicación ligera.
  • Soporta varios tipos de base de datos.
  • Permite importar fuentes desde OPML

Requisitos

Los requisitos para tener Selfoss corriendo en nuestro propio servidor son los siguientes:

  • Evidentemente un servidor corriendo GNU/Linux y siempre encendido.
  • Acceso externo a nuestro servidor, ya sea con un dominio propio o con el uso de algún servicio de DNS dinámico.
  • PHP 5.3 o superior.
  • Servidor de base de datos MySQL, PostgreSQL o SQLite.
  • Servidor web Apache, Ngnix o Lighttpd.

Instalar lighttpd como servidor web para Selfoss

Selfoss nos permite varias opciones, tanto de servidor Web como de servidor de base de datos. En nuestra mano está instalar el que más se adecúe a nuestras necesidades o con el que nos sintamos más a gusto. En el caso de este tutorial se va a instalar Lighttpd y SQLite, por ofrecer una alternativa ligera a la combinación Apache + MySQL que se adecuará al limitado hardware de la Raspberry Pi.

Así que lo primero va a ser instalar Lighttpd, PHP5 y los módulos necesarios con nuestro gestor de paquetes. En el caso de Raspbian (basado en Debian) usaremos APT:

1
$ sudo apt-get install lighttpd php5 php5-cgi php5-cli php5-sqlite php5-gd

Una vez realizado el proceso podemos abrir nuestro navegador favorito, introducir la IP de nuestro servidor y comprobar que el servidor está funcionando y mostrando una página como esta:

/wp-content/uploads/2013/07/bienvenida_lighttpd.png
Bienvenida Lighttpd

Entendiendo un poco el funcionamiento de lighttpd

Cierto que podría poner una lista de comando a ejecutar uno detrás del otro sin pensar, y si es lo que te interesa puedes pasar directamente al siguiente punto, pero veo necesario conocer un poco de los servicios que instalamos en nuestras máquinas, aunque esta sea para uso exclusivamente personal. Si hemos comprobado la disponibilidad del servidor web podemos encontrarnos ya con información interesante:

  • El archivo de configuración principal es: /etc/lighttpd/lighttpd.conf.
  • Por defecto en Debian el Document Root se encuentra en: /var/www.
  • Por defecto los logs se encuentran en: /var/log/lighttpd, y son rotados semanalmente.

Adicionalmente es conveniente saber que:

  • Las configuraciones adicionales disponibles se encuentran en /etc/lighttpd/conf-available/.
  • Las configuraciones adicionales habilitadas se encuentran en /etc/lighttpd/conf-enabled/.
  • Podemos habilitar una configuración disponible mediante el comando lighttpd-enable-mod nombremod que creará un enlace simbólico en la carpeta conf-enabled apuntando al archivo correspondiente de conf-available.
  • Podemos deshabilitar configuraciones adicionales con lighttpd-disable-mod nombremod.

Configurar lighttpd para Selfoss

Lo primero que debemos es habilitar PHP en nuestro servidor lighttpd. Para ello, como hemos visto en el anterior apartado deberemos valernos de lighttpd-enable-mod para tal cometido:

1
$ sudo lighttpd-enable-mod fastcgi fastcgi-php

Cuya salida nos indicará que los cambios se han realizado correctamente y que para aplicarlos deberemos ejecutar:

1
$ sudo /etc/init.d/lighttpd force-reload

Si queremos asegurarnos de que el módulo de PHP está funcionando podemos crear un archivo info.php en /var/www/ con este contenido:

1
2
3
<?php
phpinfo();
?>

Que nos cargará la información sobre PHP en el servidor. Editamos el archivo de configuración /etc/lighttpd/lighttpd.conf descomentando la línea “mod_rewrite”, y añadiendo lo siguiente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
url.rewrite-once += (
"^/selfoss/favicon.ico$" => "/selfoss/public/favicon.ico",
"^/selfoss/favicons/(.*)$" => "/selfoss/data/favicons/$1",
"^/selfoss/thumbnails/(.*)$" => "/selfoss/data/thumbnails/$1",
"^/selfoss/(.*.(js|ico|gif|jpg|png|css|asc|txt|eot|woff|ttf|svg))$" => "/selfoss/public/$1",
"^/selfoss/index.php(.*)$" => "$0",
"^/selfoss/([^?]*)(?(.*))?" => "/selfoss/index.php?$3",
"^/selfoss/public/" => "$0",
"^/selfoss/(.*)" => "/selfoss/index.php$1"
)

Podemos asegurarnos que la sintaxis del archivo es correcta con:

1
$ lighttpd -t -f lighttpd.conf

Posteriormente editamos el archivo /etc/php5/cgi/php.ini y editamos esta línea:

1
max_execution_time = 60

Accediendo a lighttpd desde el exterior

Para conseguir acceder a la aplicación, como siempre, deberemos abrir el puerto correspondiente en nuestro router. Por defecto en lighttpd se usará el puerto 80 para servir aplicaciones web, pero esto es fácilmente cambiable desde el archivo de configuración de este (/etc/lighttpd/lighttpd.conf) desde la opción:

1
server.port = 80

Adicionalmente si queréis ver como acceder a nuestro servidor desde el exterior podéis consultar este tutorial.

Hasta aquí la parte de instalación y configuración de los requisitos de Selfoss. En la segunda parte del tutorial veremos cómo instalar la aplicación en nuestro servidor y entenderemos las posibilidades de configuración que nos ofrece.