Installing Railo on EC2 with Amazon Linux

After following the Comments on Ben's blog about EC2 and Railo I dedcided to type up my notes in case they might help anyone. This assumes you know how to setup an account and the firewall. There is a GUI on the amazon site to do all this and setup your security files to SSH. If not google and you can find videos.

1. Setup an EC2 account and launch an Amazon Linux AMI instance with the security settings to have ports :20, 21, 22, 80, 3306,8888 open.

2. Once it's launched ssh to your new instance as ec2-user

3. sudo su - ( logs you in as root )

Update AMAZON LINUX

yum update

Install MYSQL

yum install mysql mysql-server

This installs mysql just follow the prompts.

chkconfig mysqld on

This sets mysql to run on the start of the instance. ( edit the server settings in /etc/my.cnf with nano )

service mysqld start

This starts MYSQL on your instance for the first time.

cd /usr/bin/
./mysql_secure_installation

This file lets you setup the mysql root password and disable other stuff. The default mysql root password is "blank" so you must run this script.

CREATE USER 'remote_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'localhost';
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';

% lets your user login from anywhere usually this is a bad idea. Set it to your IP address will be connecting remotely from. Localhost setups up the user so your Railo DSN's can talk to mysql. Change 'password' to a secure password you want to use.

Apache

yum install httpd httpd-devel
chkconfig httpd on
service httpd start

This is similar to how we did mysql. If you navigate to your instance http://[yourinstancename].compute-1.amazonaws.com/ you should get the apache start screen.

Railo

cd /tmp
wget http://railo.viviotech.net/downloader.cfm/id/15/file/railo-3.2.1.000-pl0-linux-x64-installer.run
chmod 777 railo-3.2.1.000-pl0-linux-x64-installer.run
./railo-3.2.1.000-pl0-linux-x64-installer.run

This runs the installer you'll need the folders below. On the 64bit version the defaults work. Apache is 2.2 for the connector.

/etc/rc.d/init.d/httpd
/usr/lib64/httpd/modules
/etc/httpd/conf/httpd.conf

http://[yourinstancename].compute-1.amazonaws.com:8888
http://[yourinstancename].compute-1.amazonaws.com:8888/railo-context/admin/web.cfm
http://[yourinstancename].compute-1.amazonaws.com:8888/railo-context/admin/server.cfm

Railo will now be running you can get to it by your EC2 name and port 8888 check the server and web admin to make sure the passwords are setup.

Configuring a new site on APACHE and RAILO

The sites need to be setup in railo and apache we'll setup a test site so you can see what to do.

On you laptop edit your hosts file and add an entry for :

999.999.999.999 mytestdomain.com
999.999.999.999 www.mytestdomain.com

Substitue your EC2 ip for 999.999.999.999

on your EC2 instance :

cd /var/www/
mkdir mytestdomain.com
cd mytestdomain.com
mkdir html
cd html
nano index.cfm
cd ..
cd ..
chmod -R 777 mytestdomain.com

Setup the folder for Apache and Railo. And add a default index.cfm page with hello world in it. This is where your code will go.

nano /opt/railo/tomcat/conf/server.xml

At the end of the file near the example add:

<Host name="www.mytestdomain.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

<Context path="" docBase="/var/www/mytestdomain.com/html/" />
</Host>

This will add the webroot to railo

/opt/railo/railo_ctl restart

This will reboot railo to see the new web folder.

nano /etc/httpd/conf/httpd.conf

ctr-w : index.html ( to find the line ) and add index.cfm to the end of the DirectoryIndex index.html index.html.var index.cfm line.

service httpd restart

Restart Apache

Navigate to www.mytestdomain.com and you should be running Railo

This is just a summary of my notes to get everything running. Obviously your milage will vary and you need to know about running Apache,MYSQL, and railo :). Good Luck.

Notes and stuff

nano /opt/railo/tomcat/bin/setenv.sh [to setup memory settings for railo]

/opt/railo/railo_ctl restart [restart railo]

Comments

1
Aaron Chapman

Thank you very much. It worked like a charm!

2
Jeff R

Glad to be of help :)

3
Tommy R

Hi, I know this is an old blog post, but I followed it step for step and cannot get the virtual host part to work I'm guessing. Here is my virtual host settings


<Host name="www.mydomain.com"; appBase="webapps"
unpackWars="true" autoDeploy="true"
xmlValidator="false" xmlNamespaceAware="false">
<Context path="" docBase="/var/www/mydomain.com" />
</Host>

Any help would be greatful :)

4
Jeff R

Thanks Tommy. I think Mango Blog ate some of the config last time I changed something. I added the config in info and it;s showing up and fixed a few other things. I went back through the steps and they seem to work as expected.

Hope that helps :)

6
Marvin V

Is it not:

service httpd restart Rather than service restart httpd

had problems with this :)

7
Jeff R

Thanks Marvin,

I've fixed the instructions. Hope it didn't cause you too much trouble.

Cheers

8
Marvin V

No problems at all, thanks for the tutorial Jeff!!

Write your comment

(it will not be displayed)

Leave this field empty: