Installer la plateforme de favoris collaboratifs Semantic Scuttle sur Debian
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 :
- 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="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
- Merci aux développeurs de Semantic Scuttle.