Installer Tiny Tiny RSS sur Debian
Tiny Tiny RSS est un agrégateur de flux de syndication écrit en PHP et tirant parti des technologies AJAX. C'est une solution adéquate si vous souhaitez lire vos flux RSS depuis plusieurs ordinateurs. Je suis tombé dessus car l'un des visiteurs de mon site utilise cette solution. S'il se reconnaît, je le salue :D
Ce guide est obsolète. Utilisez la nouvelle version sur le Help Desk Biapy:
Installer le lecteur de flux Tiny Tiny RSS sur Debian
Ce guide a été testé avec les distributions suivantes :
- Debian 5.0 Lenny
- Debian 6.0 Squeeze
Pré-requis
Ce guide nécessite un serveur MySQL disposant du script mysql-tools disponible dans le guide Installer et configurer MySQL sur Debian.
Ce guide nécessite un serveur HTTP avec support du PHP disposant au choix d'un des scripts suivant :
- Le script a2tools disponible dans mon guide Installer Apache 2 sur Debian.
- Le script lighty-tools disponible dans mon guide Installer Lighttpd et PHP 5 sur Debian.
Paramètres
Renseignez le nom de domaine ou sera disponible l'application :
DOMAIN="rss.domaine-exemple.fr"
Renseignez le nom d'hôte de votre serveur MySQL (si vous ne savez pas de quoi il s'agit, ne modifiez pas cette valeur) :
MYSQL_HOST="localhost"
Si votre serveur MySQL n'est pas local, ce guide effectuera une connexion SSH pour y créer la base de données.
Installation
Installez les modules PHP nécessaires au bon fonctionnement de l'application :
command apt-get install php5-mysql php5-xmlrpc mysql-client
Redémarrez votre serveur HTTP pour prendre en compte les modifications :
test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
Récupérez l'URL de la dernière version de l'application :
TTRSS_URL=$(command wget --quiet --output-document=- "http://tt-rss.org/redmine/" \ | command grep -e "http://tt-rss.org/download/tt-rss-.*.tar.gz" \ | command sed -e 's|.*"\(http://tt-rss.org/download/tt-rss-.*.tar.gz\)".*|\1|') VERSION=$(command echo "${TTRSS_URL}" | command sed -e 's/.*tt-rss-\(.*\).tar.gz/\1/')
Téléchargez les sources de l'application :
command wget "${TTRSS_URL}" \ --output-document="/tmp/tt-rss-${VERSION}.tar.gz"
Décompressez l'archive :
command tar --directory="/tmp" -xzf "/tmp/tt-rss-${VERSION}.tar.gz"
Déplacez le dossier de l'application vers son emplacement final :
command mv "/tmp/tt-rss-${VERSION}" "/opt/${DOMAIN}"
Supprimez l'archive téléchargée :
command rm "/tmp/tt-rss-${VERSION}.tar.gz"
Configuration
Créez le fichier de configuration à partir du modèle :
command cp "/opt/${DOMAIN}/config.php-dist" "/opt/${DOMAIN}/config.php"
Créez la base de données :
if [ "${MYSQL_HOST}" = "localhost" ]; then MYSQL_PARAMS=$(command mysql-tools create-domain-db "${DOMAIN}") else command echo "Saisissez le mot de passe de l'utilisateur root MySQL :" command read PASSWORD MYSQL_PARAMS=$(command ssh "root@${MYSQL_HOST}" "command mysql-tools create-domain-db '${DOMAIN}' '$(command cat /etc/mailname)' '${PASSWORD}'") fi
Récupérez les paramètres de la nouvelle base de données :
MYSQL_DB="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_DB" \ | cut --delimiter="=" --fields="2-")" MYSQL_USER="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_USER" \ | cut --delimiter="=" --fields="2-")" MYSQL_PASSWORD="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_PASSWORD" \ | cut --delimiter="=" --fields="2-")" echo "${MYSQL_PARAMS}"
Initialisez le contenu de la base de données :
command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \ --host="${MYSQL_HOST}" "${MYSQL_DB}" \ < "/opt/${DOMAIN}/schema/ttrss_schema_mysql.sql"
Il vous faut maintenant modifier la configuration de Tiny Tiny RSS. Cela se fait par les lignes de commandes suivantes :
command sed -i \ -e "s/\(define('DB_TYPE', \).*/\1'mysql');/" \ -e "s/\(define('DB_HOST', \).*/\1'${MYSQL_HOST}');/" \ -e "s/\(define('DB_NAME', \).*/\1'${MYSQL_DB}');/" \ -e "s/\(define('DB_USER', \).*/\1'${MYSQL_USER}');/" \ -e "s/\(define('DB_PASS', \).*/\1'${MYSQL_PASSWORD}');/" \ "/opt/${DOMAIN}/config.php"
Mettez en place le dossier cache :
command mkdir --parent "/var/cache/tt-rss" command mv "/opt/${DOMAIN}/cache" "/var/cache/tt-rss/${DOMAIN}" command ln -s "/var/cache/tt-rss/${DOMAIN}" "/opt/${DOMAIN}/cache" command mv "/opt/${DOMAIN}/lib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer" "/var/cache/tt-rss/${DOMAIN}/Serializer" command ln -s "/var/cache/tt-rss/${DOMAIN}/Serializer" "/opt/${DOMAIN}/lib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer" command chown -R www-data:www-data "/var/cache/tt-rss/${DOMAIN}"
Mettez en place le dossier lock :
command mkdir --parent "/var/lock/tt-rss" command mv "/opt/${DOMAIN}/lock" "/var/lock/tt-rss/${DOMAIN}" command ln -s "/var/lock/tt-rss/${DOMAIN}" "/opt/${DOMAIN}/lock" command chown -R www-data:www-data "/var/lock/tt-rss/${DOMAIN}"
Créez la configuration du serveur HTTP pour votre domaine :
if [ -x "/usr/bin/a2tools" ]; then command a2tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/" fi if [ -x "/usr/bin/lighty-tools" ]; then command lighty-tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/" fi
Votre installation de Tiny Tiny RSS devrait maintenant être disponible sur votre nom de domaine.
Mise en place d'une page d'identification
Pour mettre en place une page d'identification, en premier lieu, activez le mode multi-utilisateurs :
command sed -i \ -e "s/\(define('SINGLE_USER_MODE', \).*/\1false);/" \ "/opt/${DOMAIN}/config.php"
Vous pouvez alors utiliser les informations suivantes pour vous connecter à Tiny Tiny RSS :
- Identifiant : admin
- Mot de passe : password
Utiliser SimplePie à la place de Magpie pour parser les fichiers RSS
SimplePie est un parseur de flux RSS plus puissant que Magpie. Cependant il lui faut utiliser curl afin de pouvoir lire les flux en HTTPS ou ceux nécessitant un mot de passe.
Commencez par installer l'extension curl de php :
command apt-get install php5-curl
Et configurez Tiny Tiny RSS pour utiliser SimplePie :
command sed -i \ -e "s/\(define('DEFAULT_UPDATE_METHOD', \).*/\11);/" \ "/opt/${DOMAIN}/config.php"
Mise à jour régulière des flux
Il est souhaitable que vos flux soient mis à jour même si vous ne vous connectez pas régulièrement à Tiny Tiny RSS. Pour ce faire, installez la ligne de commande PHP :
command apt-get install php5-cli
Modifiez la configuration de façon à ce que la mise à jour des flux par un démon soit possible :
command sed -i \ -e "s/\(define('ENABLE_UPDATE_DAEMON', \).*/\1true);/" \ "/opt/${DOMAIN}/config.php"
Et changez l'emplacement des fichiers verrou :
command sed -i \ -e 's|\(define('LOCK_DIRECTORY', \).*|\1'/var/run/tt-rss');|' \ "/opt/${DOMAIN}/config.php"
Créez le dossier destiné à contenir les fichiers lock :
command mkdir --parent "/var/run/tt-rss"
Téléchargez le fichier de configuration du script init.d de Tiny Tiny RSS :
command wget "http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-tiny-tiny-rss-sur-debian-4-0-etch/tt-rss-default" \ --output-document="/etc/default/tt-rss-${DOMAIN}" command sed -i -e "s|^TTRSS_PATH=.*|TTRSS_PATH=\"/opt/${DOMAIN}\"|" "/etc/default/tt-rss-${DOMAIN}"
Téléchargez le script init.d de Tiny Tiny RSS :
command wget "http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-tiny-tiny-rss-sur-debian-4-0-etch/tt-rss-initd" \ --output-document="/etc/init.d/tt-rss-${DOMAIN}" command sed -i -e "s/DOMAIN/${DOMAIN}/g" "/etc/init.d/tt-rss-${DOMAIN}" command chmod +x "/etc/init.d/tt-rss-${DOMAIN}"
Vous pouvez maintenant lancer le script de mise à jour avec la commande :
/etc/init.d/tt-rss-${DOMAIN} start
et l'arrêter avec :
/etc/init.d/tt-rss-${DOMAIN} stop
Si vous souhaitez que cette commande soit lancée au démarrage de votre ordinateur, exécutez la commande :
command update-rc.d "tt-rss-${DOMAIN}" defaults
De plus, le démon de mise à jour n'étant pas très stable et ayant tendance à planter régulièrement, il est recommandé de créer un script cron pour le redémarrer si nécessaire :
command echo "#\!/bin/sh # Start tt-rss-${DOMAIN} udpate daemon if necessary : if [ -x '/etc/init.d/tt-rss-${DOMAIN}' ]; then /etc/init.d/tt-rss-${DOMAIN} start fi" > "/etc/cron.hourly/tt-rss-${DOMAIN}" command chmod +x "/etc/cron.hourly/tt-rss-${DOMAIN}"
Le démon ne sera lancé que s'il n'est pas démarrer, grâce à la vérification de la présence d'un fichier verrou. Ce script cron ne pose donc aucun problème.
Modifier l'emplacement de stockage des icônes des flux
Par défaut, les icônes des flux sont cachées dans le dossier icons. Si vous souhaitez modifier ce comportement (par exemple parceque Tiny Tiny RSS est installé sur une partition en lecture seule), voici la procédure à suivre.
En premier lieu, créez le dossier destiné à contenir les icônes :
command mkdir --parent "/var/lib/tt-rss/${DOMAIN}/icons"
Modifiez ses permissions :
command chown -R www-data:www-data "/var/lib/tt-rss/${DOMAIN}/icons"
Ensuite, supprimez dossier icons de Tiny Tiny RSS :
command rm -r "/opt/${DOMAIN}/icons"
Et remplacez le par un lien symbolique vers votre nouveau dossier d'icônes :
command ln -s "/var/lib/tt-rss/${DOMAIN}/icons" "/opt/${DOMAIN}/feeds-icons"
Si vous le souhaitez, vous pouvez aussi modifier la configuration de Tiny Tiny RSS :
command sed -i \ -e "s|\(define('ICONS_DIR', \).*|\1'/var/lib/tt-rss/${DOMAIN}/icons');|" \ -e "s|\(define('ICONS_URL', \).*|\1'feeds-icons');|" \ "/opt/${DOMAIN}/config.php"
Sauvegardes
Pour sauvegarder votre installation, je vous propose d'utiliser Backup Manager. Pour l'installer, vous pouvez suivre mon guide:
Installer et configurer Backup Manager sur Debian
Une fois Backup Manager installé, configurer la sauvegarde des fichiers de l'application :
command update-bm-folders add "/opt/${DOMAIN}" command update-bm-folders add "/var/lib/tt-rss/${DOMAIN}"
Important: Sauvegarder les fichiers ne suffit pas ! Il faut aussi sauvegarder la base de données. La procédure pour ce faire est disponible dans mon article MySQL sur Debian.
Utilisation quotidienne
Paramétrer votre compte utilisateur
Voici les options que j'ai activé pour avoir un compte utilisateur adapté à mes besoins :
- Purger les articles plus vieux que le nombre de jours donné (0 pour ne jamais purger) : 0 (je désactive la suppression des articles trop vieux)
- Utiliser les catégories de flux : Yes (J'active la gestion des flux par catégories)
- Activer la barre de recherche : Yes (J'active la possibilité de rechercher dans le contenu des flux)
- Demander confirmation pour marquer un flux comme lu : No (Je désactive la confirmation lorsque je veux marquer l'ensemble d'un flux comme lu)
- Éliminer les étiquettes non sûres des articles : No (Je
désactive la simplification du code source HTML des articles des flux.
C'est moins sécurisé, mais ca permet de conserver les balises
<code>)
Intégration dans Mozilla Firefox
Tiny Tiny RSS s'intègre facilement dans Mozilla Firefox. Et ceci de 2 manières :
- Vous pouvez utiliser Tiny Tiny RSS comme gestionnaire de flux dans Mozilla Firefox. Cela se configure à partir de vos préférences de flux.
- Vous pouvez installer un plugin qui vérifie la présence de nouveaux articles régulièrement : Tiny Tiny RSS Notifier.
Mise à jour de Tiny Tiny RSS
Si une nouvelle version est sortie, et que vous souhaitez mettre à jour votre installation de Tiny Tiny RSS, voici la procédure à suivre. En premier lieu, installez les outils nécessaires :
command apt-get install patch
Renseignez le domaine de votre installation :
DOMAIN="rss.domaine-exemple.fr"
Placez-vous dans le répertoire de votre installation de Tiny Tiny RSS :
cd "/opt/${DOMAIN}"
Créez un fichier de différence pour préserver votre configuration :
command diff -Nru config.php-dist config.php > "/tmp/tt-rss-config-diff.patch"
Récupérez le numéro de la nouvelle version de Tiny Tiny RSS :
TTRSS_URL=$(command wget --quiet --output-document=- "http://tt-rss.org/redmine/" \ | command grep -e "http://tt-rss.org/download/tt-rss-.*.tar.gz" \ | command sed -e 's|.*"\(http://tt-rss.org/download/tt-rss-.*.tar.gz\)".*|\1|') VERSION=$(command echo "${TTRSS_URL}" | command sed -e 's/.*tt-rss-\(.*\).tar.gz/\1/')
Et lancez le téléchargement :
command wget "${TTRSS_URL}" \ --output-document="/tmp/tt-rss-${VERSION}.tar.gz"
Une fois le téléchargement terminé, décompressez le fichier à l'emplacement adéquat :
command tar --directory='/tmp' -xzf "/tmp/tt-rss-${VERSION}.tar.gz"
Créez le fichier de configuration :
command cp "/tmp/tt-rss-${VERSION}/config.php-dist" "/tmp/tt-rss-${VERSION}/config.php"
Et patchez le afin de récupèrer votre configuration :
command patch --directory="/tmp/tt-rss-${VERSION}" --strip=0 < "/tmp/tt-rss-config-diff.patch"
Sauvegardez votre ancienne installation de Tiny Tiny RSS :
command mv "/opt/${DOMAIN}" "/opt/${DOMAIN}.old"
Et mettez en place la nouvelle version :
command mv "/tmp/tt-rss-${VERSION}" "/opt/${DOMAIN}"
Enfin, nous récupérons le dossier icons de notre installation précédente:
command cp -a "/opt/${DOMAIN}.old/feeds-icons" "/opt/${DOMAIN}" command rm -r "/opt/${DOMAIN}/cache" command cp -a "/opt/${DOMAIN}.old/cache" "/opt/${DOMAIN}" command rm -r "/opt/${DOMAIN}/lock" command cp -a "/opt/${DOMAIN}.old/lock" "/opt/${DOMAIN}" command rm -r "/opt/${DOMAIN}/feed-icons" command cp -a "/opt/${DOMAIN}.old/feeds-icons" "/opt/${DOMAIN}" command rm -r "/opt/${DOMAIN}/lib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer" command cp -a "/opt/${DOMAIN}.old/lib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer" "/opt/${DOMAIN}/lib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer"
Identifiez-vous en tant qu'admin pour mettre à jour la base de données si nécessaire. Vérifiez que tout fonctionne correctement. Une fois ceci fait, redémarrez le démon de mise à jour des flux:
/etc/init.d/tt-rss-${DOMAIN} restart
Vous pouvez supprimer l'archive téléchargée et la sauvegarde de l'ancienne installation :
command rm "/tmp/tt-rss-${VERSION}.tar.gz" command rm -r "/opt/${DOMAIN}.old"
Remerciements
- Merci aux développeurs de Tiny Tiny RSS (tout particulièrement à fox qui porte ce projet à bout de bras).
- Merci à Mdrolo qui a inscrit le flux de ce site dans son Tiny Tiny RSS et me l'a ainsi fait découvrir.
Merci Mdrolo
Donc merci de tes visites :D
problème de connection hors lan.
j'ai réussi à installer tinytinyrss sur mon serveur perso, et il fonctionne parfaitement en lan. Cependant, bien que je puisse l'utiliser et y accéder presque normalement depuis le web, j'ai l'erreur récurrente qui revient : " Session failed to validate (incorrect IP) ".
Et qui m'oblige à me relogguer presque toutes les 2 minutes.
Une idée de la raison ? Merci d'avance.
/opt : Repertoire WEB
Je me permets de vous contacter car il y a quelque chose que j'ai du mal m'expliquer.
Pourquoi mettez vous les sites Web dans /OPT??
Peut etre une question bete, mais je ne comprend pas. (donc je m'interroge)
Je mets en place un petit server perso sous debian, et je souhaite faire les choses correctement.
J'ai cherche, mais je ne trouve pas d'explication.
Sur le site : (http://www.debianadmin.com/linux-directory-structure-overview.html), j'ai trouve cette descrition du /opt :
A rarely used directory in Linux for Optional Software Packages. This is extensively used in UNIX OS like Sun Solaris where the software packages are installed
Cordialement,
Franck.
/opt
je les met dans /opt pour plusieurs raisons :
1- le contenu de /var/www est exposé au public par la configuration par défaut de Apache.
2- /opt est destiné à contenir des logiciels, et je considère les applications Web comme des logiciels.
3- /opt est rarement utilisé, et peut être préservé en écriture si l'on est un peu paranoiaque (d'ou le fait que je place les données des applications web dans /var/lib"
C'est une décision semi arbitraire de ma part, basée sur des exemples d'utilisation de /opt dans des cas similaires (bien que je ne saurais plus vous citer lesquels). L'avantage de /opt, c'est qu'il évite de méler les applications web aux fichiers installés par les packets Deb, tout en mettant en avant l'aspect applicatif de ces sites.
cela vous aide-t-il ?
Cordialement,
Pierre-Yves Landuré
ps: ce site est en cours de refonte sur http://howto.biapy.com/
/OPt
Merci pour votre reponse, cela a eclaire ma lanterne.
Je comprends votre logique.
Cordialement,
Frnack.
Question complementaire
je sais que ceic n'est pas un forum, mais puis je me permettre de vous demander votre avis?
je suis actuellement en cours de montage d'une machine pour etre autonome.
Est il raisonable selon vous de mettre tous les services (sites web/mail/etc ....) sur la machine qui fait office de Firewall ???
sous linux, cela est realisable sans probleme, mais est ce raisonable??
Merci par avance,
Franck.
Firewall + server
basiquement, je dirais oui, c'est raisonnable.
personnellement, je complique les choses en mettant en place un hyperviseur Xen et en dédiant une machine virtuel par fonction (serveur mysql, serveur mail, serveur php, etc...) afin de cloisonner les fonctionnalités.
C'est assez complexe à mettre en place, mais cela permet de limiter la casse en cas de faille de sécurité sur l'un des services.
basiquement, utiliser le firewall comme serveur n'est pas rédibitoire.. Faite toutefois très attention à la sécurité de vos applications PHP.
Pour votre information, ce site est en cours de réécriture totale sur http://howto.biapy.com/ . Je vous invite à utiliser cette nouvelle adresse pour obtenir des informations à jour.
Bonne continuation.
Installation
Merci pour votre réponse.
J'avais vu dans votre précédent commentaire la nouvelle URL.
Je l'utilise.
Si j'ai bien compris, vous utilisez une seule machine à 2 interfaces (1 wan et 1 lan)
Pour tous vos services. Je présume que les services écoutes sur l'interface Lan avec des règles de nat/fw pour les ouvrir sur l'extérieur.
Merci a vous.
À bientôt sur votre nouveau site.
Franck.
Page not found
Je ne comprend pas, j'ai suivi votre procédure à la lettre (jusqu'à "Modifier l'emplacement de stockage des icônes des flux")...je n'ai eu aucune erreur, et au final, lorque je tente d'accéder à rss.mondomaine.com, j'obtiens un "page not found".
J'ai pourtant vérifié que le site soit bien activé dans apache, j'ai relancé ce dernier, mais rien n'y fait.
Je n'ai rien modifié au fichier de configuration apache qui a été créé par vos commandes...auriez-vous une idée de ce qui pourrait clocher?
Merci d'avance!
Vieux guide, vieux site
ce guide n'est plus tenu à jour car je suis en train de réécrire complétement ce site. Je vous invite à suivre la nouvelle version de ce guide :
http://howto.biapy.com/debian-gnu-linux/applications-web/syndication-de-contenus/installer-le-lecteur-de-flux-tiny-tiny-rss-sur-debian
Pour ce qui est du page not found, vérifiez les valeurs "ServerName" et "DocumentRoot" dans la configuration du VirtualHost Apache 2. Je ne vois pas d'autre source possible pour l'erreur.
Bon courage
salut
J'avoue connaitre http://howto.landure.fr depuis peut et j'y trouve plein de bonnes infos :)
Merci donc de nous faire partager tout ceci.