프로젝트 ing.. - was tomcat9 설정
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를 호환이 안되는 상위버전을 선택했다.
- 톰캣 서비스 설정을 할때 경로를 제대로 체크하지 않았다.