Command line tip: In the examples provided below, $username represents the username associated with the individual cPanel account. For example, if the cPanel account's username is example123, then the following example:/home/$username/.bashrc
Should look like this in actual use:/home/example123/.bashrc
II. Installing Tomcat
1. Install the Tomcat RPM
First, we need to install the ea-tomcat85 and rng-tools packages. The command below will accomplish this quickly:
yum install ea-tomcat85 rng-tools -y
2. Add Tomcat Support to an account
Next, we need to add support for Tomcat to the account(s) that will need it. Use the command below, replicating for each user that requires Tomcat:
/scripts/ea-tomcat85 add $username
Once the above is complete, you can verify that Tomcat is enabled for the accounts with
/scripts/ea-tomcat85 list
III. Installing Ubic
1. Installation
Installation of Ubic for any given cPanel user is quite straight forward. It requires the cPanel user to have shell access to the server and write permissions to the users /home/$username/.bashrc file. The below command can be pasted into the shell/terminal while logged with root access after replacing $username with the correct username.
su - $username
echo "export PATH=$(dirname $(readlink /usr/local/cpanel/3rdparty/bin/perl)):$PATH" >> /home/$username/.bashrc
Note: You can skip the "su" command if you access SSH directly as the cPanel user.
a. CloudLinux Considerations
If you are using CloudLinux, then you will also need to run the following commands (from the root level) to add Java to the CageFS mounts:
cagefsctl --addrpm tzdata-java
cagefsctl --force-update
2. Verification/Testing
Once installed you can test that Ubic is functioning, and that Tomcat is installed/enabled for the user with this command (from the root level):
su - $username -s /bin/bash -c 'ubic status ea-tomcat85'
IV. Tomcat Environment Configuration
Configuration of the Tomcat environment is the most involved portion of this process. The steps outlined below can be used to configure the environment properly. Please be aware that the ports noted below are examples, and your specific ports may vary.
1. Configure the application directory
To enable the ROOT webapp directory for testing, add the following entry to the <Host> section in the /home/$username/ea-tomcat85/conf/server.xml file. This section begins with the deploy options, so this can be placed below the line containing the autoDeploy, deployOnStartup, and deployXML settings. Here's an example of how this should look, with the entry you must add displayed in bold text:
2. Verify the environment
To verify that the environment is functional, we recommend you copy our test.jsp and attempt to call it directly, before making any changes that may affect Apache's configuration.
You'll need to know the port to test against. It can be obtained using the following command:
egrep 'Connector port.*HTTP' /home/$username/ea-tomcat85/conf/server.xml
In order to copy the test script you would use the below command:
sudo -u $username cp -avp /opt/cpanel/ea-tomcat85/test.jsp /home/$username/ea-tomcat85/webapps/ROOT/
Once done restart the Private Tomcat Instance for the user:
su - $username -s /bin/bash -c 'ubic restart ea-tomcat85'
To confirm test.jsp is working, access "http://yourserverip:$PORT/test.jsp" with your favorite method, where $PORT is the port obtained previously. You should receive a page containing the following:
3. Configure Proxypass
First, you'll need to obtain the AJP connector port so that you can properly configure the ProxyPass directive. This command will return the port information:
egrep 'Connector port.*AJP' /home/$username/ea-tomcat85/conf/server.xml
Once you have obtained the port you can then create a ProxyPass Apache include file. Remember to perform this action twice. Once for http (std) and once for https (ssl). This uses the same methodology as our Apache VHost Includes. The include path for http (std) would be:
and the file would look similar to this:
<IfModule proxy_ajp_module>
ProxyPass "/" "ajp://127.0.0.1:$PORT/"
</IfModule>
where $PORT is the port value returned from the earlier command.
After creating the include files you'll need to rebuild the Apache configuration, and restart the service. The pair of commands noted below will accomplish this quickly for you:
/usr/local/cpanel/scripts/rebuildhttpdconf && /usr/local/cpanel/scripts/restartsrv_httpd
Finally, confirm that the ProxyPass include is working by loading up "http://yourdomain.tld/test.jsp" in your favorite browser. As before, you should receive the following output:
V. Installing your site
If you've made it this far successfully you're ready to install your application. Simply copy the application files into /home/$username/ea-tomcat85/webapps/ROOT/ and your application will load at yourdomain.tld/.