Skip to content

Commit 0374d36

Browse files
Seshagiri SriramSeshagiri Sriram
authored andcommitted
Added Notes for install of Java and Tomcat as well as some sample tomat config files
1 parent 5f60642 commit 0374d36

File tree

5 files changed

+326
-0
lines changed

5 files changed

+326
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#******* Setting up Maven3 on Ubuntu 14.0.4 LTS
2+
# Purge Maven firsts
3+
sudo apt-get purge -y maven maven2 && sudo apt-get -y autoremove
4+
# Add maven 3 repository
5+
sudo apt-add-repository -y ppa:andrei-pozolotin/maven3
6+
# install maven 3 (Ensure JDK8 is installed first see below)
7+
sudo apt-get install -y maven3
8+
#****** Purge and Add JDK 8 on Ubuntu 14.0.4 LTS
9+
# Remove java firsts
10+
sudo apt-get purge -y openjdk* && sudo apt-get autoremove -y
11+
# Install Java
12+
sudo add-apt-repository ppa:openjdk-r/ppa # First do an update
13+
sudo apt-get update
14+
sudo apt-get install -y openjdk-8-jdk #actually do it...
15+
#Verify Java 8 is the default
16+
update-alternatives --config java # in prompt, if one, select version of java
17+
update-alternatives --config javac # in prompt, if one, select version of javac
18+
#****** Install Tomcat 8 on Ubuntu 14.0.4 LTS
19+
# refer: https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-14-04
20+
# add user tomcat
21+
sudo groupadd tomcat
22+
# add user tomcat8
23+
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat8 tomcat8
24+
# get code for tomcat 8
25+
# update URL as required.
26+
wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/apache-tomcat-8.5.9.tar.gz
27+
# make a directory and unzip to this folder
28+
sudo mkdir /opt/tomcat8
29+
sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat8 --strip-components=1
30+
cd /opt/tomcat8
31+
# change ownershp and permissions
32+
sudo chgrp -R tomcat conf # Change group
33+
sudo chmod g+rwx conf #Change write permissions on conf folder
34+
sudo chmod g+r conf/* # change permissions on files inside conf folder
35+
sudo chown -R tomcat8:tomcat work/ temp/ logs/ # change ownership of files
36+
#***** To start tomcat as a service, you need to create a file
37+
sudo vi /etc/init/tomcat8.conf #create and edit file with below content
38+
# Replace the 1st character of content from # to <blank> (uncomment it)
39+
#********************** START OF CONTENT
40+
#description "Tomcat 8 Server"
41+
#start on runlevel [2345]
42+
#stop on runlevel [!2345]
43+
#respawn
44+
#respawn limit 10 5
45+
#setuid tomcat8
46+
#setgid tomcat
47+
#env JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
48+
#env CATALINA_HOME=/opt/tomcat8
49+
## Modify these options as needed
50+
#env JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
51+
#env CATALINA_OPTS="-Xms1024M -Xmx1024M -server -XX:+UseParallelGC"
52+
#exec $CATALINA_HOME/bin/catalina.sh run
53+
## cleanup temp directory after stop
54+
#post-stop script
55+
#rm -rf $CATALINA_HOME/temp/*
56+
#end script
57+
#********************** END OF CONTENT
58+
# once the file has been created and properly commented out,
59+
# start it ....
60+
sudo initctl reload-configuration # reload
61+
sudo initctl start tomcat8 # start it.. from now one, it will start automatically
62+
#***** CHanging tomcat8 port
63+
# edit $CATALINA_HOME/conf/server.xml and change port number accordingly
64+
#***** Enabling Security/Manager application in tomcat 8
65+
# edit $CATALINA_HOME/conf/tomcat-users.xml and add following roles
66+
# Sample Server.xml/tomcat-users.xml file is attached in same folder
67+
# if you are also adding support for the manager application
68+
# (Which BTW is not recommended in production)
69+
# you need to change $CATALINA_HOME/webapps/manager/META-INF/context.xml
70+
# A sample is attached.
71+

INSTALL_NOTES/sample_context.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
Licensed to the Apache Software Foundation (ASF) under one or more
4+
contributor license agreements. See the NOTICE file distributed with
5+
this work for additional information regarding copyright ownership.
6+
The ASF licenses this file to You under the Apache License, Version 2.0
7+
(the "License"); you may not use this file except in compliance with
8+
the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
-->
18+
<Context antiResourceLocking="false" privileged="true" >
19+
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
20+
allow="192\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
21+
</Context>

INSTALL_NOTES/sample_server.xml

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
Licensed to the Apache Software Foundation (ASF) under one or more
4+
contributor license agreements. See the NOTICE file distributed with
5+
this work for additional information regarding copyright ownership.
6+
The ASF licenses this file to You under the Apache License, Version 2.0
7+
(the "License"); you may not use this file except in compliance with
8+
the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
-->
18+
<!-- Note: A "Server" is not itself a "Container", so you may not
19+
define subcomponents such as "Valves" at this level.
20+
Documentation at /docs/config/server.html
21+
-->
22+
<Server port="8005" shutdown="SHUTDOWN">
23+
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
24+
<!-- Security listener. Documentation at /docs/config/listeners.html
25+
<Listener className="org.apache.catalina.security.SecurityListener" />
26+
-->
27+
<!--APR library loader. Documentation at /docs/apr.html -->
28+
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
29+
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
30+
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
31+
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
32+
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
33+
34+
<!-- Global JNDI resources
35+
Documentation at /docs/jndi-resources-howto.html
36+
-->
37+
<GlobalNamingResources>
38+
<!-- Editable user database that can also be used by
39+
UserDatabaseRealm to authenticate users
40+
-->
41+
<Resource name="UserDatabase" auth="Container"
42+
type="org.apache.catalina.UserDatabase"
43+
description="User database that can be updated and saved"
44+
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
45+
pathname="conf/tomcat-users.xml" />
46+
</GlobalNamingResources>
47+
48+
<!-- A "Service" is a collection of one or more "Connectors" that share
49+
a single "Container" Note: A "Service" is not itself a "Container",
50+
so you may not define subcomponents such as "Valves" at this level.
51+
Documentation at /docs/config/service.html
52+
-->
53+
<Service name="Catalina">
54+
55+
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
56+
<!--
57+
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
58+
maxThreads="150" minSpareThreads="4"/>
59+
-->
60+
61+
62+
<!-- A "Connector" represents an endpoint by which requests are received
63+
and responses are returned. Documentation at :
64+
Java HTTP Connector: /docs/config/http.html
65+
Java AJP Connector: /docs/config/ajp.html
66+
APR (HTTP/AJP) Connector: /docs/apr.html
67+
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
68+
-->
69+
<Connector port="8080" protocol="HTTP/1.1"
70+
connectionTimeout="20000"
71+
redirectPort="8443" />
72+
<!-- A "Connector" using the shared thread pool-->
73+
<!--
74+
<Connector executor="tomcatThreadPool"
75+
port="8080" protocol="HTTP/1.1"
76+
connectionTimeout="20000"
77+
redirectPort="8443" />
78+
-->
79+
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
80+
This connector uses the NIO implementation. The default
81+
SSLImplementation will depend on the presence of the APR/native
82+
library and the useOpenSSL attribute of the
83+
AprLifecycleListener.
84+
Either JSSE or OpenSSL style configuration may be used regardless of
85+
the SSLImplementation selected. JSSE style configuration is used below.
86+
-->
87+
<!--
88+
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
89+
maxThreads="150" SSLEnabled="true">
90+
<SSLHostConfig>
91+
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
92+
type="RSA" />
93+
</SSLHostConfig>
94+
</Connector>
95+
-->
96+
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
97+
This connector uses the APR/native implementation which always uses
98+
OpenSSL for TLS.
99+
Either JSSE or OpenSSL style configuration may be used. OpenSSL style
100+
configuration is used below.
101+
-->
102+
<!--
103+
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
104+
maxThreads="150" SSLEnabled="true" >
105+
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
106+
<SSLHostConfig>
107+
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
108+
certificateFile="conf/localhost-rsa-cert.pem"
109+
certificateChainFile="conf/localhost-rsa-chain.pem"
110+
type="RSA" />
111+
</SSLHostConfig>
112+
</Connector>
113+
-->
114+
115+
<!-- Define an AJP 1.3 Connector on port 8009 -->
116+
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
117+
118+
119+
<!-- An Engine represents the entry point (within Catalina) that processes
120+
every request. The Engine implementation for Tomcat stand alone
121+
analyzes the HTTP headers included with the request, and passes them
122+
on to the appropriate Host (virtual host).
123+
Documentation at /docs/config/engine.html -->
124+
125+
<!-- You should set jvmRoute to support load-balancing via AJP ie :
126+
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
127+
-->
128+
<Engine name="Catalina" defaultHost="localhost">
129+
130+
<!--For clustering, please take a look at documentation at:
131+
/docs/cluster-howto.html (simple how to)
132+
/docs/config/cluster.html (reference documentation) -->
133+
<!--
134+
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
135+
-->
136+
137+
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
138+
via a brute-force attack -->
139+
<Realm className="org.apache.catalina.realm.LockOutRealm">
140+
<!-- This Realm uses the UserDatabase configured in the global JNDI
141+
resources under the key "UserDatabase". Any edits
142+
that are performed against this UserDatabase are immediately
143+
available for use by the Realm. -->
144+
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
145+
resourceName="UserDatabase"/>
146+
</Realm>
147+
148+
<Host name="localhost" appBase="webapps"
149+
unpackWARs="true" autoDeploy="true">
150+
151+
<!-- SingleSignOn valve, share authentication between web applications
152+
Documentation at: /docs/config/valve.html -->
153+
<!--
154+
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
155+
-->
156+
157+
<!-- Access log processes all example.
158+
Documentation at: /docs/config/valve.html
159+
Note: The pattern used is equivalent to using pattern="common" -->
160+
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
161+
prefix="localhost_access_log" suffix=".txt"
162+
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
163+
164+
</Host>
165+
</Engine>
166+
</Service>
167+
</Server>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Edit this file as per your requirements.....
2+
description "Tomcat 8 Server"
3+
start on runlevel [2345]
4+
stop on runlevel [!2345]
5+
respawn
6+
respawn limit 10 5
7+
setuid tomcat8
8+
setgid tomcat
9+
env JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
10+
env CATALINA_HOME=/opt/tomcat8
11+
#Modify these options as needed
12+
env JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
13+
env CATALINA_OPTS="-Xms1024M -Xmx1024M -server -XX:+UseParallelGC"
14+
exec $CATALINA_HOME/bin/catalina.sh run
15+
#cleanup temp directory after stop
16+
post-stop script
17+
rm -rf $CATALINA_HOME/temp/*
18+
end script
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
Licensed to the Apache Software Foundation (ASF) under one or more
4+
contributor license agreements. See the NOTICE file distributed with
5+
this work for additional information regarding copyright ownership.
6+
The ASF licenses this file to You under the Apache License, Version 2.0
7+
(the "License"); you may not use this file except in compliance with
8+
the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
-->
18+
<tomcat-users xmlns="http://tomcat.apache.org/xml"
19+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20+
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
21+
version="1.0">
22+
<!--
23+
NOTE: By default, no user is included in the "manager-gui" role required
24+
to operate the "/manager/html" web application. If you wish to use this app,
25+
you must define such a user - the username and password are arbitrary. It is
26+
strongly recommended that you do NOT use one of the users in the commented out
27+
section below since they are intended for use with the examples web
28+
application.
29+
-->
30+
<!--
31+
NOTE: The sample user and role entries below are intended for use with the
32+
examples web application. They are wrapped in a comment and thus are ignored
33+
when reading this file. If you wish to configure these users for use with the
34+
examples web application, do not forget to remove the <!.. ..> that surrounds
35+
them. You will also need to set the passwords to something appropriate.
36+
-->
37+
<!--
38+
<role rolename="tomcat"/>
39+
<role rolename="role1"/>
40+
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
41+
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
42+
<user username="role1" password="<must-be-changed>" roles="role1"/>
43+
-->
44+
<role rolename="manager-gui"/>
45+
<role rolename="manager-status"/>
46+
<role rolename="manager-script"/>
47+
<role rolename="manager-jmx"/>
48+
<user username="manager" password="admin" roles="manager-gui,manager-status,manager-script,manager-jmx"/>
49+
</tomcat-users>

0 commit comments

Comments
 (0)