= Déploiement de solr =
Solr est le moteur de recherche utilisé dans le projet. Il s'installe sur un moteur de servlet (jetty, tomcat, ...). Cette page décrit en décrit le déploiement dans le cadre du projet.
Jetty est utilisé comme moteur de servlet pour l'environnement de développement. Tomcat, au vu de sa meilleure intégration par debian, dans l'environnement de production.
== Configuration de JETTY (environnement de dev) ==
Par défaut, le projet est configuré pour fonctionner directement avec jetty qui est livré par le projet.
Il suffit donc de lancer le moteur pour que tout fonctionne :
{{{
cd lib/vendor/SolrServer
nohup java -jar start.jar &
}}}
== Configuration de Tomcat 5.5 (environnement de prod) ==
=== Installation de tomcat ===
{{{
sudo aptitude install tomcat5.5
}}}
=== Configuration de tomcat ===
* Désactiver la vérification de la sécurité
Pour se faire il suffit d'ajouter la ligne suivante dans le fichier {{{/etc/default/tomcat5.5}}}
{{{
TOMCAT5_SECURITY=no
}}}
* Ajouter un environnement solr dans tomcat
Ajouter un fichier dédié à notre instance solr dans {{{/etc/tomcat5.5/Catalina/localhost/}}}
{{{
cat > /etc/tomcat5.5/Catalina/localhost/solr_nd_project.xml
}}}
Solr sera alors joignable depuis l'url tomcat à la ressource {{{solr_nd_project}}} : {{{http://localhost:8180/solr_nd_porject/}}}
=== Configurer Solr ===
Une petite manipulation est à faire pour que solr puisse fonctionner en mode jetty comme tomcat. Il faut passer le chemin vers les données en un chemin absolu dans le fichier lib/vendor/SolrServer/solr/conf/solrconfig.xml
{{{
/home/nosdeputes/project/lib/vendor/SolrServer/solr/data
}}}
ou dataDir avait comme valeur précédemment {{{${solr.data.dir:./solr/data} }}}
=== Configurer CPC ===
Dernière étape configurer l'application symfony pour qu'elle puisse dialoguer avec l'instance solr sur tomcat. Il faut donc rajouter la section suivante dans le config/app.yml du projet :
{{{
solr:
port: 8180
url: /solr_nd_project
}}}
=== Relancer tout ca ===
* Relancer tomcat
{{{
sudo /etc/init.d/tomcat5.5 restart
}}}
* Supprimer le cache de cpc
{{{
php symfony cc
}}}
=== Débugger l'indexation plantée ===
Quand on reçoit une série de mails Index:Solr lockée, il faut vérifier que le processus NNN indiqué dans le fichier /tmp/indexSolr.bash.lock ne tourne plus :
{{{
ps -ef | grep `cat /tmp/indexSolr.bash.lock`
}}}
S'il n'y a pas plus de résultat que la ligne du grep elle-même c'est que l'indexation a planté, il suffit alors de supprimer le fichier lock correspondant et la cron reprendra toute seule.
{{{
/tmp/indexSolr.bash.lock
}}}