Configuration de Sphinx
Savoirs en partage a besoin de Sphinx compilé avec libstemmer. Or, le Sphinx qui vient avec Debian n'est pas compilé avec libstemmer. Nous allons donc installer un paquet maison.
Installer le paquet :
# wget http://apt.auf.org/pool/auf/s/sphinxsearch/sphinxsearch_0.9.9-6+auf1_i386.deb # dpkg -i sphinxsearch_0.9.9-6+auf1_i386.deb
Il est aussi disponible via apt dans la section lenny-experimental du DépôtApt.
Modifier le fichier de configuration. Sphinx supporte une méthode simple pour créer des fichiers de configuration dynamiquement. Si le fichier de configuration est exécutable et commence avec un she-bang (#!), le fichier est exécuté et sa sortie est utilisée comme configuration. Nous utiliserons cette méthode pour inclure la configuration spécifique à Savoirs en partage (qui est elle-même exécutable) dans la configuration globale de Sphinx.
Voici donc le contenu à mettre dans le fichier /etc/sphinxsearch/sphinx.conf après avoir effacé l'exemple de configuration :
# # Configuration de Sphinx. # # Si ce fichier est un script exécutable, Sphinx utilisera la # sortie du script comme configuration. C'est ce que nous faisons ici pour # obtenir une configuration dynamique. # Inclusion de la configuration de Savoirs en partage ROOT_SAVOIRS_EN_PARTAGE=/srv/www/www.savoirsenpartage.auf.org CONF_SAVOIRS_EN_PARTAGE=$ROOT_SAVOIRS_EN_PARTAGE/bin/sphinx.conf.py if [ -f $CONF_SAVOIRS_EN_PARTAGE ]; then /usr/bin/python $CONF_SAVOIRS_EN_PARTAGE fi # Configuration globale cat <<EOF indexer { mem_limit = 256M } searchd { listen = 127.0.0.1:9312 pid_file = /var/run/searchd.pid log = /dev/null } EOF
Assurez-vous de donner la bonne valeur à la variable ROOT_SAVOIRS_EN_PARTAGE, conformément à votre environnement. Par exemple, dans l'environnement de test, c'est plutôt /srv/www/test.savoirsenpartage.auf.org.
Puis, il faut rendre ce fichier exécutable :
# chmod +x /etc/sphinxsearch/sphinx.conf
Lancer l'indexeur pour créer les index initiaux :
# indexer --all
Si tout s'est bien passé, on peut maintenant indiquer au système que nous voulons que le démon de Sphinx soit automatiquement lancé au démarrage en modifiant le fichier /etc/default/sphinxsearch. Il faut remplacer la ligne
START=no
par (vous l'aurez deviné)
START=yes
On peut maintenant démarrer le démon :
# /etc/init.d/sphinxsearch start
Les index de Sphinx doivent être regénérés à l'aide de l'outil indexer qui vient avec le paquet pour prendre en compte les nouvelles données. Le cron job suivant lance la regénération toutes les 15 minutes et écrit la sortie dans un log.
*/15 * * * * root (date; /usr/bin/indexer --all --rotate; echo) >> /var/log/sphinx/indexer.log
Si vous n'aimez pas que l'indexeur soit lancé par root, vous pouvez le faire lancer par un autre utilisateur, mais il faut alors lui donner accès en écriture au répertoire /var/lib/sphinxsearch/data.