Bite Bits/Raspberry Pi

Raspbian 에서 apache tomcat 8 설치

상영 2017. 7. 5. 16:02

Raspbian 설치 관련 글 :  http://blog.daum.net/to302/38


자바가 설치된 것을 확인하고, 자바 버전도 확인


pi@raspberrypi:~ $ which java javac

/usr/bin/java

/usr/bin/javac

pi@raspberrypi:~ $ javac -version

javac 1.8.0_65

pi@raspberrypi:~ $ java -version

java version "1.8.0_65"

Java(TM) SE Runtime Environment (build 1.8.0_65-b17)

Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)


$ sudo apt-cache search tomcat

톰캣 패키지 조회하니 tomcat7 과 tomcat8 이 조회됨


pi@raspberrypi:~ $ sudo apt-cache search tomcat

...(상략)..

tomcat7 - Servlet and JSP engine

tomcat7-admin - Servlet and JSP engine -- admin web applications

tomcat7-common - Servlet and JSP engine -- common files

tomcat7-docs - Servlet and JSP engine -- documentation

tomcat7-examples - Servlet and JSP engine -- example web applications

tomcat7-user - Servlet and JSP engine -- tools to create user instances

tomcat8 - Apache Tomcat 8 - Servlet and JSP engine

tomcat8-admin - Apache Tomcat 8 - Servlet and JSP engine -- admin web applications

...(하략)...


$ sudo apt-get install tomcat8 

'계속 하시겠습니까? [Y/n]' 에 Y 라고 입력하면 의존성 검사하여 필요한 패키지들도 알아서 설치 진행..


pi@raspberrypi:~ $ sudo apt-get install tomcat8

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다       

상태 정보를 읽는 중입니다... 완료

다음 패키지를 더 설치할 것입니다:

  authbind libcommons-dbcp-java libcommons-pool-java libecj-java

  libtomcat8-java tomcat8-common

제안하는 패키지:

  libcommons-dbcp-java-doc libgeronimo-jta-1.1-spec-java ecj ant

  libecj-java-gcj libtcnative-1 tomcat8-admin tomcat8-docs tomcat8-examples

  tomcat8-user

다음 새 패키지를 설치할 것입니다:

  authbind libcommons-dbcp-java libcommons-pool-java libecj-java

  libtomcat8-java tomcat8 tomcat8-common

0개 업그레이드, 7개 새로 설치, 0개 제거 및 9개 업그레이드 안 함.

6,625 k바이트 아카이브를 받아야 합니다.

이 작업 후 8,407 k바이트의 디스크 공간을 더 사용하게 됩니다.

계속 하시겠습니까? [Y/n] Y


... (중략) ...


tomcat8 (8.0.14-1+deb8u10) 설정하는 중입니다 ...


Creating config file /etc/default/tomcat8 with new version

Adding system user `tomcat8' (UID 112) ...

Adding new user `tomcat8' (UID 112) with group `tomcat8' ...

Not creating home directory `/usr/share/tomcat8'.


Creating config file /etc/logrotate.d/tomcat8 with new version

Processing triggers for systemd (215-17+deb8u7) ...


출력되는 메세지 중에 tomcat 설정 파일/etc/default/tomcat8 

/etc/logrotate.d/tomcat8 는 log 파일 순환용 설정 부분 확인


$ ls /etc/init.d/ 


해보면 tomcat8 이 보일 것이다. 제대로 설치된듯.


$ sudo service tomcat8 start 


하여 서비스 시작. 브라우져에서 http://localhost:8080/ 으로 접근하면 기본 화면이 출력됨

기본화면에서 노출되는 텍스트 중에서


This is the default Tomcat home page. It can be found on the local filesystem at: /var/lib/tomcat8/webapps/ROOT/index.html


에서 문서 파일 위치 확인


서비스 중지할 때는 다음과 같이 start 대신 stop 넣으면 됨.


$ sudo service tomcat8 stop


추가로..

초기화면에서  tomcat8-docs 와 tomcat8-examples 에 대한  안내가 있어 해당 패키지도 같이 설치



$ sudo apt-get install tomcat8-docs

$ sudo apt-get install tomcat8-examples


tomcat8-examples 를 설치하니 의존성 관계로 설치되는 다른 패키지들이 꽤나 되네..


위의 기본화면은  /var/lib/tomcat8/webapps/ROOT/index.html  에서 찾을 수 있고.


설치한 문서 tomcat8-docs 와 tomcat8-exampes 는 

/etc/tomcat8/Catalina/localhosts/ 로 가면 docs.xml 과 examples.xml  이 있다.

이 xml 문서에 해당 어플리케이션의 파일 위치가 정의되어 있음.

(/etc/tomcat8 은 /var/lib/tomcat8/conf 와 symbolic link 처리되어 있다. /var/lib/tomcat8/conf 로 가면 /etc/tomcat8 아래의 내용이랑 동일하다는 것.)


$ more /etc/tomcat8/Catalina/localhosts/docs.xml

...(중략)...

<Context path="/docs" 

docBase="/usr/share/tomcat8-docs/docs"

antiResourceLocking="false" />


$ ls /usr/share/tomcat8-docs/docs


해보면 http://localhost:8080/docs/  에서 볼 수 있는 화면의 내용들이 있는 파일이 있다.


** 참고) http://blog.elmitash.com/65

tomcat 관련 경로는 아래와 같이 설정된단다.

CATALINA_HOME=/usr/share/tomcat8

CATALINA_BASE=/var/lib/tomcat8


환경변수로 넣을건지는 알아서.. 

~/.profile 에 넣으면 될듯..


위의 CATALINA_BASE 는 /etc/init.d/tomcat8 스크립트에 관련 부분이 있음.


== 2017-12-01 추가 ==

새로운 어플리케이션을 생성하려면 

쉬운 방법으로는 /var/lib/tomcat8/webapps/ 아래에 디렉토리를 생성하고, 문서를 그 아래 위치시키는 것

위치를 하위 디렉토리가 아닌 임의의 위치로 설정하고자 할 경우에

/etc/tomcat8/Catalina/localhost/ 아래에 예제로 있는 docs.xml 의 파일을 복사해서 원하는 파일명으로 바꾸고, (여기서는 pi.xml) 안의 내용 중 path 와 docBase 부분을 원하는 값으로 바꾼다. antiResourceLocking 은 아직 뭔지 모르겠다.

<Context path="/pi" 

docBase="/home/pi/www/docs"

antiResourceLocking="false" />


위와 같이 설정하면 http://localhost/pi/ 로 접근 했을 때, 시스템 상의 /home/pi/www/docs 아래의 문서들이 보여진다.

/home/pi/www/docs 아래 파일 구조는 index.html 과 WEB-INF/ 디렉토리를 기존의 샘플에서 복사하여 붙혀넣이 시작하자.

/WEB-INF/web.xml -> 배치정의자 : 웹 어플리케이션의 모든 설정 정보를 담고 있음.

/WEB-INF/classes/ -> 서블릿과 자바 클래스 위치 

/WEB-INF/lib/ -> 자바 아카이브 파일 위치 

/WEB-INF/src/ -> 대게 자바 소스는 여기 위치시킨다.


classes 디렉토리가 lib 디렉토리 보다 로딩 우선 순위가 있다. 


http://localhost:8080/ 으로 접근했을 때 바로 나오는 파일의 위치를 바꾸고 싶으면 pi.xml 을 ROOT.xml 로 이름을 바꾼다.

그러면 /home/pi/www/docs/ 아래의 문서들이 doc root 가 된다.