
Yannick Nijs
Laten we beginnen met een schone Ubuntu 12.04 LTS server en Tomcat 6 installeren:
sudo apt-get update sudo apt-get upgrade sudo apt-get installeer tomcat6 tomcat6-admin tomcat6-common tomcat6-user
Het volgende zal worden geïnstalleerd:
tomcat6: Servlet en JSP motor
katern6-admin: Admin webapplicaties
tomcat6-gemeenschappelijk: Gemeenschappelijke bestanden
katern6-gebruiker: Hulpmiddelen voor het maken van user-instances
Als de installatie goed is verlopen zou u in staat moeten zijn om verbinding te maken met uw server op poort 8080.
Probeer het eens op http://localhost:8080 of http://ServerNameOrIP:8080. U zou de standaard 'Het werkt' pagina moeten zien.
Let op: Solr wordt geleverd zonder standaard beveiliging! Als uw server poort 8080 zonder beperkingen toestaat, zal iedereen in staat zijn om gegevens te posten naar uw systeem of een index volledig te verwijderen. Het beste is dus om IP-beperkingen toe te voegen aan poort 8080! Vergeet het niet!
Download de nieuwste stabiele solr 4 build naar uw home directory.
Haal hem op via een van de mirrors op http://www.apache.org/dyn/closer.cgi/lucene/solr.
cd ~/ wget apache.cu.be/lucene/solr/4.0.0/apache-solr-4.0.0.tgz tar -zxvf apache-solr-4.0.0.tgz
Nu gaan we Tomcat vertellen dat hij de Solr applicatie moet laden als een van zijn webapps.
Uw Tomcat 6 installatie bevindt zich waarschijnlijk op de volgende locaties:
/etc/tomcat6 /usr/share/tomcat6
Tip: U kunt het volgende commando gebruiken om uit te vinden waar Tomcat6 is geïnstalleerd:
whereis tomcat6
Kopieer het solr.war bestand van je uitgepakte Solr build naar de Tomcat webapps directory:
sudo mkdir /usr/share/tomcat6/webapps sudo cp ~/apache-solr-4.0.0/dist/apache-solr-4.0.0.war /usr/share/tomcat6/webapps/solr4.war
U mag het natuurlijk elders plaatsen, maar zorg ervoor dat de tomcat6 groep voldoende rechten heeft om er toegang toe te krijgen.
Kopieer nu de volledige uitgepakte solr applicatie naar een nieuwe directory:
sudo cp -R ~/apache-solr-4.0.0/ /usr/share/solr4/
We zullen de meegeleverde 'voorbeeld' solr-applicatie later wijzigen om werkbaar te zijn voor Drupal 7.
Voorlopig hernoemen we de onderliggende 'voorbeeld' map naar een meer bedrijf/klant/... vriendelijke naam:
( hernoem {mycompanyname} naar wens in de rest van de handleiding )
sudo mv /usr/share/solr4/voorbeeld /usr/share/solr4/{mycompanyname}
Daarnaast kunt u enkele overbodige voorbeeldsubmappen verwijderen:
sudo rm -r /usr/share/solr4/{mycompanyname}/voorbeeld-DIH sudo rm -r /usr/share/solr4/{mycompanyname}/voorbeeldocs sudo rm -r /usr/share/solr4/{mycompanyname}/solr-webapp
Maak een configuratiebestand aan zodat Tomcat de Solr startmap kan herkennen.
sudo nano /etc/tomcat6/Catalina/localhost/solr4.xml
En voeg het volgende toe:
<Context docBase="/usr/share/tomcat6/webapps/solr4.war" debug="0" privileged="true" allowLinking="true" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/usr/share/solr4/{mycompanyname}/multicore" override="true" /> </Context>
We hebben het tomcat6-admin en tomcat6-user pakket geïnstalleerd om gebruik te kunnen maken van de Tomcat6 manager webapplicatie.
Om toegang te hebben tot deze applicatie moeten we de rechten ervan aanpassen:
sudo nano /etc/tomcat6/tomcat-users.xml
Verander het zodat het er minder op lijkt:
<tomcat-users> <role rolename="admin"/> <role rolename="manager"/> <user username="{mycompanyuser}" password="{mycompanypassword}" roles="admin,manager"/> </tomcat-users>
We zullen de Tomcat service binnenkort herstarten, maar eerst gaan we de multi-core mogelijkheden van Solr configureren.
Drupal-specifieke Solr & multi-core configuratie
Op het moment van schrijven heeft u de laatste versie van de apachesolr Drupal module nodig om met Solr 4 te kunnen communiceren. U kunt bijvoorbeeld de laatste ontwikkelingsversie downloaden op http://ftp.drupal.org/files/projects/apachesolr-7.x-1.x-dev.tar.gz.
cd ~/ wget ftp.drupal.org/files/projects/apachesolr-7.x-1.x-dev.tar.gz tar –zxvf apachesolr-7.x-1.x-dev.tar.gz
De apachesolr-module wordt geleverd met aangepaste Drupal Solr-configuratiebestanden. In de apachesolr module subdirectory 'solr-conf' kunt u de benodigde bestanden vinden voor elke verschillende Solr versie.
Om Drupal verzoeken te kunnen begrijpen moet u deze configuratiebestanden kopiëren naar uw Solr core 'conf' directory. Laten we ze dus kopiëren naar Solr's 'core0' subdirectory:
sudo cp ~/apachesolr/solr-conf/solr-4.x/schema.xml /usr/share/solr4/{mycompanyname}/multicore/core0/conf/schema.xml sudo cp ~/apachesolr/solr-conf/solr-4.x/solrconfig.xml /usr/share/solr4/{mycompanyname}/multicore/core0/conf/solrconfig.xml sudo cp ~/apachesolr/solr-conf/solr-4.x/protwords.txt /usr/share/solr4/{mycompanyname}/multicore/core0/conf/protwords.txt sudo cp ~/apachesolr/solr-conf/solr-4.x/solrcore.properties /usr/share/solr4/{mycompanyname}/multicore/core0/conf/solrcore.properties
Persoonlijk gebruik ik graag de nieuwste Solr-configuratiebestanden als basis en maak ik aanpassingen aan die bestanden. Op deze manier is het makkelijker om Solr configuratieverschillen te herkennen na een upgrade.
Het bijgevoegde configuratiepakket conf-en-nl.zip is bijvoorbeeld geoptimaliseerd voor een tweetalige Nederlandse / Engelse website. Voel je vrij om dat te gebruiken voor referentiedoeleinden als je een meertalige Drupal-site wilt opzetten. U kunt het bestand downloaden en de volledige /usr/share/solr4/{mycompanyname}/multicore/core0/conf/directory met de inhoud overschrijven.
Na het kopiëren van deze bestanden, start u de Tomcat service opnieuw op en kunt u uw Drupal 7 site verbinden met de Solr service.
Gebruik het volgende commando om de Tomcat service te herstarten:
sudo /etc/init.d/tomcat6 restart
Als u geen verbinding meer kunt maken met http://localhost:8080 of http://ServerNameOrIP:8080 heeft u waarschijnlijk een probleem met de rechten!
Het kan nuttig zijn om de Tomcat-logs op de volgende locatie te controleren:
/var/log/tomcat6/
Stel de solr directory in om deel uit te maken van de tomcat6 groep:
sudo chgrp -R tomcat6 /usr/share/solr4
Wijzig de toegangsrechten in de solr-directory:
sudo chmod -R 2750 /usr/share/solr4
Maak de core-mappen beschrijfbaar, standaard worden de indexbestanden en spellingscontrolebestanden onder elke core-map geplaatst. Wanneer u een nieuwe core toevoegt, zorg er dan voor dat de rechten in orde zijn:
sudo chmod -R 2770 /usr/share/solr4/{mycompanyname}/multicore/
Dat zou de fix moeten zijn. Start nu de Tomcat service opnieuw op:
sudo /etc/init.d/tomcat6 restart
Als alles goed gaat, zou u in staat moeten zijn om verbinding te maken met http://localhost:8080 of http://ServerNameOrIP:8080 en u zou ook een nieuw aangemaakte datamap at/usr/share/solr4/{mycompanyname}/multicore/core0/ moeten zien.
Eindelijk het makkelijke deel: Drupal vertellen waar de Solr service te vinden is.
De belangrijkste module is de 'Apache Solr search' module (http://drupal.org/project/apachesolr).
Zoals gezegd, zorg ervoor dat je de nieuwste dev-versie gebruikt, want Solr 4 - die vrij nieuw is - is nog niet in de stabiele versie opgenomen.
Na het installeren en inschakelen van de module hoeft u alleen maar de Solr-server en de kerngegevens in te vullen:
En je bent klaar om te gaan!