Most people will find that installing CAS 3.0.x on RHEL 5 isn't initially as straightforward as they hoped. This is largely in part due to Redhat not officially supporting either the Sun Java Development Kit (JDK). By default, Redhat has bundled RHEL 5 with the GNU Compiler for Java (GCJ) from JPackage, which is equivalent to J2SE 1.4.2 as of July 2007. This can cause code compiled by newer versions of Sun JDK to be incompatible with GCJ. However, it is not only possible but fairly easy to get CAS 3.0.x deployed on RHEL 5.
As an alternative to the instructions below it is possible to use the Sun JVM/JDK (1.5.0) which is supplied on the RHEL5 Supplementary Disc, and the corresponding supplementary updates repository. This can be used with the stock RHEL5 version of tomcat (5.5.23). The advantage of using the packages which are supplied by Red Hat is that you will be provided with security updates for these packages by Red Hat - otherwise you will have to manually monitor the relevant upstream mailing lists for security announcements, and then download and reinstall security fixes as necessary. Once you have the RHEL5 supplementary repository configured, you can:
The newly installed JVM and JDK will become the default via the Linux "alternatives" mechanism. To verify the Java version being used, drop the following code snippet into /var/lib/tomcat5/webapps/test/index.jsp
and check the output with:
NOTE: This walkthrough uses Apache HTTP server to front-end Apache Tomcat 5.5.x for SSL by forwarding requests through the Apache mod_jk module.
NOTE: This walkthrough involves the use of precompiled Sun Java 6 and Apache Tomcat 5.5.x binaries rather than keeping RHEL 5 in sync with yum repositories.
NOTE: You can avoid step 2, 4, 5 and 6 and keep your Tomcat package in sync with the Redhat yum repo. However you'll end up with a somewhat mixed environment that may cause some issues. See http://www.ja-sig.org/wiki/display/CASUM/Switching+to+a+Sun+JVM+in+RHEL.
Step 1: Download and install Apache HTTP server
The following software packages from yum should be installed for Apache HTTP:
The following software packages are optional but necessary if you want to install the Apache mod_jk module to forward Apache HTTP requests to Apache Tomcat. If not, then you can use the Apache mod_proxy_ajp module installed by default with Apache HTTP:
Once all of the packages have been installed, check the /usr/lib/httpd/modules directory to make sure that the mod_proxy_ajp module was installed. The mod_proxy_ajp module is needed to front-end Apache Tomcat with Apache HTTP, which we will see later.
The only immediate Apache HTTP configuration change that needs to be made now is to configure the server's host name. This can be done by editing the /etc/httpd/conf/httpd.conf file, uncommenting the line with ServerName, and setting it appropriately for the server.
Step 2: Remove pre-installed version of Apache Tomcat 5.5.x
If your installation of RHEL 5 has Apache Tomcat 5.5.x installed by default, then it must be removed. This can be done easily through yum as RHEL 5 saw Redhat replacing up2date with yum as the preferred package management tool.
Once Tomcat is removed, then we can move onto setting up our Sun Java environment!
Step 3: Download and install Sun JDK
NOTE: If you are trying to install the Sun JDK on a remote server, then you will have to download the JDK through a text web browser such as elinks, which is available through yum and usually installed by default. An interactive browser is necessary as you must agree to Sun's licensing terms. If this is not an option, then you can always download it on another computer and FTP it to the remote server.
In order to download a version of Sun JDK, navigate to Sun's Java website (http://java.sun.com/) and choose either the Java Standard Edition (Java SE) or Java Enterprise Edition (Java EE). After agreeing to Sun's licensing agreement, download the Linux RPM in self-extracting file (jdk-6u2-linux-i586-rpm.bin).
Once you have downloaded the necessary file to the machine it will be installed upon, we can begin the installation process. The RPM must be executable in order for it to be installed, so chmod in the example below and execute the RPM. Several pages of licensing terms will be displayed which you must agree to abide by before the JDK will be installed. By default, the JDK will be installed under the /usr/java directory with sym links to the version installed.
Now that the Sun JDK is installed, we need to set up the necessary environment variables for Java and Tomcat for all users.
Step 4: Set up necessary environment variables
There are two main reasons why we need to set up environment variables for Java:
To set up environment variables for all users, we will edit /etc/profile which affects all users. Open your favorite text or line editor (shameless plug for vim) and add the following block at the top of the file:
These environment variables will take effect whenever you next login to the machine. You can also run each of these commands from the console to take effect immediately.
Step 5: Download and install Apache Tomcat 5.5.x
NOTE: If you are trying to install the Apache Tomcat on a remote server, then you can download it through wget, which is available through yum and usually installed by default. If this is not an option, then you can always download it using a text web browser such as elinks or FTP from another computer.
In order to download Apache Tomcat 5.5.x, navigate to the Apache Tomcat website (http://tomcat.apache.org/) and click on the Tomcat 5.x link under the Download section. The following screen will allow you to download the latest version of Apache Tomcat, which is 5.5.23 as of July 2007. Under the "Binary Distributions" section of 5.5.23, choose to download the TAR.GZ version of the Core distribution as seen in the screenshot below.
Once you have downloaded the TAR.GZ, you simply need to extract the files from it into the directory where Tomcat will live. This needs to be the same as the CATALINA_HOME environment variable we set earlier (/usr/local/tomcat). Also, Tomcat needs a user account to run as, so we will create the "tomcat" user and give it permission to the Tomcat directory.
Step 6: Download and install Apache Ant
Step 7: Forward Apache HTTP requests to Apache Tomcat
Step 8: Download and deploy CAS server 3.0.x