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