Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Syndication de contenus / Installer rssLounge sur Debian

Installer rssLounge sur Debian

Par Pierre-Yves Landuré Dernière modification 22/04/2013 14:46

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 :

Ce guide nécessite l'un des outils ci-dessous, suivant le serveur HTTP choisi:

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