IT/JAVA

[Tomcat] 톰캣 권한 , systemctl, appBase 설정

월공 2021. 8. 26. 11:13
728x90
300x250

환경 리눅스, 센토스 7

 

톰캣 실행할 계정 생성
useradd -m -U -d /usr/local/tomcat -s /bin/false tomcat

(sftp 접속하려면 /bin/false 가 아닌 /bin/bash 로 고치면 됌)

passwd tomcat

(비밀번호 설정)

 

톰캣 설치
#디렉토리 조정
cd /tmp

#톰캣 압축파일 설치
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.52.tar.gz

#톰캣 압축파일 풀기
tar -xf apache-tomcat-9.0.52.tar.gz

#압축푼 톰캣 폴더 옮겨주기
mv apache-tomcat-9.0.52 /usr/local/tomcat

원래는 깔끔하게 apache-tomcat-9 로되있는 폴더를 tomcat9 로 네이밍을 바꿔주고 /usr/local 에다가 옮겨주면

/usr/local/tomcat9 로 깔끔하게 보이겠지만 생각 없이 작업을 했던 나의 톰캣 디렉토리는 아래가 되었다.

/usr/local/tomcat/apache-tomcat-9.0.52

여튼 저기에 기존 root 가 아닌 톰캣 권한을 부여하고

chown -R tomcat.tomcat /usr/local/tomcat/

 

systemctl 등록

매번 /usr/local/tomcat 진입해서 bin/startup.sh 하기엔 손가락이 아프니까 systemctl 등록을 해보자

vi /etc/systemd/system/tomcat.service

#####################################
########### 아래 붙여넣기 ############
#####################################

# /etc/systemd/system/tomcat.service

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

#디렉토리 중요. 핵심 포인트
Environment="CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.52"
Environment="CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.52"
Environment="CATALINA_PID=/usr/local/tomcat/apache-tomcat-9.0.52/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/usr/local/tomcat/apache-tomcat-9.0.52/bin/startup.sh
ExecStop=/usr/local/tomcat/apache-tomcat-9.0.52/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

 

등록을 해준 후에

systemctl daemon-reload

하고나서 systemctl start tomcat 을 하면 정상적으로

 

가동이 되는것을 확인할 수있다.

 

 

appBase 변경

톰캣의 conf 에 위치한다

아래 처럼 찾을수도 있다.

find / -name "server.xml"


#결과
/usr/local/tomcat/apache-tomcat-9.0.52/conf/server.xml

여튼 server.xml 을 까보면 appBase 가 있는게 보인다.

보통 webapps 로 되있을텐데 아래 처럼 원하는곳으로 변경해도 상관없다.

 

appBase="/home/httpd/www"

 

설정해주고 나면 꼭  systemctl restart tomcat 은 잊지말고 해주자

appBase 경로를 바꿔주고 나서 war 파일을 갖다놓으니 알아서 정상적으로 war 폴더로 압축 풀어주는걸 확인할수 있었다.

처음엔 mgr.war 파일이 tomcat 인데 mgr 폴더가 root 권한으로 생성되서 좀 당황했는데, 톰캣 restart 하고 진행하니 정상적으로 tomcat 권한으로 생성되었다.

 

728x90
300x250