본문 바로가기

카테고리 없음

[CentOS] Apache Tomcat 연동하기 - 1 ( Apache 다운로드 및 컴파일 )

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] VirtualBox에서 CentOS설치하기

CentOS 8 설치 나는 VirtualBox에 CentOS를 새로 설치하여 진행을 할 예정이다. 아마 RHEL 8 버전과 가장 가까운 CentOS 버전이 아닐까 싶어서 하게 되었다. http://isoredirect.centos.org/centos/8/isos/x86_64/..

holywat2r.tistory.com

 

 

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

 

:set nu 를 통해 라인 넘버를 확인할 수 있다.
:194 를 통해 194 라인으로 이동을 한 뒤 localhost:80 추가한다.


apache 실행과 프로세스 확인하기

# cd /sw/apache2/bin
# ./apachectl start

# ps -ef | grep httpd

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

* 참조문서

* pcre : https://ko.wikipedia.org/wiki/%ED%8E%84_%ED%98%B8%ED%99%98_%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D

 

펄 호환 정규 표현식 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

* configure : 

https://httpd.apache.org/docs/2.4/ko/programs/configure.html

 

configure - 소스 트리를 구성한다 - Apache HTTP Server Version 2.4

configure - 소스 트리를 구성한다 이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요. configure 스크립트는 특정 플래폼에서 아파치 웹서버를 컴파일하고 설치하기

httpd.apache.org