Installation de tiny tiny rss

Pour gérer mes flux rss, j'ai décidé d'installer tiny tiny rss sur mon ordinateur. Il s'agit d'un service web qui tournera en local. Comme j'ai trouvé la procédure d'installation un peu succincte, j'ai décidé de noter ma procédure par écrit, tout d'abord pour m'en souvenir si je dois la refaire, et ensuite, parce qu'elle pourrait être utile à d'autres personnes.

Ma configuration est:

Si votre configuration est différente, toutes les étapes ne seront pas forcément identiques.
La version installée de tiny tiny rss est la 1.2.24.

création d'un utilisateur système:

On va créer un utilisateur système et un groupe associé. Cette étape n'est pas strictement nécessaire. On choisit le dossier /var/lib/ttrss/ comme répertoire de base, mais d'autres choix sont possibles, comme par exemple, /var/www/ttrss

# addgroup --system ttrss
# adduser --system --home /var/lib/ttrss --shell /bin/sh --ingroup ttrss ttrss

On place ensuite les fichiers de tiny tiny rss dans ce dossier

# su ttrss
$ tar zxf tt-rss-1.2.24.tar.gz
$ cp -a tt-rss-1.2.24/* ~/

installation de la base sql

Je considère qu'avant de commencer cette étape, vous disposez d'un serveur mysql installé et fonctionnel. Si ce n'est pas le cas, occupez-vous en d'abord.

On va commencer par créer un utilisateur sql, et lui attribuer les droits nécessaires pour que tiny tiny rss puisse fonctionner. On se connecte à la base sql avec les droits suffisants (avec l'utilisateur root par exemple), puis on exécute les commandes suivantes, (en remplaçant XXXXXX par un bon mot de passe):

 mysql> CREATE USER 'ttrss'@'localhost' IDENTIFIED BY 'XXXXXX';
 mysql> CREATE DATABASE ttrss;
 mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON ttrss.* TO 'ttrss'@'localhost';
 mysql> FLUSH PRIVILEGES;

On accorde également des privilèges temporaires qui ne serviront que pour l'installation:

 mysql> GRANT INDEX,DROP,CREATE ON ttrss.* TO 'ttrss'@'localhost';
 mysql> FLUSH PRIVILEGES;

Ensuite, on initialise la base de données:

 $ mysql -u ttrss -p ttrss < schema/ttrss_schema_mysql.sql

Puis, on se reconnecte à mysql, pour supprimer les privilèges temporaires:

 mysql> REVOKE INDEX,DROP,CREATE ON ttrss.* FROM 'ttrss'@'localhost';
 mysql> FLUSH PRIVILEGES;

configuration de lighttpd:

Je considère qu'avant de commencer cette étape, vous disposez d'un serveur lighttpd installé et fonctionnel. Si ce n'est pas le cas, occupez-vous en d'abord.

On va maintenant configurer lighttpd pour qu'il sache où se trouvent les fichiers de tiny title rss. Nous voulons que tiny title rss soit accessible via l'url http://localhost/rss/. On édite donc le fichier /etc/lighttpd/lighttpd.conf pour y rajouter les lignes suivantes:

# active mod_cgi si ce n'est pas déjà fait.
 server.modules  += ( "mod_cgi" )
# redirige /rss/ vers le bon répertoire
 alias.url += ( "/rss/" => "/var/lib/ttrss/" )
# configure la gestion du cgi
 $HTTP["url"] =~ "^/rss/" {
    cgi.assign = ( ".php" => "/usr/lib/cgi-bin/php5")
 }
# redirige http://localhost/rss vers http://localhost/rss/ 
# (rajoute le slash final au lieu de faire une erreur)
 url.redirect                = ( "^/rss$" => "/rss/" )

Puis, on n'oublie pas de relancer lighttpd:

# /etc/init.d/lighttpd restart

Configuration finale de tiny tiny rss

Dans /var/lib/ttrss, on copie config.php-dist vers config.php, et on édite ce fichier pour y rentrer les paramètres de la base de donnée:

 define('DB_TYPE', "mysql");
 define('DB_HOST', "localhost");
 define('DB_USER', "ttrss");
 define('DB_NAME', "ttrss");
 define('DB_PASS', "XXXXXX");

On peut également définir d'autres réglages dans ce fichier si on le souhaite.

Enfin, on peut rendre le dossier icons/ (dans /var/lib/ttrss) accessible en écriture afin que lighttpd puisse y stocker les favicons de nos flux rss.

 $ chmod og+w icons/

c'est bon, on peut maintenant utiliser tiny title rss en pointant un navigateur à l'adress http://localhost/rss/tt-rss.php.