Installing Solr + Tomcat on RHEL5

March 31st, 2010 § 3 comments § permalink

Installing JDK

Download the latest Sun JDK RPM.

  1. Go to java.sun.com and navigate to the downloads page. As of this writing it is http://java.sun.com/javase/downloads/index.jsp
  2. If you are on a text console, you may want to use the “links” text browser rather than wget or curl. The Sun site requires you to accept a license agreement before it will allow you to access the download.
  3. Navigate to the downloads for a recent version of the JDK (e.g. JDK 6 update 2).
  4. On the downloads page, download the “Linux RPM in self-extracting file” This will have a name such as jdk-6u2-linux-i586-rpm.bin
  5. Save the file in a convient location (/tmp would work).

Extract and install the RPM

  1. In the directory that you saved the rpm.bin file, type:
    ./jdk-6u2-linux-i586-rpm.bin
  2. The JDK should extract and install. There is a licence agreement.

Installing Tomcat

First, download Tomcat from Apache or a mirror site and unpack it.

Next you need to decide where to put Tomcat. You will need a directory for your Tomcat installation and also a place to store your Tomcat applications. This can be the same directory, but does not have to be. The method that I will illustrate here uses /opt/mytomcat for both directories

Often you may need to refer to the directory in which Tomcat is installed. This is stored in the environment variable $CATALINA_HOME (Catalina is Tomcat’s servlet container). Thus, by installing Tomcat into /opt/mytomcat, we can consider /opt/mytomcat to be $CATALINA_HOME.

ln -s /opt/apache-tomcat-5.5.23 /opt/mytomcat

Next, you need to decide how you will run Tomcat. Tomcat can be run as root or as a regular user. For security reasons, many people prefer to create a special user account to run Tomcat and to own Tomcat files. In this example, I will show how to set up a ‘mytomcat’ user. You’ll need to do most of the installation and setup as root and can then chown files to be owned by the mytomcat user.

/usr/sbin/groupadd mytomcat
/usr/sbin/useradd -g mytomcat -d /opt/mytomcat mytomcat

Change the directory to be owned by the mytomcat user (and also group mytomcat):

chown mytomcat.mytomcat mytomcat
chown mytomcat.mytomcat apache-tomcat-5.5.23

In order for Tomcat to find the installation of Java, you need to set the JAVA_HOME environment variable. One way to do this is to create a file $CATALINA_HOME/bin/setenv.sh that contains the following line:

JAVA_HOME="/usr/java/latest"

At this point, we should be able to try starting Tomcat. Since you are probably root, but we want to run Tomcat as user ‘mytomcat’, use ‘su -c’ to run the startup.sh script:

su mytomcat -c $CATALINA_HOME/bin/startup.sh

If everything worked, you should be able to navigate to http://localhost:8080 and see the Tomcat welcome page.
To stop the server, use:

su mytomcat -c $CATALINA_HOME/bin/shutdown.sh

Installing Solr

Download SOLR from Apache or a mirror, unpack it, and set up a link to it from /opt/solr.

cd /opt
wget ftp://www.ibiblio.org/pub/mirrors/apache/lucene/solr/1.2/apache-solr-1.2.0.tgz
tar xvzf apache-solr-1.2.0.tgz
ln -s apache-solr-1.2.0.tgz /opt/solr

Change the ownership and group to be mytomcat:

chown -R mytomcat:mytomcat solr
chown -R mytomcat:mytomcat apache-solr-1.2.0

Make a copy of a SOLR webapp. SOLR instances run as web applications in the webapps directory of Tomcat. There is a default application in /opt/solr/dist that is packaged as a .war file. To use this, just copy it over to /opt/mytomcat/webapps and give it a descriptive name:

cp /opt/solr/dist/apache-solr-1.2.0.war /opt/mytomcat/webapps/mytestapp.war
chown mytomcat:mytomcat /opt/mytomcat/webapps/mytestapp.war

SOLR stores its indicies for each instance in a “solr/home” directory. For SOLR webapps that you run, you will need to create a solr/home directory. I put all mine in /opt/solr_home, so that I have directories like /opt/solr_home/app1, /opt/solr_home/app2,… There is a sample directory that you should copy that contains the starting files and directories that SOLR expects for the solr/home:

mkdir /opt/solr_home
cp -R /opt/solr/example/solr /opt/solr_home/mytestapp
chown -R mytomcat:mytomcat /opt/solr_home

Works very well and rather straight out of the box.

All the credit goes to Robert – http://www.ils.unc.edu/~rcapra/rhel5-tomcat-solr.php

The above guide with some minor changes here and there.

Login, search and apply for jobs on mosambe

May 5th, 2009 § 1 comment § permalink

Waltz in bugland

April 1st, 2009 § 2 comments § permalink

I have been working on other people’s bugs for the last couple of weeks and it has been a terribly painful experience. This has been a great experience which has taught me a lot of corrective measures for the roadmap ahead for me. Some basic observations are

  • Not everyone can program or should program – Conceptually it is really easy to type in read a tutorial or 2. But what i saw is pure torture for a guy like me , you need some talent to write a decent application.
  • Bad deadlines always means bad code – I come from a difficult school where we more often than not had hard deadline on coding. More often than not best practices go for a toss when you do not set realistic deadline.
  • Not all developers can be good managers – Very obvious , but unless one can see it in practice all is theory i would say. This is confirmed after repeated experiments
  • Focus on the meat, rest is crap – People start focusing on the fringes far too often, look into the core and there is so much to be done always. It does seem that fringes are always better for the ego and easier to handle.
  • Hiring people from good schools does not cover up older issues – It really unfair on “people” from good schools to have to clean up the mess, hire well from start and focus on building a clean application if not a “high performance” one.

Thats all to be honest, there will be always more to say. I have always believed that the mistakes are on both the sides when things fail (some more than others although), but these are things which are observed over a variation of organisation and individuals.