Apache Tomcat 연동 실습의 이유
현 직장에서 OS는 대부분 RHEL 8 버전을 사용중이고 WEB/WAS로는 WebtoB JEUS를 사용중이다. 그런데 현업에서는 Apache Tomcat을 많이 사용한다고 하니 시스템운영팀에서 WebtoB JEUS -> Apache Tomcat으로 전환을 하려는 모습을 보이는 듯 싶다. 그래서 내게 Apache Tomcat 연동하기 주제를 건네 주었다.
다양한 기술 블로그와 해외 사이트들을 검색하며 Apache, Tomcat, apr, apr-util 등에 대한 정보를 모으고 모아 사내 RHEL 8 서버에서는 연동을 성공하였다. 사내망의 경우에는 SELinux와 방화벽에 대한 정책이 다르기 때문에 내 로컬 PC에서 연동을 재 도전 해 보려고 한다. 여러 시행착오와 문제들이 존재하였고 다시 되풀이 하지 않고 싶어 정리를 하게 되었다.
CentOS 8 설치
https://holywat2r.tistory.com/183
CentOS 8 버전을 준비한다.
Apache 설치와 컴파일에 필요한 툴 설치
# yum install -y gcc gcc-c++ make expat-devel.x86_64 pcre-devel
pcre 설치와 컴파일
개인적으로 /sw 디렉토리에 소프트웨어를 설치하여 관리하는게 편리하여 앞으로 대부분의 경로는 /sw 디렉토리로 지정을 하여 진행 할 예정이다. ( /usr/local/ 로 해도 무방하다)
* pcre란?
PCRE( Perl Compatible Regular Expressions )는 정규식 패턴 일치를 구현하는 함수의 집합이다.
Apache, PHP, KDE 등을 포함한 오프 소스 프로젝트에서 사용되며 아파치 2.4 버전을 설치할 때는 pcre를 설치해야한다.
# cd /
# mkdir sw
# cd sw
# wget https://sourceforge.net/projects/pcre/files/pcre/8.44/pcre-8.44.tar.gz
# tar -xvfz pcre-8.44.tar.gz
# cd pcre-8.44.tar.gz
# ./configure --prefix=/sw
# make && make install
루트 디렉토리로 이동 후 sw 폴더를 하나 생성한다.
sw 폴더로 이동 후 wget 명령어를 통해 pcre-8.44.tar.gz 파일을 다운로드를 받는다.
이후 configure 스크립트를 실행하여 소스트리를 구성한다.
소스트리 구성 후 make 명령어를 이용해 컴파일을 실행한다 (makefile이 존재하는 폴더 내에서 실행 가능)
이후 make install 명령을 통해 make를 통해 만들어진, build 된 프로그램을 실행하는 것.
* Configure
configure 스크립트는 아파치 웹서버를 컴파일하고 설치하기위해 소스트리를 구성하는다. 여러 옵션을 사용하여 사용자가 원하는 조건에 맞게 서버를 컴파일 할 수 있다.
* Make
make 명령어는 소스를 컴파일 하는 것, 즉 소스파일을 실행 가능한 형태로 만들어주는 과정을 의미한다.
이후 make install 과정을 통해 설치를 진행한다.
* make install
make install은 make를 통해 컴파일된 소스파일, 즉 build된 프로그램을 실행할 수 있게 만들어주는 명령어.
위의 과정을 거치면 /sw/apache 폴더가 생성됨을 볼 수 있다.
apache httpd, apr, apr-util 설치 및 컴파일
# cd /sw
# wget http://mirror.apache-kr.org/apache/httpd/httpd-2.4.52.tar.gz
# wget http://mirror.apache-kr.org/apr/apr-1.7.0.tar.gz
# wget http://mirror.apache-kr.org/apr/apr-util-1.6.1.tar.gz
# tar -zxvf httpd-2.4.52.tar.gz
# tar -zxvf apr-1.7.0.tar.gz
# tar -zxvf apr-util-1.6.1.tar.gz
# mv apr-1.7.0 /sw/httpd-2.4.52/apr
# mv apr-util-1.6.1 /sw/httpd-.2.4.52/apr-util
# cd sw/httpd-2.4.52
# ./configure --prefix=/sw/apache2
# make && make install
httpd, apr, apr-util을 설치한 뒤 apr과 apr-util을 httpd 폴더로 이동을 시켜준다
이후 httpd 폴더에서 configure 실행한 뒤 make && make install 실행
--prefix 로 경로를 설정하지 않을 시 /usr/local/apache2로 default 설치가 되는 듯 싶다.
나는 앞서 말했듯이 sw 경로로 설정을 하겠다.
ServerName 설정
# vi /sw/apache2/conf/httpd.conf
# 195번째 자리에 아래 문구를 추가
ServerName localhost:80
apache 실행과 프로세스 확인하기
# cd /sw/apache2/bin
# ./apachectl start
# ps -ef | grep httpd
apache 작동 테스트
1) 내부 테스트
# wget http://127.0.0.1
해당 파일의 다운로드 위치는 /sw/apache2/htdocs 에 저장이 된다.
2) 외부 테스트
# systemctl status firewalld
방화벽이 실행중이라면 80번 포트로의 접근 허용이 필요하다.
# firewall-cmd --get-default-zone
public
# firewall-cmd --permanent --zone=public --add-port=80/tcp
success
# firewall-cmd --reload
success
브라우저에서 접속이 잘 됨을 볼 수 있다.
systemctl httpd 서비스 등록
# cd /usr/lib/systemd/system
# vi apache.service
[Unit]
Description=apache2 Service
After=syslog.target
After=network.target
[Service]
Type=forking
ExecStart=/sw/apache2/bin/apachectl start
ExecStop=/sw/apache2/bin/apachectl graceful-stop
ExecReload=/sw/apache2/bin/apachectl graceful
User=root
Group=root
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl enable apache
* 참조문서
* configure :
https://httpd.apache.org/docs/2.4/ko/programs/configure.html