Obsolète. Migré et maintenu sur https://github.com/regardscitoyens/nosdeputes.fr/blob/master/doc/install.md#installation-de-solr
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 <Context docBase="/home/nosdeputes/project/lib/vendor/SolrServer/webapps/solr.war" debug="0" crossContext="true" > <Environment name="solr/home" type="java.lang.String" value="/home/nosdeputes/project/lib/vendor/SolrServer/solr" override="true" /> </Context>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
<dataDir>/home/nosdeputes/project/lib/vendor/SolrServer/solr/data</dataDir>
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.
sudo rm -f /tmp/indexSolr.bash.lock