Installation standard

Ubuntu Server 12.04.3 64bits
Options installées : OpenSSH server et LAMP server

Comme root :

sudo -i

Installation des mises à jour :

apt-get update
apt-get upgrade

Installation des prérequis :

apt-get install make gcc lib32z1 libmysqlclient15-dev php5-dev

Installation de mnoGoSearch

Voir : http://www.mnogosearch.org/doc33/msearch-installing.html

wget http://www.mnogosearch.org/Download/mnogosearch-3.3.14.tar.gz
tar -zxf mnogosearch-3.3.14.tar.gz
cd mnogosearch-3.3.14/
./install.pl

Garder les options par défaut sauf si vous avez besoin du module PHP, alors l'adaptation suivante est nécessaire (voir http://www.mnogosearch.org/board/message.php?id=19290)  :

Build shared libraries? (yes/no) [no]: yes
make
make install

Création de la base de données :

mysql -u root -p
create database mnogosearch default character set utf8 default collate utf8_general_ci;

Création d'un utilisateur spécifique :

grant all privileges on mnogosearch.* to user_mnogosearch@localhost identified by "pass_mnogosearch";
exit

Installation de xpdf pour l'indexation des fichiers PDF :

apt-get install xpdf

Création du fichier de configuration :

cd /usr/local/mnogosearch/etc/
cp indexer.conf-dist indexer.conf
nano indexer.conf

Adapter la ligne de connexion à la base de données :

DBAddr  mysql://user_mnogosearch:pass_mnogosearch@localhost/mnogosearch/?dbmode=blob

Décommenter la ligne :

LocalCharset UTF-8

Adapter la valeur en fonction de la taille des documents à indexer :

MaxDocSize 104857600

Commenter la ligne :

#Disallow *.pdf

Décommenter la ligne :

Mime application/pdf          text/plain                 "pdftotext $1 -"

Décommenter/modifier la ligne :

Robots no

Décommenter/modifier la ligne :

RemoteCharset UTF-8

Les fichiers à indexer sont placés, par exemple, dans un sous-dossier pdf de l'arborescence web (/var/www/pdf).
Décommenter/modifier la ligne :

Server http://votre.site/pdf/

Copier les fichiers à indexer dans ce répertoire...

Télécharger indexer.conf.

Création du template de recherche :

cd /usr/local/mnogosearch/etc/
cp search.htm-dist search.htm
nano search.htm

Adapter la ligne de connexion à la base de données :

DBAddr  mysql://user_mnogosearch:pass_mnogosearch@localhost/mnogosearch/?dbmode=blob

Modifier les lignes :

LocalCharset   UTF-8
BrowserCharset UTF-8

Télécharger search.htm.

Création des tables de la base de données :

/usr/local/mnogosearch/sbin/indexer -Ecreate

Indexation (ces 2 commandes sont à exécuter périodiquement par exemple via un job cron) :

/usr/local/mnogosearch/sbin/indexer
/usr/local/mnogosearch/sbin/indexer -Eblob

Copier le script cgi vers l'emplacement web :

cp /usr/local/mnogosearch/bin/search.cgi /usr/lib/cgi-bin/

Rendez-vous à :

http://votre.site/cgi-bin/search.cgi

Si pendant vos tests vous souhaitez vider le contenu de la base de données :

/usr/local/mnogosearch/sbin/indexer -C

Statistiques de la base de données :

/usr/local/mnogosearch/sbin/indexer -S

Installation du module PHP

Se placer dans le répertoire des sources (dans mon cas /root) :

cd /root/mnogosearch-3.3.14/php/
phpize
./configure --with-mnogosearch=/usr/local/mnogosearch
make
make install

Activer le module :

nano /etc/php5/apache2/php.ini
extension=/usr/lib/php5/20090626/mnogosearch.so
service apache2 restart

Copier le fichier index.php vers l'arborescence web :

cp index.php /var/www/

Adapter les lignes :

$dbaddr='mysql://user_mnogosearch:pass_mnogosearch@localhost/mnogosearch/?dbmode=blob';
$localcharset='UTF-8';
$browsercharset='UTF-8';

Télécharger index.php.

A savoir

Si vos fichiers ne contiennent pas la métadonnée "titre", "No title" s'affichera, pour résoudre ce problème, modifiez le fichier index.php :

$title=Udm_Get_Res_Field($res,$i,UDM_FIELD_TITLE);

devient (par exemple) :

$title=Udm_Get_Res_Field($res,$i,UDM_FIELD_URL);

Quelques pages de documentation intéressantes :