Outils personnels
Vous êtes ici : Accueil GNU / Linux Debian Installer la plateforme de favoris collaboratifs Semantic Scuttle sur Debian
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Installer la plateforme de favoris collaboratifs Semantic Scuttle sur Debian

Par Pierre-Yves Landuré - Dernière modification 16/02/2011 12:38

Semantic Scuttle est une alternative à Scuttle intégrant des fonctions sémantiques. C'est la plateforme que j'ai préféré parmis toutes celles que j'ai testé. Ce guide vous aide à l'installer 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 :

Paramètres

Renseignez le nom de domaine ou sera disponible l'application :

DOMAIN="liens.domaine-exemple.fr"

Renseignez le protocole de connexion à l'application :

PROTOCOL="http"

Renseignez l'email du compte d'admnistration :

ADMIN_EMAIL="prenom.nom@domaine.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 locigiels nécessaires au bon fonctionnement de l'application :
command apt-get install php5-mysql mysql-client unzip apg

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 téléchargement des sources de l'application :

SOURCE_URL="$(command wget --quiet --output-document=- \
    'http://sourceforge.net/projects/semanticscuttle/' \
    | command grep 'title="Download' \
    | command sed -e 's|.*href="\([^"]*\)".*|\1|')"
VERSION="$(echo "${SOURCE_URL}" \
    | command sed -e 's/.*SemanticScuttle-\(.*\).zip.*/\1/g')"
Téléchargez les sources :
command wget "${SOURCE_URL}" \
    --output-document="/tmp/semanticscuttle-${VERSION}.zip"

Décompressez l'archive obtenue :

command unzip -o "/tmp/semanticscuttle-${VERSION}.zip" -d "/tmp"

Déplacez le dossier obtenu vers son emplacement final :

command mv "/tmp/SemanticScuttle-${VERSION}" "/opt/${DOMAIN}"

Supprimez le fichier téléchargé :

command rm "/tmp/semanticscuttle-${VERSION}.zip"

Configuration

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}"

Générez un préfixe de tables aléatoire afin d'augmenter la sécurité contre les attaques par injection SQL:

TABLE_PREFIX="$(command apg -q -a  0 -n 1 -M NCL)"

Appliquez ce préfixe aux script de création des tables :

command sed -i -e "s/sc_/${TABLE_PREFIX}_/g" "/opt/${DOMAIN}/data/tables.sql"

Initialisez le contenu de la base de données :

command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
    --host="${MYSQL_HOST}" "${MYSQL_DB}" \
      < "/opt/${DOMAIN}/data/tables.sql"

Afin que l'installation de l'application corresponde mieux aux règle de la LSB (Linux Standard Base), déplacez les dossiers cache et templates vers les emplacements qui leur conviennent :

command mkdir --parent "/var/cache/semantic-scuttle/${DOMAIN}"
command chown -R www-data:www-data "/var/cache/semantic-scuttle/${DOMAIN}"

Créez le fichier de configuration de l'application :

echo "<?php
\$dbtype = 'mysqli';
\$dbuser = '${MYSQL_USER}';
\$dbpass = '${MYSQL_PASSWORD}';
\$dbname = '${MYSQL_DB}';
\$dbhost = '${MYSQL_HOST}';
\$tableprefix = '${TABLE_PREFIX}_';

\$cleanurls = true;
\$locale = 'fr_FR';
\$shortdate = 'd/m/Y';
\$use_cache = true;
\$dir_cache = '/var/cache/semantic-scuttle/${DOMAIN}';

\$root = '${PROTOCOL}://${DOMAIN}/';
\$admin_users = array('admin');
\$adminemail = '${ADMIN_EMAIL}';

\$antispamQuestion = '29 + 13 ?';
\$antispamAnswer = '42';
" > "/opt/${DOMAIN}/data/config.php"
Créez la configuration du serveur HTTP pour votre domaine :
if [ -x "/usr/bin/a2tools" ]; then
  command a2enmod expires
  command a2tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/www" "All"
  /etc/init.d/apache2 force-reload
fi
if [ -x "/usr/bin/lighty-tools" ]; then
  command lighty-tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/www"
fi

L'application devrait maintenant être disponible sur le nom de domaine que vous avez choisi.

Important : Créez le comte d'administration en enregistrant un compte ayant pour identifiant "admin".

Désactiver le formulaire d'inscription

Si vous ne souhaitez pas que les internautes puissent créer un compte sur votre application, utilisez la commande suivante (après avoir créé le compte "admin") :

command echo '$enableRegistration = false;
' >> "/opt/${DOMAIN}/data/config.php"

Modifier le titre et la description

Renseignez le titre que vous souhaitez utiliser :

TITLE="Mes liens"

Renseignez la description, affichée en page d'accueil :

DESC="Liens en vrac"

Appliquez ces réglages :

echo "\$sitename = \"${TITLE}\";
\$welcomeMessage = \"${DESC}\";" >> "/opt/${DOMAIN}/data/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}"

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.

Intrégration dans Mozilla Firefox

En plus du système de bookmarklets permettant d'ajouter des liens à votre Scuttle avec n'importe quel navigateur, il existe une extension Firefox améliorant l'intégration de Scuttle à Firefox :

Extension Scuttle pour Firefox

Mise à jour

Ce qui suit est la procédure de mise à jour de votre installation de Semantic Scuttle.

Renseignez le chemin de votre installation :

INSTALL_PATH="/opt/liens.domaine-exemple.fr"

Récupérez l'URL de téléchargement des sources de l'application :

SOURCE_URL="$(command wget --quiet --output-document=- \
    'http://sourceforge.net/projects/semanticscuttle/' \
    | command grep 'title="Download' \
    | command sed -e 's|.*href="\([^"]*\)".*|\1|')"
VERSION="$(echo "${SOURCE_URL}" \
    | command sed -e 's/.*SemanticScuttle-\(.*\).zip.*/\1/g')"
Téléchargez les sources :
command wget "${SOURCE_URL}" \
    --output-document="/tmp/semanticscuttle-${VERSION}.zip"

Décompressez l'archive obtenue :

command unzip -o "/tmp/semanticscuttle-${VERSION}.zip" -d "/tmp"

Copiez les fichiers de la nouvelle version vers l'installation mise à jour :

command cp -r /tmp/SemanticScuttle-${VERSION}/* "/opt/${DOMAIN}"

L'installation est maintenant à jour. Supprimez les fichiers téléchargés :

command rm "/tmp/semanticscuttle-${VERSION}.zip"
command rm -r "/tmp/SemanticScuttle-${VERSION}"

Remerciements

BlogBang
Navigation
 

Réalisé avec Plone

Ce site respecte les normes suivantes :

Wikio