Recalling from the previous article "
Quest of the Holy Cloud" I got a provider and started a simple VM over there.
One of my first actions was to
baptize my server and give it a fancy hostname.
Now lets come to the juicy part. In this article I am going to build a simple application server to handle PDF trans-code to images with a custom Java application I built.
The actions I am going to demonstrate are how to:
- Setup OpenJKD on Fedora 22
- Install Ghostscript libraries required for my application.
- Download, install and configure Apache Tomcat 7
- Install and configure Apache HTTPd.
- Installing Open JDK
Install OpenJDK
The first step is really easy. We need a JDK or a JRE in order to run Tomcat that hosts our application. The straight option is to use
opensource community JAVA: OpenJDK.
To do so, I entered the following commands:
# dnf install java
Last metadata expiration check performed 1:09:31 ago on Mon Mar 7 12:20:26 2016.
...
To check where java is and what has been installed:
# which java
/bin/java
# java -version
openjdk version "1.8.0_72"
OpenJDK Runtime Environment (build 1.8.0_72-b15)
OpenJDK 64-Bit Server VM (build 25.72-b15, mixed mode)
Install Ghostscript
Most of the software I wrote rely to
Ghostscript shared libraries that are called from the corresponding Java API. To install them I entered the following commands:
# dnf install ghostscript
Last metadata expiration check performed 1:15:36 ago on Mon Mar 7 12:20:26 2016.
..
The library got installed at:
# ls -lh /lib64/libgs*
..
-rwxr-xr-x. 1 root root 16M Mar 31 2015 /lib64/libgs.so.9.16
# file /lib64/libgs.so.9.16
/lib64/libgs.so.9.16: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6601d742a4829cb3e4fe8197f1b1457f665ce130, stripped
Install Apache Tomcat 7
Apache Tomcat 7 can be downloaded from here as a tar.gz file by picking up a binary distribution as follows:
# cd /opt
# wget http://mirror.serversupportforum.de/apache/tomcat/tomcat-7/v7.0.68/bin/apache-at-7.0.68.tar.gz
# tar -xvf apache-tomcat-7.0.68.tar.gz
Now tomcat is not provided as a service from Fedora. To do so, we need to create a simple start script in /etc/init.d:
# cd /etc/init.d
# vi tomcat
paste the following to the script tomcat:
#!/bin/bash
# start/ stop Tomcat script
# Since you are using OpneJDK put this as your java home
JAVA_HOME=/
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
# Where you have placed tomcat
CATALINA_HOME=/opt/apache-tomcat-7.0.68
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
Now tomcat needs to be registered as a Linux service. To do so add those commands:
# cd /etc/init.d
# chmod 755 tomcat
# chkconfig --add tomcat
# chkconfig --level 234 tomcat on
# chkconfig --list tomcat
Installing Apache HTTPD
This comes
as a standard service supported from Fedora distribution. To install it:
# dnf install httpd
...
For a very fast configuration of http you can edit httpd.conf and add a simple virtual host:
# vi /etc/httpd/conf/httpd.conf
# add where "Listen 80" is:
Listen My.Host.IP.Here:80
DocumentRoot "/www/illumineit.com"
ServerName www.illumineit.com
# Other directives here
Since in modern Cloud environments the linux firewall IP Tables may block everything, here are the commands to unlock the ports:
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
You can start the HTTP service and get its status:
# service httpd start
Redirecting to /bin/systemctl start httpd.service
# service httpd status
Redirecting to /bin/systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2016-03-07 14:09:27 UTC; 4s ago
Main PID: 1760 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─1760 /usr/sbin/httpd -DFOREGROUND
├─1761 /usr/sbin/httpd -DFOREGROUND
├─1762 /usr/sbin/httpd -DFOREGROUND
├─1763 /usr/sbin/httpd -DFOREGROUND
├─1764 /usr/sbin/httpd -DFOREGROUND
└─1765 /usr/sbin/httpd -DFOREGROUND
Mar 07 14:09:27 securepdf.illumineit.com systemd[1]: Starting The Apache HTTP Server...
Mar 07 14:09:27 securepdf.illumineit.com systemd[1]: Started The Apache HTTP Server.
The deployment directory for tomcat where you can place your WAR files is: /opt/apache-tomcat-7.0.68/webapps/ since I have donwloaded and installed tomcat on /opt.
You can use WinSCP to copy your WAR file there:
# ls -lh /opt/apache-tomcat-7.0.68/webapps/
total 27M
drwxr-xr-x. 14 root root 4.0K Mar 3 11:00 docs
drwxr-xr-x. 7 root root 4.0K Mar 3 11:00 examples
drwxr-xr-x. 5 root root 4.0K Mar 3 11:00 host-manager
drwxr-xr-x. 5 root root 4.0K Mar 3 11:00 manager
drwxr-xr-x. 3 root root 4.0K Mar 3 11:00 ROOT
drwxr-xr-x. 4 root root 4.0K Mar 4 16:59 zsecure-pdf
-rw-r--r--. 1 root root 27M Mar 4 16:59 zsecure-pdf.war