Installer rssLounge sur Debian
rssLounge est un lecteur de flux RSS écrit en PHP. Il est réputé pour sa légèreté. Son principal inconvénient est de ne pas disposer d'une gestion multi-utilisateurs.
Ce guide est testé sur:
- Debian 6.0 Squeeze
Ce guide est testé avec ces versions de rssLounge:
- 1.7
Prérequis
Ce guide nécessite :
- un serveur MySQL, comme décrit par Installer et configurer MySQL sur Debian.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- l'outil mysql-tools d'administration simplifiée de MySQL sur l'hôte local (et l'hôte du serveur MySQL, si différent).
Ce guide nécessite l'un des outils ci-dessous, suivant le serveur HTTP choisi:
- a2tools disponible dans Installer et configurer Apache 2 sur Debian.
- lighty-tools disponible dans Installer et configurer Lighttpd sur Debian.
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
DOMAIN="rss.domaine-exemple.fr"
Renseignez le nom d'hôte du serveur MySQL:
MYSQL_HOST="localhost"
Si le serveur MySQL n'est pas local, l'outil mysql-tools essaiera de s'y connecter avec le client MySQL, ou, en cas d'échec de connexion, via une connexion SSH.
Installation
Déterminez le chemin d'installation:
INSTALL_PATH="/opt/rsslounge/${DOMAIN}"
Assurez-vous que le dossier parent existe:
PARENT_PATH="$(command dirname "${INSTALL_PATH}")"
if [ ! -e "${PARENT_PATH}" ]; then
command mkdir --parent "${PARENT_PATH}"
fi
Préparation de l'environnement
Installez les logiciels nécessaires:
command apt-get install php5-mysql unzip apg
Rechargez la configuration de PHP:
test -x /etc/init.d/php5-fpm && /etc/init.d/php5-fpm force-reload
test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload
test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
test -x /etc/init.d/nginx && /etc/init.d/nginx force-reload
Mise en place de l'application
Téléchargez les sources de la dernière version à l'aide du script sf-downloader:
command mkdir --parent '/opt/bin'
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/opt/bin/sf-downloader'
command chmod +x '/opt/bin/sf-downloader'
SOURCE="$(/opt/bin/sf-downloader --googlecode --zip rsslounge rsslounge-VERSION.zip)"
Installez l'application:
command mv "${SOURCE}" "${INSTALL_PATH}"
Autorisez la création du fichier de configuration:
command chown www-data:www-data "${INSTALL_PATH}/config"
Mise en conformité avec la LSB
Adaptez l'application aux recommandations de la Linux Standard Base:
unset DATA_PATHS
declare -a DATA_PATHS
DATA_PATHS[0]="data/favicons"
DATA_PATHS[1]="data/thumbnails"
DATA_PATHS[2]="public/javascript"
DATA_PATHS[3]="public/stylesheets"
command mkdir --parent "/var/lib/rsslounge/${DOMAIN}/data"
command mkdir --parent "/var/lib/rsslounge/${DOMAIN}/public"
for DATA_PATH in ${DATA_PATHS[@]}; do
COMPLETE_PATH="${INSTALL_PATH}/${DATA_PATH}"
LSB_PATH="/var/lib/rsslounge/${DOMAIN}/${DATA_PATH}"
if [ -e "${COMPLETE_PATH}" -a ! -h "${COMPLETE_PATH}" ]; then
command mv "${COMPLETE_PATH}" "${LSB_PATH}"
command ln -s "${LSB_PATH}" "${COMPLETE_PATH}"
command chown -R www-data:www-data "${LSB_PATH}"
fi
done
command mkdir --parent "/var/cache/rsslounge"
command mkdir --parent "/var/log/rsslounge"
if [ -d "${INSTALL_PATH}/data/cache" ]; then
command mv "${INSTALL_PATH}/data/cache" "/var/cache/rsslounge/${DOMAIN}"
command ln -s "/var/cache/rsslounge/${DOMAIN}" "${INSTALL_PATH}/data/cache"
command chown -R www-data:www-data "/var/cache/rsslounge/${DOMAIN}"
fi
if [ -d "${INSTALL_PATH}/data/logs" ]; then
command mv "${INSTALL_PATH}/data/logs" "/var/log/rsslounge/${DOMAIN}"
command ln -s "/var/log/rsslounge/${DOMAIN}" "${INSTALL_PATH}/data/logs"
command chown -R www-data:www-data "/var/log/rsslounge/${DOMAIN}"
fi
Rotation des journaux
Mettez en place la rotation des journaux de l'application:
echo '# Logrotate configuration file for rsslounge "/var/log/rsslounge/*/*" { weekly missingok rotate 12 copytruncate compress delaycompress create 644 www-data www-data } ' > '/etc/logrotate.d/rsslounge'
Mise en place de l'hôte virtuel
Créez la configuration du serveur HTTP pour le domaine:
if [ -x "/usr/bin/a2tools" ]; then
command a2enmod rewrite headers expires deflate
command a2tools --overrides="All" "${DOMAIN}" "${INSTALL_PATH}" fi if [ -x "/usr/bin/lighty-tools" ]; then command lighty-tools add-vhost "${DOMAIN}" "${INSTALL_PATH}" fi
Mise à jour régulière des flux
Mettez en place la mise à jour des flux tous les quarts d'heures:
command echo "# Update rssLounge contents
*/15 * * * * test -x '/usr/bin/wget' -a -e '${INSTALL_PATH}' && /usr/bin/wget --quiet --output-document='/dev/null' 'http://${DOMAIN}/update/silent'" \
> "/etc/cron.d/rsslounge-${DOMAIN}"
Création de la base de données
Créez la base de données avec mysql-tools:
MYSQL_PARAMS="$(command mysql-tools --server="${MYSQL_HOST}" --with-ssh \
--auto-hosts --db-prefix="rsslounge" --create "${DOMAIN}")"
Récupérez les paramètres de la nouvelle base de données, et notez les précieusement, vous les utiliserez durant la procédure de configuration de l'application:
echo "${MYSQL_PARAMS}"
Améliorez la sécurité de l'installation en mettant en place un préfixe des noms de tables aléatoire:
echo "Préfixe des noms des tables sécurisé: $(command apg -q -a 0 -n 1 -M NCL)_"
Configuration
Configurez l'application en visitant l'adresse fournie par:
echo "http://${DOMAIN}/"
Une fois l'application configurée, protégez les fichiers de configuration:
command chown -R root:root "${INSTALL_PATH}/config"
Sauvegarde
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
command backup-manager-tools add "${INSTALL_PATH}" command backup-manager-tools add "/var/lib/rsslounge/${DOMAIN}"
N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).
Mise à jour de l'outil
Renseignez le domaine de l'application:
DOMAIN="rss.domaine-exemple.fr"
Déterminez le chemin d'installation:
INSTALL_PATH="/opt/rsslounge/${DOMAIN}"
Téléchargez les sources de la dernière version à l'aide du script sf-downloader:
command mkdir --parent '/opt/bin'
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/opt/bin/sf-downloader'
command chmod +x '/opt/bin/sf-downloader'
SOURCE="$(/opt/bin/sf-downloader --googlecode --zip rsslounge rsslounge-VERSION.zip)"
Récupérez les données de l'installation précédente:
unset DATA_PATHS
declare -a DATA_PATHS
DATA_PATHS[0]="data/favicons"
DATA_PATHS[1]="data/thumbnails"
DATA_PATHS[2]="data/cache"
DATA_PATHS[3]="data/logs"
DATA_PATHS[4]="public/javascript"
DATA_PATHS[5]="public/stylesheets"
DATA_PATHS[6]="config"
for DATA_PATH in ${DATA_PATHS[@]}; do
COMPLETE_PATH="${INSTALL_PATH}/${DATA_PATH}"
TARGET_PATH="${SOURCE}/${DATA_PATH}"
if [ -e "${TARGET_PATH}" ]; then
command rm -r "${TARGET_PATH}"
fi
if [ -e "${COMPLETE_PATH}" -a ! -e "${TARGET_PATH}" ]; then
command cp -a "${COMPLETE_PATH}" "${TARGET_PATH}"
fi
done
Sauvegardez l'ancienne installation:
if [ -e "${INSTALL_PATH}.old" ]; then
command rm -r "${INSTALL_PATH}.old"
fi
command mv "${INSTALL_PATH}" "${INSTALL_PATH}.old"
Mettez en place la nouvelle version :
command mv "${SOURCE}" "${INSTALL_PATH}"
Vérifiez que tout fonctionne correctement.
Supprimez la sauvegarde de l'ancienne installation :
command rm -r "${INSTALL_PATH}.old"
Remerciements
- Merci aux développeurs de rssLounge.