리눅스

리눅스 설치부터 프로젝트 배포까지(2) - 리눅스 우분투 자바(openjdk 11), 톰캣(tomcat9) 설치 및 세팅 후 프로젝트 배포까지

진짠 2023. 6. 26. 18:24
728x90
JAVA 설치

우분투 환경에서 jdk 설치해준다.

 

나는 jdk-11버전을 설치해주었고 개발 환경에 따라 jdk 버전을 바꿔주면 된다.

(다른 버전을 설치할 경우 memory leak 등의 오류가 발생할 수 있다. 나의 경우 필요한 jdk 버전이 1.8이었지만 11버전을 설치했는데 다행히 오류가 없었으므로 그냥 이거 썼다(?))

 

현재 버전은 22까지 나왔던데 참 예전 거 쓰는구나 싶었다.

 

jdk 11 설치 전 최신 버전으로 업데이트 해준다.

 

$ sudo apt-get update
$ sudo apt-get upgrade

그리고 jdk 11버전 설치 명령어를 입력해준다.

 

$ sudo apt-get install openjdk-11-jdk

 

저렇게 안하고 홈페이지에서 설치경로를 복사하여 wget 명령어를 사용해 설치할 수도 있다.

 

$ wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz

 

 

 

Archived OpenJDK GA Releases

Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK are provided to he

jdk.java.net

해당 홈페이지(openjdk 홈페이지)에서 버전에 맞는 설치파일(tar.gz) 경로를 복사하여 wget 명령어를 사용하여 설치할 수 있다.

 

어떤 설치 방식을 사용하던 설치하고자 하는 경로에 맞게 잘 설치해주면 될 듯 하다.

 

wget 방식을 사용했다면 tar.gz 파일을 받았기 때문에 압축을 풀어줘야 한다.

 

$ tar -xvf [설치한 tar파일의 이름]

을 이용하면 압축해제한 파일을 찾을 수 있을 것이다.

 

보통은 '/usr/lib/jvm' 경로 내에 파일을 찾을 수 있고 혹시나 없다면 경로 찾기 명령어를 활용한다.

 

$ update-alternatives --list java

 

설치가 완료되었다면 맞는 버전이 설치되었나 확인한다.

 

$ java -version

이렇게 뜬다면 잘 설치된거다.

톰캣 설치

jdk 설치가 완료되었다면 톰캣 설치를 해준다.

 

나는 tomcat9 버전으로 설치했다. 이 또한 버전에 맞게 설치해주면 된다.

 

https://tomcat.apache.org/download-90.cgi

 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org

해당 홈페이지에서 버전에 맞게 찾으면 되고 리눅스 버전이기 때문에 tar.gz 설치파일의 경로를 복사해준다.

 

$ wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz

설치하고자 하는 폴더의 경로로 이동하여 해당 명령어를 입력하면 tar 파일을 설치한다.

 

나의 경우 '/opt/tomcat/' 경로에다 파일을 만들어주었다. 설치한 후엔 압축을 풀어준다.(위에 명령어를 사용하여)

 

$ ./{아파치 설치경로}/apache-tomcat-9.0.76/bin/startup.sh

그리고 위의 명령어를 이용하여 톰캣을 실행시킨다.

 

로컬서버라면 'localhost:8080' url을, 나처럼 개발서버 내에다 설치를 했다면 '서버의 url:8080' 을 주소창에 입력한다.

 

해당 이미지처럼 사이트가 뜬다면 톰캣 설치 후 서버 구동에 성공한 것이다.

 

$ ./{아파치 설치경로}/apache-tomcat-9.0.76/bin/shutdown.sh

셧다운은 위의 명령어를 사용한다. 톰캣 서버를 일단 꺼주자.

 

프로젝트 배포

톰캣서버를 가동하면 내가 만든 프로젝트가 실행되도록 배포를 하고 싶다.

 

그러려면 해당 프로젝트 파일을 톰캣의 webapps 폴더 내에 옮겨줘야 한다.

 

파일질라라는 FTP 전송 프로그램을 써보자.

 

https://rnrn2.tistory.com/entry/%ED%8C%8C%EC%9D%BC%EC%A7%88%EB%9D%BC-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95-%EC%82%AC%EC%9A%A9%EB%B2%95

 

파일질라 다운로드 및 설치 방법(+ 사용법)

간단한 사이트나 서버를 운영할 때, FTP를 사용해야 서버와 통신을 할 수 있습니다. 특히 워드프레스(WordPress)를 사용할 때도 많이 쓰는데요. FTP 프로그램 중에는 파일질라가 가장 많이 쓰입니다.

rnrn2.tistory.com

설치 방법은 이 분의 블로그를 참조하여 설치하자.

 

호스트, 사용자명, 비밀번호를 입력하면 해당 우분투 서버로 접속이 가능하고 프로젝트 파일을 옮길 수가 있다.

 

하지만? 나같은 경우는 개발서버 내의 보안 때문에 파일질라를 사용하여 파일을 옮길 수가 없었다.

 

그래서 scp 명령어를 이용하였다.

 

scp ?
Secure copy의 줄임말. ssh프로토콜을 이용하여 로컬 호스트와 원격 호스트 간 파일을 전송하는 수단. 보안을 신경 경써서 파일을 전송한다고 보면 될 듯 하다.

 

$ scp [원본 경로,파일명] [원격지 user명]@[원격지IP]:[복사할 폴더 경로]

저 방식대로 명령어를 사용하면 파일이 전송이 된다.

 

그렇다면 프로젝트 파일은 어떻게 만드는가?

 

이클립스 기준 프로젝트를 우클릭 하고 Export - WAR file 을 누른다.

 

그리고 해당 창이 나오면 Web project에 프로젝트 이름, Destination에 파일을 생성할 폴더의 경로를 Browse... 버튼을 눌러 정해주면 된다.

 

그리고 Export source files 옵션을 체크해준다.

 

그렇게 생성한 war형태 프로젝트 파일을 우분투 톰캣의 webapps 폴더 안에 넣어주면 된다.

 

프로젝트 파일 전송에 성공했다면 톰캣을 실행했을 때 해당 프로젝트를 바라볼 수 있도록 경로를 지정해주어야 한다.

 

$ nano {톰캣 설치 경로}/conf/server.xml

명령어를 이용하여 server.xml에 들어가준다.

(에디터는 nano 말고도 여러가지가 있는데 vi를 추천하는 것 같다. vi 쓰면서 단축키 익히자...)

 

...
<Connector port="1025" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" />
...

주르륵 소스를 읽다보면 이런 것이 보일 것이다. 빨간색 부분이 톰캣 포트 지정해주는 부분이다. 보통 기본은 8080포트로 되어있다.

 

url을 입력할 때 포트번호 없이 프로젝트로 들어가고 싶다면 포트번호를 80으로 바꿔준다.

 

(8080포트 사용 시)
[서버 IP]:8080

(80포트 사용 시)
[서버 IP]

를 url 입력 창에 입력하여 접속 가능

 

또한 이미 사용하고 있는 포트번호를 쓰면 당연히 오류가 발생하니 포트번호는 신경써서 바꿔주던가 그대로 쓰자.

 

...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
...

 

소스를 더 내리면 이런 부분이 보일 것이다. host name은 호스트명, appBase는 프로젝트가 들어있는 폴더이다. 

 

그 밑줄에 실행해야 할 프로젝트의 경로를 추가해준다.

 

...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
  <Context path="" docBase="/opt/tomcat/apache-tomcat-9.0.76/webapps/[프로젝트명]" reloadable="false" />
...

 

이런 식으로 docBase에 프로젝트가 들어있는 경로를 적어준다. 위에 예시와 같이 절대경로로 해도 되고 hostname의 appBase에서부터 상대경로로 적어도 된다.

 

참고로 Context path는 프로젝트 시작 페이지의 url을 나타낸다. 예시와 같이 아무것도 안적으면 별도의 페이지 경로 없이 ip와 포트번호만 입력하여 시작 페이지를 띄울 수 있다.

 

그리고 톰캣을 다시 실행시키면?

 

톰캣을 실행했을 때 프로젝트가 실행될 것이다.

 

만약 로컬서버가 아닌 개발서버를 별도로 받아서 설치를 진행했다면 프로젝트가 db에 접근할 때 ip 접근 제한에 걸려 제대로 배포가 안될 수 있다.

 

이 경우 허용 ip를 추가해야 한다.

(나의 경우 도움을 요청하여 해결...)

 

다음은 톰캣을 실행시킬 일반계정을 생성하여 권한을 부여하고 톰캣과 아파치를 mod_jk를 이용해 연동하는 작업에 대해 포스팅할 계획이다.

 

모든 내용은 지난 과정을 복기하는 것이라 부정확하거나 빠진 내용이 있을 수 있다.

 

아마 다음 포스팅이 마지막이 될 듯 하다.(사실 오류해결을 못한 상태라 다음 포스팅을 못한다.)

728x90