1. 톰캣 설치를 위한 파일 내려받기 LoadModule jk_module modules/mod_jk.so
wget http://mirror.apache-kr.org//tomcat/tomcat-7/v7.0.4-beta/bin/apache-tomcat-7.0.4.tar.gz
Tomcat 공식 사이트로 부터 apache-tomcat-7.0.4.tar.gz 파일을 내려 받습니다
(http://tomcat.apache.org/)
시스템에 설치된 아파치 버젼에 맞는jk_connentor 파일을 내려 받습니다
wget http://mirror.apache-kr.org//tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/x86_64/mod_jk-1.2.31-httpd-2.2.x.so
(CentOS 5.5 x86_64의 기본 설치된 아파치에 맞는 버젼입니다)
2. 압축 해제 및 설치
tar xvfz apache-tomcat-7.0.4.tar.gz
압축을 해제
mv apache-tomcat-7.0.4 /usr/local/tomcat
/usr/local 로 이동 시키면서 폴더명을 tomcat으로 변경
mv mod_jk-1.2.31-httpd-2.2.x.so /usr/lib64/httpd/modules/mod_jk.so
다운로드 받은 jk_connector 바이너리 파일을 아파치 모듈 폴더로 이동
* yum을 통해 설치하면 /usr/lib64/httpd/modules 입니다 (32비트 버젼의 경우 lib64 -> lib 입니다)
* /etc/httpd/modules 가 위 경로를 링크하고 있으므로 역시 이쪽으로 걸어도 무방합니다
chmod +x mod_jk.so
파일에 실행권한 설정
vim /etc/httpd/conf/httpd.conf
* 위 내용을 적절하게 설정합니다(시스템에 따라 서 경로는 다를 수 있습니다)
<ifModule jk_module>
JkWorkersFile /etc/httpd/conf/workers.properties
JkShmFile /etc/httpd/logs/mod_jk.shm
JkLogFile /etc/httpd/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /manager/* ajp13
JkMount /host-manager/* ajp13
JkMount /example/* ajp13
< /ifModule>
JkMount /*.jsp ajp13
< Directory />
Options FollowSymLinks
AllowOverride None
< /Directory>
vim /etc/httpd/conf/workers.properties
* list 에 ajp13이 아파치톰캣 홈페이지 에서 찾아보니 디폴트 값으로 되어있네요. (의미는 모름...)
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=domain.co.kr
worker.ajp13.port=8009
worker.ajp13.lbfactor=1
worker.ajp13.connection_pool_timeout=600
worker.ajp13.socket_keepalive=1
* host 부분에 도메인 주소를 적으면 됩니다. (전 그냥 localhost로 셋팅~)
3. 서버 실행
sh /usr/local/tomcat/bin/catalina.sh start
Tomcat 서버 스타트
service httpd restart
Apache 서버 리스타트
여기 까지 성공적으로 마쳤다면, 이제 웹브라우저 열고
서버IP
서버IP/index.jsp
각각 아파치 테스트 페이지 및 톰캣 테스트 페이지가 열리는 것을 볼 수 있습니다.
(현재 톰캣 테스트페이지는 사진이 x로 표시되지 않습니다. 이는 경로가 틀려져서 그런것입니다)
그런데 혹시 아파치 서버 시작시 아래와 같은 오류가 뜬다면...
* 방법1 : SELinux관련으로 오류가 발생한 모듈의 보안문맥을 수정합니다 (권장)
chcon -u system_u -t httpd_modules_t mod_jk.so
* 방법2 : SELinux 를 Disabled 합니다... (대부분의 보안 관련 충돌문제 해결 가능하지만... 보안관계상 좋은 방법은 아닙니다)
4. 루트폴더 통합(옵션)
Tomcat과 Apache의 루트폴더를 통합하는 설정입니다.
Apache의 루트폴더를 Tomcat의 루트 폴더로 지정합니다
vim /etc/httpd/conf/httpd.conf
# # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/usr/local/tomcat/webapps/ROOT" # # This should be changed to whatever you set DocumentRoot to. # <Directory "/usr/local/tomcat/webapps/ROOT"> |
service httpd restart
아파치 서버 재시작
혹시 또 다시 아래의 실패 메시지를 접하게 된다면...
DocumentRoot must be a directory
디렉토리 설정이 잘못된 경우 이거나 SELinux 에의한 접근거부 에 따른 문제입니다.
확인 방법 : setup 들어가서 SELinux 부분 Disable 설정 후 다시 아파치 서버 재시작
성공이면 SELinux 가 원인, 그래도 실패면 다른 부분에 원인이 있다는 것
Apache 에 설정한 DocumentRoot 의 위치는 아래와 같습니다
/usr/local/tomcat/webapps/ROOT
chcon 으로 폴더의 보안문맥을 변경합시다
소유자 system_u, 바이너리 템블릿 bin_t 를 tomcat및 하위폴더 전체 적용해주고
tomcat/webapps및 하위폴더전체에 httpd_sys_content_t를 적용합니다.
chcon -R -u system_u -t bin_t /usr/local/tomcat
chcon -R -t httpd_sys_content_t /usr/local/tomcat/webapps
5. 서비스 등록 및 부팅시 자동시작
vim /etc/init.d/tomcat
#!/bin/sh # # Tomcat7 auto-start # # chkconfig: 2345 90 90 # description: Auto-starts tomcat7 # processname: tomcat7 # pidfile: /var/run/tomcat7.pid case $1 in start) sh /usr/local/tomcat/bin/startup.sh ;; stop) sh /usr/local/tomcat/bin/shutdown.sh ;; restart) sh /usr/local/tomcat/bin/shutdown.sh sh /usr/local/tomcat/bin/startup.sh ;; esac exit 0 |
chmod 755 /etc/init.d/tomcat
실행권한 설정
chkconfig --add tomcat
서비스 자동시작 설정
setup으로 들어가면 service 항목에 tomcat 에 * 표시 되어있음을 확인할 수 있습니다.
수정 내역...
접기
2 항에서...
<ifModule jk_module>
JkWorkersFile /etc/httpd/conf/workers.properties
JkShmFile /etc/httpd/logs/mod_jk.shm
JkLogFile /etc/httpd/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /manager/* ajp13
JkMount /host-manager/* ajp13
JkMount /example/* ajp13
</ifModule>
굵게 표시된 부분 3줄이 추가되었습니다.
webapps 하단의 각 폴더별로 접근 가능하도록 JkMount를 설정합니다.
WAR 파일을 이용한 자동 배포 시, 해당 폴더에 대한 경로 설정을 위해서 JkMount를 추가로 작성하면 됩니다.
- JkMount /* ajp13 을 추가하면 jsp만 되는 현상이 생겨서 다시 수정하였습니다.
- Tomcat 화면에서 manager 및 기타 영역 접근시 연결이 안되던 문제가 해결.
- WAR파일을 이용한 배포 시, webapps에 넣으면 여기에 바로 풀리는데 루트 밑이라서 접근 안되던 문제가 해결.
'리눅스 문서' 카테고리의 다른 글
오라클 캐릭터 셋(CHARACTER SET) 변경하기(9i) (0) | 2014.11.25 |
---|---|
mod_jk를 이용한 Apache2 + Tomcat5.5 연동 및 가상호스팅 (0) | 2014.11.25 |
오라클 계정생성 (4) | 2014.11.25 |
Oracle - sqlplus 로 접속하기, 계정생성, 테이블생성 (4) | 2014.11.25 |
백업 슈퍼블럭 확인하기 (4) | 2014.11.25 |