공부?/국비 지원 일기장

프로젝트 ing.. - was tomcat9 설정

무무요 2024. 9. 29. 18:46

 

tomcat9 과 mariadb를 연동을 몇일을 했는데 안되서 조언을 구했더니 여러가지 문제가 많았다

 

=======

    •  

1. tomcat 사용자 추가 

홈 디렉터리는 /opt/tomcat 에 생성 uid는 1010 로그인쉘은 false (nfs 연결 고려)

useradd -u 1010 -U -m -d /opt/tomcat -s /bin/false tomcat

 

2. tomcat 사용자 권한 부여

chown -R tomcat:tomcat /opt/tomcat

 

3. 설치한 자바 (open jdk) 경로 확인

read link -f $ (which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0


- 여기서부터 내가 범한 오류인것 같다...

- 기본적으로 1.8.0은 openjdk 8버전이고, 내가 설치한 버전은 11 버전이었다.

- 상위 버전은 기본적으로 컴파일러 자체의문법이 많이 달라져 tomcat 8~9와 호환이 안된다고 한다..

일단 그것 때문에 많이 꼬였던것 같다.

- 첫번째 글에서 다운한 open jdk를 

apt purge openjdk* 로 싹다지우고 위에 명령어로 다시 설치를 했다.

 

4. 톰캣 서비스 설정

우선 서비스 설정을 위해

readlink -f $(which java) 명령어로 설치 위치를 본다.

/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

위치 확인이 되었다면

vi /etc/systemd/system/tomcat.service

 

로 들어가 서비스 설정을 다시해준다. 그럼 첫번째 글에서 적었던

 

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Environment=CATALINA_HOME=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

가 나올것이고 Environment=JAVA_HOHE 뒷부분에 read link로 나온 

/usr/lib/jvm/java-8-openjdk-amd64

를 넣어 준다.

- 여기서 위에 tomcat 사용자 권한을 부여하지 않는다면 user, group 부분에서 에러가 난다. (오답노트)

 

4. 톰캣 한글 깨짐 방지 Encoding

vi /opt/tomcat/conf/server.xml

맨 아랫줄에

URIEncoding="UTF-8" 추가

 

=======

 

실수한 지점 

- tomcat9 를 사용하는데 openjdk를 호환이 안되는 상위버전을 선택했다.

- 톰캣 서비스 설정을 할때 경로를 제대로 체크하지 않았다.