Compilation et installation de Mnogosearch 3.2.39

Auteur : Yannick LE NY, le 19/12/2006

Cette documentation a été réalisé en utilisant un système Sun Solaris 8.
Les binaires seront installés dans /opt pour permettre de créer une archive et ainsi la déplacer sur un autre serveur.

Variables d’environnement

Les variables d’environnement défini sur le systeme Solaris pour la création des binaires sont :

export PATH=/usr/local/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:.

export LD_LIBRARY_PATH=/usr/local/lib/sparcv9:/usr/local/lib:/usr/lib:/usr/ccs/lib:.

On defini $src comme étant le répertoire de compilation des sources.

Logiciels nécessaires à la compilation

Pour Solaris8, les packages ci-dessous sont disponibles sur www.sunfreeware.com :
·    gcc-3.4.2 (et libiconv-1.8 nécessaire pour gcc)
·    make 3.80
·    autoconf-2.59
·    automake-1.9
·    perl-5.8.3 (perl >= 5.8.0 pour Mecab)
·    readline-5.1 (optionnel)
·    m4-1.4.2
·    pkgconfig-0.20

Installation des librairies zlib

Récupérer les sources de la librairie Zlib ( fichier zlib-1.2.3.tar.gz) sur http://www.zlib.net/

Décompression
cd $src
gzip –d zlib-1.2.3.tar.gz
tar -xvf zlib-1.2.3.tar

Le répertoire zlib-1.2.3 est créé. Se placer dans ce répertoire pour les étapes suivantes :

cd zlib-1.2.3

Étape configure
./configure \
--prefix=/opt/mnogosearch_3.2.39/lib/zlib-1.2.3 \
--shared

Optimisatisation de la librairie
Editer le fichier Makefile et renseigner le paramètre comme indiqué :
CFLAGS=-fPIC -O3 -DUSE_MMAP

Étape make
make

Étape make install
make install

Les librairies sont maintenant installées dans le répertoire :
/opt/mnogosearch_3.2.39/lib/zlib-1.2.3

INSTALLATION DES LIBRAIRIES OPENSSL

Récupérer les sources de la librairie OpenSSL (fichier openssl-0.9.8b.tar.gz) sur http://www.openssl.org/source/

Décompression
cd $src
gzip -d openssl-0.9.8b.tar.gz
tar -xvf openssl-0.9.8b.tar

Le répertoire openssl-0.9.8b est créé. Se placer dans ce répertoire pour les étapes suivantes :

cd openssl-0.9.8b
export LD_LIBRARY_PATH=/opt/mnogosearch_3.2.39/lib/zlib-1.2.3/lib:$LD_LIBRARY_PATH
ou
export LD_LIBRARY_PATH=
/opt/mnogosearch_3.2.39/lib/zlib-1.2.3/lib:/usr/local/lib/sparcv9:/usr/local/lib:/usr/lib:/usr/ccs/lib:.

Étape configure
./Configure \
--prefix=/opt/mnogosearch_3.2.39/lib/openssl-0.9.8b \
shared zlib solaris-sparcv9-gcc

Étape make
make

Étape make install
make install

Les librairies sont maintenant installées dans le répertoire :
/opt/mnogosearch_3.2.39/lib/openssl-0.9.8b

INSTALLATION DES LIBRAIRIES MYSQL

Récupérer les sources de la librairie MYSQL (fichier mysql-5.0.24.tar.gz sur http://dev.mysql.com/downloads/mysql/5.0.html

Décompression
cd $src
gunzip mysql-5.0.24.tar.gz
tar -xvf mysql-5.0.24.tar

Le répertoire mysql-5.0.24 est créé. Se placer dans ce répertoire pour les étapes suivantes :

cd mysql-5.0.24

Étape configure
./configure \
--prefix=/opt/mnogosearch_3.2.39/lib/mysql-5.0.24 \
--localstatedir=\
/opt/mnogosearch_3.2.39/lib/mysql_5.0.24/var \
--with-unix-socket-path=\
/opt/mnogosearch_3.2.39/lib/mysql-5.0.24\
/run/mysql_5.0.24.sock \
--sysconfdir=\
/opt/mnogosearch_3.2.39/lib/mysql-5.0.24/conf \
--with-zlib-dir=\
/opt/mnogosearch_3.2.39/lib/zlib-1.2.3 \
--with-extra-charsets=complex \
--without-docs \
--without-man \
--without-bench \
--without-innodb \
--without-geometry \
--without-extra-tools \
--enable-assembler \
--enable-static --enable-shared \
--enable-thread-safe-client

Étape make
make

Étape make install
make install

Les librairies sont maintenant installées dans le répertoire :
/opt/mnogosearch_3.2.39/lib/mysql-5.0.24.

INSTALLATION DES LIBRAIRIES READLINE

Récupérer les sources de la librairie Readline 5.1 ici :
 http://ftp.gnu.org/gnu/readline/readline-5.1.tar.gz

gzip -d readline-5.1.tar.gz
tar xf readline-5.1.tar
cd readline-5.1

./configure \
--prefix=/opt/mnogosearch_3.2.39/lib/readline-5.1

make
make install

INSTALLATION DES LIBRAIRIES GCC

Les binaires compilés avec le compilateur GCC de GNU nécessite 2 librairies dynamiques dont le nom est libgcc_s.so.1 et libgcc_s.so.
Ces librairies se trouvent dans le répertoire /usr/local/lib suite à l’installation du package GCC-3.x ou supérieur disponible sur sunfreeware.com pour Solaris.

Récupération des librairies C de GCC
Création répertoire et copie des librairies
mkdir -p /opt/mnogosearch_3.2.39/lib/gcc-3.4.2/lib
cd /usr/local/lib
cp -p libgcc_s.so* /opt/mnogosearch_3.2.39/lib/gcc-3.4.2/lib

INSTALLATION DE MNOGOSEARCH

Récupérer les sources du logiciel (fichier mnogosearch-3.2.39.tar.gz) sur http://www.mnogosearch.org/download.html

Note :
Dans /usr/lib, renommer
libz.so.1 en libz.so.1.OLD
et libz.so en libz.so.OLD
pour eviter que Mnogosearch utilise la vieille librairie zlib 1.1 de Solaris par defaut.

Maj chemin des librairies pour la compilation:

export LD_LIBRARY_PATH=/usr/local/lib/sparcv9:/usr/local/lib:/usr/lib:/usr/ccs/lib:.
export LD_LIBRARY_PATH=/opt/mnogosearch_3.2.39/lib/zlib-1.2.3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/mnogosearch_3.2.39/lib/readline-5.1/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/mnogosearch_3.2.39/lib/openssl-0.9.8b/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/mnogosearch_3.2.39/lib/gcc-3.4.2/lib:$LD_LIBRARY_PATH

Maj chemin des librairies qui seront stockés dans les binaires (lors de l’edition de liens ):

export LD_RUN_PATH=/opt/mnogosearch_3.2.39/lib/zlib-1.2.3/lib
export LD_RUN_PATH=/opt/mnogosearch_3.2.39/lib/readline-5.1/lib:$LD_RUN_PATH
export LD_RUN_PATH=/opt/mnogosearch_3.2.39/lib/openssl-0.9.8b/lib:$LD_RUN_PATH
export LD_RUN_PATH=/opt/mnogosearch_3.2.39/lib/gcc-3.4.2/lib:$LD_RUN_PATH

Décompression
cd $src
gunzip mnogosearch-3.2.39.tar.gz
tar -xvf mnogosearch-3.2.39.tar

Le répertoire mnogosearch-3.2.39 est créé. Se placer dans ce répertoire pour les étapes suivantes :
cd mnogosearch-3.2.39

Étape configure
Pour lancer la commande configure il suffit de se placer dans le répertoire du source décompressé et exécuter la commande suivante :

./configure \
--prefix=/opt/mnogosearch_3.2.39 \
--localstatedir=/var/mnogosearch_3.2.39 \
--with-openssl=/opt/mnogosearch_3.2.39/lib/openssl-0.9.8b \
--with-zlib=/opt/mnogosearch_3.2.39/lib/zlib-1.2.3 \
--with-readline=/opt/mnogosearch_3.2.39/lib/readline-5.1 \
--with-mysql=\
/opt/mnogosearch_3.2.39/lib/mysql-5.0.24 \
--with-extra-charsets=all \


Étape make
make

Étape make install
make install

Le serveur est maintenant installé dans le répertoire :
/opt/mnogosearch_3.2.39

Paramétrage du fichier de configuation pour indexer un site.

Aller dans le répertoire /opt/mnogosearch_3.2.39/etc

Créer le fichier de configuration
cp /opt/mnogosearch_3.2.39/etc/indexer.conf-dist /opt/mnogosearch_3.2.39/etc/indexer.conf

Editer le fichier indexer.conf et paramétrez

les parties suivantes:

# You may also select database mode of word storage.
# When "single" is specified, all words are stored in the same table.
# If "multi" is selected, words will be located in different tables.
# "multi" mode is usually faster but requires more tables.
# Default mode is "single".

# Parametrer la base pour stocker les index ici
# syntaxe DBAddr  mysql://login:mot_de_passe@IP_ou_nom_hote/nom_de_la_base/?dbmode=single

DBAddr    mysql://foo:bar@localhost/mnogosearch/?dbmode=single
....
######################################################################
# VarDir /usr/local/mnogosearch/var
# You may choose alternative working directory for
# search results cache:
#
#VarDir /usr/local/mnogosearch/var

VarDir /var/mnogosearch_3.2.39
.......
#########################################################################
#Server [Method] [SubSection] <URL> [alias]
# This is the main command of the indexer.conf file. It's used
# to describe web-space you want to index. It also inserts
# given URL into database to use it as a start point.
# You may use "Server" command as many times as a number of different
# servers or their parts you want to index.
#
# "Method" is an optional parameter which can take on of the following values:
# Allow, Disallow, CheckOnly, HrefOnly, CheckMP3, CheckMP3Only, Skip.
#
# "SubSection" is an optional parameter to specify server's subsection,
# i.e. a part of Server command argument.
# It can take the following values:
# "page" describes web space which consists of one page with address <URL>.
# "path" describes all documents which are under the same path with <URL>.
# "site" describes all documents from the same host with <URL>.
# "world" means "any document".
# Default value is "path".
#
# To index whole server "localhost":
#Server http://localhost/
#
# You can also specify some path to index subdirectory only:
#Server http://localhost/subdir/
#
# To specify the only one page:
#Server page http://localhost/path/main.html
#
# To index whole server but giving non-root page as a start point:
#Server site http://localhost/path/main.html
#
#
# You can also specify optional parameter "alias". This example will
# index server "http://www.mnogosearch.org/" directly from disk instead of
# fetching from HTTP server:
#Server http://www.mnogosearch.org/  file:///home/httpd/www.mnogosearch.org/
#

# Indiquer URL du site à indexer ici
Server http://www.monsite.com

# Indiquer URL à exclure ici
#Disallow *.toto

Installation du fichier cgi de recherche.

Copie du fichier cgi pour la recherche
Le fichier search.cgi est à copier dans le répertoire cgi du site.
On considere ici que le répertoire cgi du seveur web Apache est /var/www/cgi-bin.

cd /opt/mnogosearch_3.2.39/bin
cp search.cgi /var/www/cgi-bin
chmod a+x /var/www/cgi-bin/search.cgi

Mise en place et configuration du template de recherche

Récupérer le fichier http://mnogosearch.free.fr/download/search-I18N.zip
Et décompresser search-I18N.tar.gz dans le répertoire /opt/mnogosearch_3.2.39/etc

cd /opt/mnogosearch_3.2.39/etc
mv search.htm-dist search.htm-dist.ORI
gzip -d search-I18N.tar.gz
tar xvf search-I18N.tar.gz

Editer le fichier search.htm et mettez à jour les section suivante:

Pour la partie ci-dessous la variable DBAddr doit etre la meme que dans le fichier indexer.conf
...
#
# Database parameters are to be used with SQL backend
# and do not matter for built-in text files support
# Format: <DBType>:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/[?dbmode=mode]
DBAddr    mysql://foo:bar@localhost/udm/?dbmode=single
....
# Uncomment this line to enable search result cache
#Cache yes

Creation d'une base mysql.

Créer une base mysql pour stocker les index.
Par exemple en utilisant mysql-console :
>create database mnogosearch;

Et créer aussi un utilisateur mnogosearch avec les droits sur la base mnogosearch ou utiliser sinon le compte root.

Creation des tables dans la base dédié à mnogosearch

/opt/mnogosearch_3.2.39/sbin/indexer -Ecreate -d /opt/mnogosearch_3.2.39/conf/indexer.conf

Suppression des tables dans la base dédié à mnogosearch (à utiliser pour nettoyer la base)

/opt/mnogosearch_3.2.39/sbin/indexer -Edrop -d /opt/mnogosearch_3.2.39/conf/indexer.conf

Indexation du ou des site(s) web

/opt/mnogosearch_3.2.39/sbin/indexer -d /opt/mnogosearch_3.2.39/conf/indexer.conf

Test de recherche

Apres indexation de votre site, il vous reste plus qu'à accéder au formulaire de recherche via
le cgi search.cgi qui est dans le répertoire cgi de votre site web.
exemple : http://localhost/cgi-bin/search.cgi.

Attention : faite un ldd de search.cgi pour vous assurer que tous les librairies sont trouvés par le binaires.

Fin de la mise en place de Mnogosearch.
Une version amélioré du document suivra dans les prochaines semaines.