Suite de l’installation du serveur (cf mon précédent article)…
Après avoir installé le système, on va installer tiny tiny rss, un lecteur de flux rss en php.
Préparation
Pour commencer, on va créer la base de donnée.
Tout d’abord, on se connecte à MySQL :
mysql -u root -p
On crée ensuite un utilisateur avec les droits nécessaires et la base de données :
CREATE USER ‘ttrss’@’localhost’ IDENTIFIED BY ‘XXXXXX’;
CREATE DATABASE ttrss;
GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,DROP,CREATE ON ttrss.* TO ‘ttrss’@’localhost’;
FLUSH PRIVILEGES;
Installation
On peut maintenant passer à l’installation proprement dite.
On récupère l’archive de la dernière version de tiny tiny rss (la 1.2.28 au moment où j’écris ceci) et on l’extrait :
wget http://tt-rss.org/download/tt-rss-1.2.28.tar.gz
tar -xvf tt-rss-1.2.28.tar.gz
On le met ensuite en place :
mv tt-rss-1.2.28 /var/www/tt-rss
Puis on alimente la base de donnée :
mysql -u ttrss -p ttrss < /var/www/tt-rss/schema/ttrss_schema_mysql.sql
On peut maintenant se reconnecter à MySQL pour limiter les droits de l’utilisateur ttrss :
REVOKE INDEX,DROP,CREATE ON ttrss.* FROM ‘ttrss’@’localhost’;
FLUSH PRIVILEGES;
Pour finir, il faut configurer lighttpd en ajoutant ceci au fichier /etc/lighttpd/lighttpd.conf :
# 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/www/tt-rss/ » )
# configure la gestion du cgi
$HTTP[« url »] =~ « ^/rss/ » {
cgi.assign = ( « .php » => « /usr/lib/cgi-bin/php5 »)
}
# redirection (rajoute le slash final au lieu de faire une erreur)
url.redirect = ( « ^/rss$ » => « /rss/ » )
Pour la redirection, il ne faut pas oublier de décommenter la ligne « mod_redirect », dans les server.modules
Il ne reste plus qu’à recharger la configuration de lighttpd :
/etc/init.d/lighttpd force-reload
Mise à jour des flux
On a maintenant un lecteur de flux opérationnel, mais on doit encore paramétrer la mise à jour automatique des flux.
Avant tout, on récupère les scripts nécessaires :
wget http://tt-rss.org/trac/attachment/wiki/UpdatingFeeds/tt-rss.default?format=raw
wget http://tt-rss.org/trac/attachment/wiki/UpdatingFeeds/tt-rss.initd?format=raw
On les place ensuite au bon endroit :
mv tt-rss.default\?format\=raw /etc/default/tt-rss
mv tt-rss.initd\?format\=raw /etc/init.d/tt-rss
On rend le script exécutable et on active le démon au démarrage du système :
chmod +x /etc/init.d/tt-rss
update-rc.d tt-rss defaults
Il faut aussi activer le démon dans le fichier config.php :
define(‘ENABLE_UPDATE_DAEMON’, true);
Et voilà, on peut maintenant lancer le démon :
/etc/init.d/tt-rss start
Si comme moi, vous avez un problème avec la fonction pcntl_signal, vous pouvez commenter les lignes suivantes dans le fichier update_daemon.php :
pcntl_signal(SIGINT, sigint_handler);
pcntl_signal(SIGALRM, sigalrm_handler);
Contrôle d’accès
Pour ajouter un contrôle d’accès, il y a deux solutions :
- soit gérer les accès au niveau de tiny tiny rss, via l’option ‘SINGLE_USER_MODE’ du fichier config.php
- soit gérer les accès au niveau de lighttpd. C’est cette solution que je vais détailler.
Nous allons utiliser htdigest. Pour cela nous devons installer le paquet apache2-utils :
aptitude install apache2-utils
Afin de faciliter la gestion des mots de passes, nous allons utiliser le script suivant :
#!/bin/sh
user=$1
realm=$2
pass=$3
hash=`echo -n « $user:$realm:$pass » | md5sum | cut -b -32`
echo « $user:$realm:$hash »
Ce script s’utilise comme ceci :
htdigest.sh user ttrss xxxxxx >> /etc/lighttpd/users.htdigest
Il ne reste plus qu’à modifier le fichier /etc/lighttpd/lighttpd.conf en ajoutant la ligne « mod_redirect », dans les server.modules puis en complétant la configuration pour tiny tiny rss :
# contrôle d’accès
auth.debug = 2
auth.backend = « htdigest »
auth.backend.htdigest.userfile = « /etc/lighttpd/users.htdigest »
auth.require = ( « /rss/ » =>
( « method » => « digest »,
« realm » => « ttrss »,
« require » => « valid-user »
)
)
Et voilà, plus qu’à recharger la configuration et c’est parti !