O/S : Centos 6.x 7.x 64bit
JAVA : 1.8.0.191
TOMCAT : 8.5.35
HTTPD : 2.2.X
MYSQL : 5.0.X
WAS 인 TOMCAT를 설치하고 데이터베이스 MYSQL 연동하고 웹서버( HTTPD)에 연동하는 작업을 진행
1.먼저 서버에 java가 설치되어 있을 수 있다 yum을 이용하면 우선 삭제해준다 ( rpm -e 이용해도 상관없음)
1 |
[root@localhost ~]# yum remove java-1.6.0-openjdk java-1.7.0-openjdk |
2. 서버에 java se를 설치를 해주기 위해서 아래 주소에서 다운로드를 진행하면 된다.
https://www.oracle.com/technetwork/es/java/javase/downloads/jdk8-downloads-2133151.html?printOnly=1
편하게 아래 주소에서 받아도 된다. 받은 소스 파일을 압축을 풀고 적당한 곳에 옮겨준다
1 2 3 4 5 |
[root@localhost ~]# wget mirror.xinet.kr/java/jdk-8u191-linux-x64.tar.gz [root@localhost ~]# tar xvfz jdk-8u191-linux-x64.tar.gz [root@localhost ~]# mv jdk1.8.0_191 /usr/local/java |
3. java를 어디에서도 실행할수 있게 pass를 걸어준다
1 2 3 4 5 6 7 |
[root@localhost ~]# vi /etc/profile JAVA_HOME=/usr/local/java export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH="." [root@localhost ~]# source /etc/profile |
4. java가 정상적으로 설치되었는지 확인하기 위해서 명령어로 확인해본다 버전도 확인
1 2 3 4 5 6 7 |
[root@localhost ~]# java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode) [root@localhost ~]# javac -version javac 1.8.0_191 |
5. 이제 java에서 mysql를 불러오기 위해서 MySQL Connectors 를 다운로드 후 복사해주면 된다 ( TOMCAT도 같이사용)
단 여기서 현재 최신 버전은 8.0 버전은 mysql 버전이 5.5 이상은 8.0 버전을 이용하고 그 이전버전은
5.1.47 버전을 이용하면 된다
현재 테스트 서버의 mysql 버전은 5.0 버전이라 5.1.47 버전을 다운로드 해서 이용한다
https://dev.mysql.com/downloads/connector/j/
jar 파일이 복사되는 경로는 /usr/local/java/jre/lib/ext/ 해당 경로에 복사해 주면 된다.
1 2 3 4 5 6 7 8 9 |
[root@localhost ~]# wget mirror.xinet.kr/java/mysql-connector-java-5.1.47.tar.gz [root@localhost ~]# tar xvfz mysql-connector-java-5.1.47.tar.gz [root@localhost ~]# cp -a mysql-connector-java-5.1.47/mysql-connector-java-5.1.47.jar /usr/local/java/jre/lib/ext [root@localhost ~]# cp -a mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/local/java/jre/lib/ext/ [root@localhost ~]# source /etc/profile |
6. 이제 TOMCAT을 다운받아 설치를 진행해 준다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@localhost ~]# wget http://apache.tt.co.kr/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz [root@localhost ~]# tar xvfz apache-tomcat-8.5.35.tar.gz [root@localhost ~]# mv apache-tomcat-8.5.35 /usr/local/tomcat [root@localhost ~]# vi /etc/profile export JAVA_HOME=/usr/local/java export CATALINA_HOME=/usr/local/tomcat export CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin [root@localhost ~]# source /etc/profile |
7. 이제 TOMCAT을 시작해보자.
1 2 3 4 5 6 7 |
[root@localhost ~]# catalina.sh start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. |
8. 정상적으로 프로세서가 구동이 되었으면 아래와 같이 3개의 포트가 올라온것을 확인 할 수 있다.
1 2 3 4 |
[root@localhost ~]# netstat -anp | grep java tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 11727/java tcp 0 0 :::8009 :::* LISTEN 11727/java tcp 0 0 :::8080 :::* LISTEN 11727/java |
8005 : 하나의 인스턴스에서 사용하는 PORT (?)
8080 포트는 바로 웹에서 확인 가능한 포트
8009 AJP 포트를 이용하여 리다이렉션 (웹서버 연동)
9. 이제 TOMCAT을 시작해보자.
1 2 3 4 5 6 7 |
[root@localhost ~]# catalina.sh start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. |
10. 웹페이지에서 정상적으로 표시되는지 확인해보자.
11. 정상적으로 TOMCAT이 동작되는것을 확인하였으므로 이제 TOMCAT에서 가상호스트를 만들어 보자
유저 : xinet
유저 home 경로 : /free/home/xinet/html
server.xml 파일에서 </host> 다음에 가상호스트 내용 추가
1 2 3 4 5 6 7 8 9 |
[root@localhost html]# vi /usr/local/tomcat/conf/server.xml <Host name="jsp.xinet.kr" appBase="/free/home/xinet/html" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="jsp.xinet.kr_access_log" suffix=".txt" pattern="%h %l %u %t %r %s %b" /> <Context path="" docBase="/free/home/xinet/html/" debug="0" reloadable="true"/> </Host> |
WEB-INF 폴더 복사 및 퍼미션 수정
1 2 3 4 5 |
[root@localhost html]# cp -a /usr/local/tomcat/webapps/ROOT/WEB-INF /free/home/xinet/html/ [root@localhost html]# chmod 755 /free/home/xinet/html/WEB-INF/ [root@localhost html]# chmod 644 /free/home/xinet/html/WEB-INF/web.xml |
12. TOMCAT 재시작
1 2 3 4 5 6 7 8 9 |
[root@localhost html]# catalina.sh stop [root@localhost html]# catalina.sh start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. |
13. 가상호스트 홈 디렉토리에 test.jsp 파일을 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@localhost html]# vi /free/home/xinet/html/test.jsp <%@ page contentType="text/html; charset=UTF-8" %> <html> <head> <title> JSP TEST </title> </head> <body> <% int sum = 0; for(int i = 0; i <= 100; i++) { sum = sum + i; } %> 1부터 100가지 합은 <%= sum %>입니다 </body> </html> |
웹페이지에서 jsp.xinet.kr/test.jsp 파일을 출력해보자 / 정상적으로 출력이 된다.
14. 그럼 이제 데이터베이스 MYSQL을 연동해보자. 테스트를 위해 데이터베이스를 생성하고 테이블을 만들어서 데이터를 입력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
mysql> create database xinet; mysql> grant all on xinet.* to xinet@localhost identified by 'xinet1234'; mysql> use xinet; mysql> create table idol ( groupname varchar(50), membername varchar(50) ); mysql> create table Users (id int(3) primary key, name varchar(20), email varchar(20), country varchar(20), password varchar(20)); mysql> INSERT INTO Users (id, name, email, country, password) VALUES (1, 'Pankaj', 'pankaj@apple.com', 'India', 'pankaj123'); mysql> INSERT INTO Users (id, name, email, country, password) VALUES (4, 'David', 'david@gmail.com', 'USA', 'david123'); mysql> INSERT INTO Users (id, name, email, country, password) VALUES(5, 'Raman', 'raman@google.com', 'UK', 'raman123'); mysql> quit |
먼저 데이터베이스 통신 테스트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[root@localhost html]# vi /free/home/xinet/html/dbtest.jsp <%@ page import="java.sql.*" contentType="text/html; charset=UTF-8" %> <% String DB_URL = "jdbc:mysql://localhost/xinet"; String DB_USER = "xinet"; String DB_PASSWORD= "xinet1234"; Connection conn; Statement stmt; try { Class.forName("org.gjt.mm.mysql.Driver"); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); conn.close(); out.println("mysql jdbc test: connect ok!!"); } catch(Exception e) { out.println(e.getMessage()); } %> |
웹에서 출력을 하면 다음과 같이 정상적으로 연결되었다는 것을 확인할 수 있다.
그럼 이제 실제 테이블에 있는 데이터를 불러와보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
[root@localhost html]# vi /free/home/xinet/html/select.jsp <%@page import="java.sql.*"%> <%@page import="com.mysql.jdbc.PreparedStatement"%> <%@page import="com.mysql.jdbc.Connection"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% Connection con; Connection con;Class.forName("com.mysql.jdbc.Driver"); con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/xinet", "xinet", "xinet1234"); PreparedStatement ps=(PreparedStatement)con.prepareStatement("SELECT * from Users"); ResultSet rs=ps.executeQuery(); while(rs.next()){ String name=rs.getString("name"); String email=rs.getString("email"); String country=rs.getString("country"); out.println(" NAME : "+name+" EMAIL : "+email+" COUNTRY :"+country+" <hr>"); } %> </body> </html> |
해당 소스 파일의 내용이 줄 바뀜이 안될수도 있으니 웹상에 소스를 wget로 다운받아서 테스트 하면 된다
https://xinet.kr/data/source/select.jsp
첨부파일 다운로드 select.jsp.tar
웹페이지에서 출력을 해보자.
다음으로는 tomcat의 manager를 사용할수 있게 tomcat의 환경설정을 구성 후 진행해 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[root@localhost html]# vi /usr/local/tomcat/conf/tomcat-users.xml <?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-status"/> <user username="admin" password="admin1234##$$" roles="manager,manager-gui,manager-script,manager-status"/> </tomcat-users> |
manager.xml 파일을 생성 ( conf 폴더 Catalina 폴더 아래에 가상호스트 도메인별 폴더가 존재하는 경우 생성해주면 된다 )
1 2 3 4 5 |
[root@localhost html]# vi /usr/local/tomcat/conf/Catalina/jsp.xinet.kr/manager.xml <Context privileged="true" antiResourceLocking="false" docBase="/free/home/xinet/html/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context> |
manager 폴더 복사
1 2 |
[root@localhost html]# cp -a /usr/local/tomcat/webapps/manager /free/home/xinet/html/ tomcat 재시작 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@localhost html]# catalina.sh stop Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@localhost html]# catalina.sh start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar |
웹페이지에서 manager 페이지 접속
아이디 패스워드 입력후 아래와 같이 maanager 화면 구성 출력
실제 tomcat을 사용하다면 보면 web서버와 같이 연동되게 사용을 한다. 이제까지는 8080포트를 이용해서 확인했지만 실제 서비스가 되는 80 포트로
통신을 되게 구성해 보자.
먼저 연결을 위해서는 comcat-connectors 가 필요하다. 다운로드 및 설치
다운로드는 : https://tomcat.apache.org/download-connectors.cgi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@localhost html]# cd /root [root@localhost ~]# wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz [root@localhost ~]# tar xvfz tomcat-connectors-1.2.46-src.tar.gz [root@localhost ~]# cd tomcat-connectors-1.2.46-src/native/ [root@localhost native]# ./configure --with-apxs=/usr/local/apache/bin/apxs [root@localhost native]# make [root@localhost native]# make install [root@localhost native]# ls -l /usr/local/apache/modules/mod_jk.so -rwxr-xr-x. 1 root root 1145759 2018-11-22 12:12 /usr/local/apache/modules/mod_jk.so |
tomcat connectors 를 사용하기 위해서 환경설정을 구성해 준다 아차치 홈 폴더에 tomcat.conf 파일을 만들어 준다 해당 파일은 httpd.conf에 include된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@localhost native]# vi /usr/local/apache/conf/tomcat.conf LoadModule jk_module modules/mod_jk.so <IfModule mod_jk.c> JkWorkersFile "/usr/local/apache/conf/workers.properties" JkLogFile "logs/mod_jk.log" JkLogLevel error JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" </IfModule> |
1 2 3 4 5 6 7 |
[root@localhost native]# vi /usr/local/apache/conf/workers.properties worker.list=ajp13 worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=ajp13 |
apache 환경설정에서 include 진행
1 2 3 4 5 |
[root@localhost native]# vi /usr/local/apache/conf/httpd.conf ### TOMCAT CONF Include conf/tomcat.conf |
apache 가상호스트 등록
1 2 3 4 5 6 7 8 9 10 11 |
[root@localhost native]# vi /usr/local/apache/conf/extra/httpd-vhosts.conf NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /free/home/xinet/html/ ServerName jsp.xinet.kr CustomLog logs/jsp.xinet.kr_access_log vcommon JkMount /* ajp13 </VirtualHost> |
apache 환경설정이 모두 문제 없는지 점검 후 tomcat 및 apache 재시작
1 2 3 4 5 6 7 8 |
[root@localhost native]# /usr/local/apache/bin/httpd -t Syntax OK [root@localhost native]# catalina.sh stop [root@localhost native]# catalina.sh start [root@localhost native]# /usr/local/apache/bin/apachectl start |
웹페이지에서 8080 포트가 아닌 80포트로 출력되는것을 확인
그리고 간단하게 현재 사용하고 있는 tomcat의 메모리 사용현황을 jsp 파일로 만들어서 출력해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
[root@localhost html]# vi /free/home/xinet/html/memory.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.net.InetAddress" %> <%@ page import="java.text.*" %> <%@ page import="java.util.*" %> <% if (request.getParameter("gc") != null) { System.gc(); System.runFinalization(); } String interval = "5"; %> <HTML> <HEAD> <META content="text/html; charset=UTF-8" http-equiv=Content-Type> <META http-equiv="Refresh" content="<%= interval %>;url=<%= request.getRequestURI() %>"> <link href="style.css" rel=stylesheet type="text/css"> </HEAD> <title>MEMORY STATUS</title> <body leftmargin=15 topmargin=10> <center><p> <table width="600" cellpadding="7" cellspacing="0" border="1" bordercolordark="WHITE" bordercolorlight="BLACK"> <tr><td> ■ 호스트 : <%= InetAddress.getLocalHost().getHostName() %> (<%= InetAddress.getLocalHost().getHostAddress() %>) <% SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월dd일 a hh시mm분 ss초", Locale.KOREA); %> ■ 측정시각 : <%= formatter.format(new Date()) %> </td></tr> <tr><td align=center> <% Runtime rt = Runtime.getRuntime(); long free = rt.freeMemory(); long total = rt.totalMemory(); long usedRatio = (total - free) * 100 / total; long unusedRatio = free * 100 / total; %> <table width=100% bgcolor="lightgrey" border=1 cellpadding=6 cellspacing=0> <tr> <td align="center" colspan="2">전체 가상머신 메모리 (<b><%= total/1024 %> KB</b>)</td> </tr> <tr bgcolor=#E3E3E3> <td align="center">사용중인 메모리 (<b><%= (total - free)/1024 %> KB</b>)</td> <td align="center">남아있는 메모리 (<b><%= free/1024 %> KB</b>)</td> </tr> <tr bgcolor=#E8EEEC> <td><hr color="#CC3366" align=left size=10 width="<%= usedRatio %>%" noshade> (<%= usedRatio %> %)</td> <td><hr color="#0066FF" align=left size=10 width="<%= unusedRatio %>%" noshade> (<%= unusedRatio %> %)</td> </tr> </table> <p> <a href="<%= request.getRequestURI() %>?gc="> <valign=middle border=0> 가비지컬렉션 실행</a> <a href="<%= request.getRequestURI() %>"> <valign=middle border=0> 다시 읽기 (<%= interval %> sec)</a> </td></tr> </table> </center> </BODY> </HTML> |
위에 소스 파일이 문제가 있을 수 있으니 source 파일을 다운로드 하면 된다
https://xinet.kr/data/source/memory.jsp
다운로드 memory.jsp.tar