Cent OS 스프링 개발환경 구축하기 (Tomcat 설치 및 웹 테스트까지)
Spring에서 웹을 구동시키기 위해서 필요한게 자바와 톰캣이다.
여기서 톰캣은 WAS로 서버 환경을 만들어서 동작시키는 기능을 제공하는 프레임 워크이다.
보통 정적 웹서버는 nginx나 apache를 의미하고 동적 서버는 WAS tomcat 이라고 이해하면 될것같다.
Tomcat을 설치하기 전에는 자바를 우선적으로 설치하는것이 좋은데
나같은 경우 11버전을 설치했기 때문에 톰캣도 최신버전인 9버전을 설치하도록 하겠다.
https://blog.dalso.org/srping-web-project/5244
https://tomcat.apache.org/download-90.cgi
설치할 버전은 9.0.31
터미널로 가서 설치할 경로로 이동해준다.
wget http://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
gzip -d apache-tomcat-9.0.31.tar.gz && tar xvf apache-tomcat-9.0.31.tar
그리고 톰캣 서비스를 할 user를 생성해주자.
useradd -d /opt/tomcat -s /bin/nologin tomcat
그리고 압축 해제된 tomcat 파일을 생성된 user의 홈 폴더로 이동해준다.
mv apache-tomcat-9.0.31/* /opt/tomcat/
그리고 권한 변경 chown -R tomcat:tomcat /opt/tomcat/
그리고 tomcat 의 서비스 등록을 하려면 자바의 환경 변수 경로를 알아야 되는데 아래 명령어로 알 수 있다.
alternatives --list | grep ^java
java auto /usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64/bin/java
javac auto /usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64/bin/javac
java_sdk_openjdk auto /usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64
java_sdk_11 auto /usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64
java_sdk_11_openjdk auto /usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64
Tomcat 서비스등록
vi /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
Wants=network.target
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64/
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1G -Djava.net.preferIPv4Stack=true'
Environment='JAVA_OPTS=-Djava.awt.headless=true'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
SuccessExitStatus=143
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
SELinux 설정
이제 tomcat 시작시 SELinux가 Block 할 수 없게 셋팅을 해줘야한다.setenforce 0
sed -i 's/ELINUX=enforcing/ELINUX=disabled/g' /etc/selinux/config
이제 systemctl daemon-reload 로 데몬 재설정을 한번해주고 실행시켜보자.
systemctl enable tomcat
service tomcat start
위와같이 에러가 뜨면 에러를 확인해보면 selinux 관련 에러임을 확인할 수있다.
selinux를 disable 시키면 일단 되는데 나중에 이거 관련해서 안하고 하는법을 따로 포스팅하겠다.
방화벽 허용
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
이제 접근 허용해주기
톰캣 웹 매니저
vi /opt/tomcat/webapps/manager/META-INF/context.xml
allow=”127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1|192.168.1.*” />
vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
allow=”127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1|.*” />
외부에서 톰캣접속을 하려면vi /opt/tomcat/conf/server.xml
port 8080에 접근권한을 0.0.0.0으로 넣어주면 외부에서도 이렇게 접근할 수 있다.