New Post has been published on Mocco
New Post has been published on http://mocco.sk/using-solr-with-typo3-on-debian-squeeze/
Using Solr With TYPO3 On Debian Squeeze
Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot]
com>
Follow me on Twitter
Last edited 05/06/2013
TYPO3′s default search extension called “Indexed Search” is fine for small web sites, but if your web site is bigger (> 500 pages), it is getting very slow. Fortunately, you can replace it with a search extension that uses the ultra-fast Apache Solr search server. This tutorial explains how to use Apache Solr with TYPO3 on Debian Squeeze.
I do not issue any guarantee that this will work for you!
In this tutorial I’m using two servers:
server1.example.com (IP: 192.168.0.100): web server where the TYPO3 4.7 Introduction package is installed (in the www.example.com vhost).
server2.example.com (IP: 192.168.0.101): separate server where I will install Apache Solr.
Of course, it’s possible to install Solr on the same system as the web server; however, I’d like to split up both services so that they do not impact each other’s performance.
Open /etc/apt/sources.list…
… and make sure you have the contrib and non-free repositories enabled:
deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.de.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free deb http://ftp.de.debian.org/debian/ squeeze-updates main contrib non-free deb-src http://ftp.de.debian.org/debian/ squeeze-updates main contrib non-free
Update your packages database…
apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre unzip
update-alternatives –config java
update-alternatives –config javac
The TYPO3 project provides a Solr installation script which we download as follows:
wget http://forge.typo3.org/projects/extension-solr/repository/revisions/master/raw/resources/shell/install-solr.sh
chmod 755 install-solr.sh
Now we install Solr. By default (if you don’t provide any languages as parameters), Solr is installed with support for the English language only; if you need support for more languages, just append them to the command, e.g. like this:
./install-solr.sh german english french
This installs a Tomcat server (where Solr is run on) and Solr. By default, Tomcat listens on 127.0.0.1 only; because we want to access Solr from a remote host, we must configure Tomcat to listen on all interfaces, therefore we replace 127.0.0.1 with 0.0.0.0 in /opt/solr-tomcat/tomcat/conf/server.xml:
vi /opt/solr-tomcat/tomcat/conf/server.xml
[...] <Connector port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" connectionTimeout="20000" redirectPort="8443" address="0.0.0.0" URIEncoding="UTF-8" /> [...]
/opt/solr-tomcat/tomcat/bin/shutdown.sh
/opt/solr-tomcat/tomcat/bin/startup.sh
Next we can configure cores in Solr. By default, an English core is already configured; if you need more languages, you can add them to /opt/solr-tomcat/solr/solr.xml, e.g. like this:
vi /opt/solr-tomcat/solr/solr.xml
<?xml version="1.0" encoding="UTF-8" ?> <solr persistent="true"> <cores adminPath="/admin/cores" shareSchema="true"> <core name="core_en" instanceDir="typo3cores" schema="english/schema.xml" dataDir="data/core_en" /> <core name="core_de" instanceDir="typo3cores" schema="german/schema.xml" dataDir="data/core_de" /> <core name="core_fr" instanceDir="typo3cores" schema="french/schema.xml" dataDir="data/core_fr" /> </cores> </solr>
/opt/solr-tomcat/tomcat/bin/shutdown.sh
/opt/solr-tomcat/tomcat/bin/startup.sh
Because we don’t want to start Tomcat manually each time the server is booted, we can add the Tomcat startup command to /etc/rc.local:
[...] /opt/solr-tomcat/tomcat/bin/startup.sh [...]
2.1 Adding Authentication To Solr
Because Solr is listening on all interfaces, it is a good idea to add authentication to it. I will now configure the user user1 with the password secret for the English core.
Open /opt/solr-tomcat/tomcat/conf/web.xml…
vi /opt/solr-tomcat/tomcat/conf/web.xml
… and add the following section somewhere inside the <web-app> container:
[...] <security-constraint> <web-resource-collection> <web-resource-name>Solr authenticated application</web-resource-name> <url-pattern>/core_en/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>role1</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Admin and Update protection</realm-name> </login-config> [...]
As you see, this is valid for the English core only (<url-pattern>/core_en/*</url-pattern>), and I’ve configured this for the role role1, so valid users must belong to that role. To add the user user1 with his password to that role, open /opt/solr-tomcat/tomcat/conf/tomcat-users.xml…
vi /opt/solr-tomcat/tomcat/conf/tomcat-users.xml
… and add the following section inside the <tomcat-users> container:
[...] <role rolename="role1"/> <user username="user1" password="secret" roles="role1"/> [...]
Restart Tomcat afterwards:
/opt/solr-tomcat/tomcat/bin/shutdown.sh
/opt/solr-tomcat/tomcat/bin/startup.sh
You can now open a browser and visit Solr under http://192.168.0.101:8080/solr where you should see all configured cores:
(JavaScript must be enabled in your browser to view the large image as an image overlay.)
When you visit the English core (for which we have just configured authentication), you should be asked for a username and a password:
(JavaScript must be enabled in your browser to view the large image as an image overlay.)
After successful authentication, you should see the following page which means Solr is running successfully:
(JavaScript must be enabled in your browser to view the large image as an image overlay.)
Using Solr With TYPO3 On Debian Squeeze – Page 2
Check out the original source here.