Modifications entre les versions 8 et 9
Version 8 à la date du 2010-11-26 15:59:46
Taille: 3230
Éditeur: EricMcSween
Commentaire: Nouvelle procédure tenant compte des commentaires de JC
Version 9 à la date du 2010-12-16 15:28:10
Taille: 3241
Éditeur: EricMcSween
Commentaire: La syntaxe de MoinMoin mangeait une directive #!/bin/sh
Texte supprimé. Texte ajouté.
Ligne 16: Ligne 16:
#!/bin/sh

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 :

    #!/bin/sh
    #
    # 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.

Projet/SavoirsEnPartage/ConfigurationSphinx (dernière édition le 2011-04-21 23:02:36 par JeanChristopheAndré)