Linux CentOS 7 Apache/Tomcat 7 mod_jk로 연동하기

3 minute read

하이퍼 v에 설치한 가상환경 Linux CentOS 7 환경 위에서 Tomcat과 Apache를 설치하고 두 프로그램을 연결해 8080포트 없이 http://(내 리눅스 아이피 주소)/index.jsp 로 바로 뜰 수 있도록 mod_jk를 활용한 연동 방법에 대한 정리이다.


JDK 설치 확인

java -version


java 설치확인

터미널에 위의 명령을 입력해서 java 버전이 잘 뜨는지 확인해본다.
만약에 뜨지 않는다면 jdk 1.8버전으로 설치해주도록 하자
(이미 설치되어있어서 안하긴 했지만 없다면 구글링…)


tomcat 7 설치

설치확인

안정적인 설치를 위해서 7버전으로 설치를 해주었다.

yum list installed | grep tomcat


tomcat 설치확인

설치가 안되어있는 듯 하니 다운로드 받도록 하자


yum install tomcat

yum을 이용해 설치하는 경우도 있고 wget+url 하는 경우도 있는데 어떤 명령어를 쓰느냐에 따라 설치되는 경로가 다르다.

혹시나 /usr/share/ 밑에 tomcat을 설치하고 싶다며 yum을 사용하도록 하자

yum install -y tomcat*


yum tomcat 설치

cd /usr/share/tomcat
ls


cd를 해서 해당 디렉토리로 tomcat파일이 있는지 확인하고 httpd는 나중에…

tomcat dir확인


tomcat 방화벽 설정

이렇게 되었다면 8080포트의 방화벽을 설정해 열어주도록 한다.

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload


8080방화벽설정

success가 잘 뜨는지 확인 필수!


tomcat 실행해보기

systemctl enable tomcat


위의 코드를 쳐주면 나중에 service tomcat start 명령을 사용할 수 있다.(systemctl start tomcat도 가능)
일일이 디렉토리 이동해서 ./startup.sh를 굳이 안해줘도 된다!

systemctl enable tomcat

tomcat실행확인

firefox에서 localhost:8080 해서 위의 고양이가 뜬다면 tomcat 설치 완료이다.


Apache(httpd) 설치하기

설치확인

CentOS를 설치할 때 소프트웨어를 어떤 걸 설치했냐에 따라 httpd가 설치되어있는 경우도 있는 것 같은데 _서버 GUI_로 설치했더니 따로 설치되어있는 것 같지는 않다.

yum list installed | grep httpd


명령어를 입력해도 아무것도 안나온다면 설치가 안되어있다는 의미이다.

httpd 설치하기

yum install -y httpd


명령을 입력해 httpd를 설치해주도록 한다.

httpd설치확인


80포트, http, https 열어주기

Apache의 경우 80포트를 사용하기 때문에 해당 포트를 열어주어야 한다.

http열어주기

http와 https포트를 열어 reload 하고 list에 제대로 추가되었는지 확인해보도록 한다. 80포트도 마찬가지로 해주어 밑에 사진처럼 나오면 된다.

80포트 오픈


Apache 실행

systemctl status httpd


지금 상태에서 친다면 아마 꺼져있는 상태일 것이다.

systemctl start httpd


Apache 실행확인

Apache 설치완료!


mod_jk 설치하기

컴파일러와 필요한 라이브러리 설치

mod_jk를 설치하는 과정에서 필요한 컴파일러들이 있다. 한꺼번에 설치해주도록 한다.


yum install gcc gcc-c++ httpd-devel


컴파일러 설치


mod_jk 다운로드

구글에 modjk download를 검색해서 tar.gz 파일의 링크를 복사해 wget 명령을 통해 받아준다.

wget -c 링크복사


connector 다운로드


connector 압축해제

tar zxvf tomcat-connector*


다운로드 받은 connector의 압축을 해제해준다.

connector 압축해제


컴파일 하기

압축해제가 정상적으로 되었다면 이제 다운로드 받은 라이브러리를 통해 컴파일이 필요하다. ls를 통해 압축해제 되었는지 확인하고 cd 해서 native 디렉토리로 간다.

native 디렉토리

./configure --with-apxs=/usr/bin/apxs


나중에 할 make 파일을 생성하기 위해서 위의 디렉토리로 configure해주도록 한다. 완료되었다면 make를 입력해준다

make

make가 컴파일을 실행한다. 컴파일을 완료하면 install을 해주도록 한다.

makeinstall

install이 정상적으로 실행된 후 cd하고 해당 디렉토리에 mod_jk.so파일이 생성되어있는지 확인한다!

modjk설치확인ㅇ

이렇게 보인다면 설치, 컴파일 모두 정상적으로 실행되었다는 의미이다.


mod_jk.so Selinux 보안설정

chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so


mod_jk연동하는 과정에서 보안관련해 안되는 경우가 많이 발생하는데 애초에 권한을 부여해 이후 에러를 발생시키지 않도록 한다.


Apache 설정하기

httpd.conf에 LoadModule 추가하기

vi /etc/httpd/conf/httpd.conf


httpd.conf파일로 들어가 편집을 해줘야 한다. /LoadModule을 검색해서 해당 부분으로 이동을 해준다.

LoadModule 추가

노란색 형광펜 부분을 입력해주도록 한다. 오탈자가 나지 않게 조심하자…..


mod_jk.conf 파일 생성하기

사진 맨 밑에 보면 Include…..*.conf 라고 쓰여 있는 부분이 있을 것이다. conf.modules.d경로가 include 된걸 확인할 수 있는데 해당 경로로 진입해 mod_jk에 대한 새로운 설정파일을 만들어주어야 한다.

vi /etc/httpd/conf.modules.d/mod_jk.conf


modconf

새로 생성된 파일에 똑같이 입력해주면 된다. wq하고 저장을 잊지말자


workers파일 생성하기

mod_jk.conf에서 workers.properties를 설정했었으니 해당 파일을 만들어야 한다.

vi /etc/httpd/conf/workers.properties


workers 파일 설정

이거 역시 오탈자에 주의하도록 하자


Apache와 Tomcat의 document 위치 설정하기

이제 httpd.conf에서 두 프로그램의 위치를 설정해 최종 연동에 필요한 정보를 입력한다. (여기서 오타내서 나중에 연결안됐으니 주의…..)

디렉토리권한

tomcat이 설치된 경로에 ROOT에게 Directory 권한을 추가해주면 된다. 그런데…(처음에 여기를 잘못침)


selinux 설정해주기

이제 최종결과를 확인해주기 위해서 보안설정을 해줍니다.

chcon -R --type=httpd_sys_rw_content_t /usr/share/tomcat/webapps/ROOT
setenforce 0


이렇게 하고 service tomcat stop -> service tomcat start
그다음 service httpd stop -> service httpd start 하면 되는데…


오류 해결


에러

아..뭐가 문제인걸까요 ㅠ systemctl status httpd를 확인해보도록 하자

에러가뭐냐

확인해보니 httpd.conf파일의 132번째 줄 syntax error라는데 뭔가 철자오류인듯 하다.. 파일 편집기를 열어봤더니 Directory 권한 줄때 Require 를 Requre로 i를 빼고 썼다.

에잇ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

고치고 다시 restart해본다

오류고침

된다!!!!!


index.jsp 윈도우에서 확인해보기

Apache, Tomcat 모두 실행이 완료되었다면 우선 리눅스에서 localhost/index.jsp 를 입력해준다 8080없이 잘 뜬다면..? 윈도우 창에서 입력해보자

리눅스 아이피주소/index.jsp


index.jsp 확인

고양이가 나온다면 연동이 완료된것! 엄청난 삽질 끝에 드디어 연동에 성공했다 ㅠㅠ 감동적이다…..




Categories:

Updated: