1. Install Java SDK using below command :
yum install java-1.6*
2. Download Apache Solr module from Drupal server. (Do it as you normally do with Drupal)
3. Then, get "SolrPhpClient" and put it under Apache Solr module directory. The directory name must be "SolrPhpClient".
wget http://solr-php-client.googlecode.com/files/SolrPhpClient.r22.2009-11-09.zip
4. Download the latest Solr 1.4.x release (Current is 1.4.1). Below, I put it in root directory. You can put it anywhere but not where you can access it through your website. So, not under "public_html" folder. I also renamed folder to make it shorter.
cd / wget http://mirror.tourismthai.org/apache//lucene/solr/1.4.1/apache-solr-1.4.1.tgz tar xvfz apache-solr-1.4.1.tgz mv apache-solr-1.4.1 solr
5. Apache Solr comes with an example files you can use and they are located as a subdirectory in ApacheSolr folder. So, what you have to do is to copy 2 files ( schema.xml and solrconfig.xml ) from Apache Solr Drupal module directory to replace files in "/solr/example/solr/conf" folder
cp ../public_html/sites/all/modules/apachesolr/schema.xml /solr/example/solr/conf cp ../public_html/sites/all/modules/apachesolr/solrconfig.xml /solr/example/solr/conf
6. To test if Apache Solr is working try below command :
cd /solr/example java -jar start.jar
Now, try to access your Apache Solr page with below URL :
http://localhost:8983/solr/admin/
You may replace "localhost" to your own "IP Address". If you saw an Apache Solr page, then, it's working. If not, make sure you don't have any firewall to block port 8983. After you're done setting it, you can block port 8983 as usual. Since you don't need to open your firewall to access localhost. If Apache Solr is running, you will see something similar to image below :
7. Try to enable Apache Solr Module in your Drupal. It should work now.
8. Now, I'm sure you don't want to run "java -jar start.jar" everytime you reboot your server. So, you have to create Start/Stop script to make it automatically startup when reboot. So, follow steps below :
Create Apache Solr Start/Stop Script
nano -w /etc/init.d/solr
Copy and paste code below :
Apache Solr Start/Stop Script
#!/bin/sh -e # Starts, stops, and restarts solr # chkconfig: 35 92 08 # description: Starts and stops Apache Solr SOLR_DIR="/solr/example" JAVA_OPTIONS="-Xmx1024m -DSTOP.PORT=8079 -DSTOP.KEY=stopkey -jar start.jar" LOG_FILE="/var/log/solr.log" JAVA="/usr/bin/java" case $1 in start) echo "Starting Solr" cd $SOLR_DIR $JAVA $JAVA_OPTIONS 2> $LOG_FILE & ;; stop) echo "Stopping Solr" cd $SOLR_DIR $JAVA $JAVA_OPTIONS --stop ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" >&2 exit 1 ;; esac
Above is the startup script. What you really need to change is line #7 which is the path to your Apache Solr file.
You may also need to look at line #8. "-Xmx1024m" is to set maximum memory allowed to use in Java. Here, I set it to 1 gigabyte (= 1,024 megabytes). Lower it if you don't have that much RAM or increase it if Apache Solr needs more RAM.
Once you are done with it. run
chmod 755 /etc/init.d/solr
Now, you can start stop or restart Apache Solr with below command :
service solr start service solr stop service solr restart
To make it run automatically, run below command :
sudo chkconfig --add solr
Software :
- CentOS 5.4 - 64 bits
- Apache Solr 1.4.1
- OpenJDK though Yum package
- Drupal 6.20
- Apache Solr module 1.2 for Drupal
Source :
- http://drupalcode.org/project/apachesolr.git/blob/HEAD:/README.txt
- http://19thstreetdesign.com/blog/2009.02.04/installing-apache-solr-drupal-6
- http://drupal.org/node/545368
Update : 2011.07.25 - Tested with Apache Solr 3.3 and it works using the same instruction.
Great post worked perfectly!
giving it a try
thanks
Tnx
Problem Not_found
UwTgAyEKKLKatZdjWi
Hi,Nice trick but for me it is not working. I am using dupal 6.x and try to use your code in my moulde. let me explain what am i exactly doing so you might help me. in my moulde i am creating one database and after that fetching values from .sql file and trying to insert it into newly created database. Now with my moulde i have made one database but to insert new query in that database i have to switch db and run query. When i try to use your trick it simple give me error that Access denied for moulde and logout from website. can you help me ? you can directly email me also if you have some solution.
Tested on Debian Squeeze with Apache Solr 3.6.2 and Drupal 7.19
works great!!! Thank you very much!