Thursday, February 10, 2011

Install Apache Roller 4 on CentOS and Tomcat

This post will cover installing Apache Roller 4.0.1 on CentOS with Tomcat and MySQL.

4.0.1 is the current GA production release of Apache Roller.

For this post, you will need a working installation of Tomcat. If you do not have Tomcat installed, you can install it using our Tomcat step-by-step guide here.

What you will need to download:
JavaMail 1.4.4

I'll be saving the above file to my /opt directory.

1. Create the Required MySQL Database and User:

We'll call our database 'roller'

[root@srv6 opt]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2694
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database roller;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on roller.* to myuser@localhost identified by 'secret';
Query OK, 0 rows affected (0.00 sec)


2. Copy The Required JAR Files to the Tomcat/lib Directory

From our downloads, we'll need to copy the mail.jar and mysql-connector-java-5.1.15-bin.jar to our Tomcat/lib Directory


[root@srv6 opt]# unzip -q
Change to the javamail-1.4.4 directory and copy mail.jar to the Tomcat lib directory:
[root@srv6 opt]# cd javamail-1.4.4
[root@srv6 javamail-1.4.4]# cp mail.jar /usr/share/apache-tomcat-6.0.30/lib/mail.jar

Change back to the /opt directory and unpack mysql-connector-java-5.1.15.tar.gz

[root@srv6 javamail-1.4.4]# cd /opt
[root@srv6 opt]# tar -xvf mysql-connector-java-5.1.15.tar.gz

Change to the mysql-connector-java-5.1.15 directory and copy mysql-connector-java-5.1.15-bin.jar to the Tomcat lib directory:

[root@srv6 opt]# cd mysql-connector-java-5.1.15
[root@srv6 mysql-connector-java-5.1.15]# cp mysql-connector-java-5.1.15-bin.jar /usr/share/apache-tomcat-6.0.30/lib/mysql-connector-java-5.1.15-bin.jar

3. Create a File

We'll now create our file in the Tomcat/lib directory

[root@srv6 mysql-connector-java-5.1.15]#  cd /usr/share/apache-tomcat-6.0.30/lib
[root@srv6 lib]# vi

The file should contain the following. Replace database, user and password with your own. If required enter the mail user credentials as well.


4. Create roller.war

We now need to build the roller.war file from our Roller download.

[root@srv6 opt]# unzip -q
Change to the apache-roller-4.0.1/webapp/roller directory
[root@srv6 opt]# cd apache-roller-4.0.1/webapp/roller
Create the WAR file
[root@srv6 roller]# % jar cvf ../roller.war *

5. Copy the roller.war to your Tomcat/webapps Directory

The roller.war file is created apache-roller-4.0.1/webapp directory. Copy the WAR to your Tomcat/webapps directory

[root@srv6 webapp]# cp roller.war /usr/share/apache-tomcat-6.0.30/webapps/roller.war

6. Start Tomcat

Start up Tomcat to load your new files and jars.

[root@srv6 webapp]# service tomcat start
Using CATALINA_BASE:   /usr/share/apache-tomcat-6.0.30
Using CATALINA_HOME:   /usr/share/apache-tomcat-6.0.30
Using CATALINA_TMPDIR: /usr/share/apache-tomcat-6.0.30/temp
Using JRE_HOME:        /usr/java/jdk1.6.0_23
Using CLASSPATH:       /usr/share/apache-tomcat-6.0.30/bin/bootstrap.jar

7. Create Roller Tables in MySQL via Roller GUI

If your installation was successful, you should now be able to go to http://YourIP:8080/roller or http://YourDomain:8080/roller

If you are not able to access Roller, check your catalina.out or roller.log files in your Tomcat/logs directory.

You should see a prompt to create the roller tables in MySQL.

Click the "Yes - Create Tables Now" button

On successful completion of creating the Roller tables in MySQL you will see the following:

Follow the prompt and click to complete the installation.

8. Create Global Admin User

The Roller Front Page should now be displayed as below.

Click the 'New User Registration Link' to create your Global Admin user. As noted, the first user registered will have Global Admin rights.


Anonymous said...

I installed, step by step but I have a problem.

catalina.out file:

org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/roller] appears to have started a thread named [Store userCache Expiry Thread] but has failed to stop it. This is very likely to create a memory leak.

What is the problem?What can I do for solution?

David Ghedini said...

Hi -

Can you verify that you have the mail.jar and activation.jar under Tomcat/lib?