rpm으로 설치 하려고 하는 패키지가 있는지 확인!!(java/jdk/tomcat/apache/http)
기본 gcc/zlib가 있어야 함.
selinux disabled
1. jdk 설치 & /etc/profile 수정
[root@www local] # chmod +x jdk-6u16-linux-i586.bin
[root@www local] # ./jdk-6u16-linux-i586.bin
[root@www local] # mv jdk-6u16-linux-i586.bin /usr/local/src/java
[root@www local] # vi /etc/profile
JAVA_HOME=/usr/local/src/java
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*:.
추가한 후 저장하고 나온다.
[root@www local] # source /etc/profile
[root@www local] # java –version 해서 에러없이 버전 정보 나오면 설치 성공
(/etc/profile 설정만 잘 해주면 된다.)
2. apache 설치 & /etc/profile 수정(gcc 설치 확인)
[root@www local] # tar zxvf httpd-2.2.13.tar.gz
[root@www local] # cd httpd-2.2.13.tar.gz
[root@www httpd-2.2.13.tar.gz ] # ./configure \
--prefix=/usr/local/src/apache \ <---아파치 설치 할 위치
--enable-modules=ssl \
--with-ssl=/usr/local/openssl \ <--- openssl을 설치한 폴더
--enable-mods-shared=all \
--enable-so \
--enable-rewrite \
--enable-proxy \
--enable-proxy-ajp \
--enable-proxy-balancer \
--enable-proxy-http \
--enable-proxy-connect \
--enable-ssl <----------- 이부분이 중요합니다.
[root@www httpd-2.2.13.tar.gz ] # ./config.nice
[root@www httpd-2.2.13.tar.gz ] # make && make install
[root@www local] # vi /etc/profile
export APACHE_HOME=/usr/local/src/apache
export PATH=$PATH:$APACHE_HOME/bin
추가한 후 저장하고 나온다.
[root@www local] # source /etc/profile
[root@www local] # apachectl [start|stop]
[root@www local] # system-config-firewall에서 방화벽에가서 80포트를 열어 줌.
http://localhost에서
It works! 나오면 성공!!
3. tomcat 설치 & /etc/profile 수정
[root@www local] # tar zxvf tomcat-6.0.20.tar.gz
[root@www local] # mv tomcat-6.0.20 /usr/local/src/tomcat
(tomcat-6.0.20폴더를 /usr/local/src/에 이동하며 tomcat으로 폴더명 변경)
[root@www local] # vi /etc/profile
export CATALINA_HOME=/usr/local/src/tomcat
#export CATALINA_OPTS=“-server”
export PATH=$PATH:$CATALINA_HOME/bin
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib/servlet-api.jar:.
추가한 후 저장하고 나온다.
[root@www local] # source /etc/profile
[root@www local] # catalina.sh [start|stop]
http://localhost:8080에서
고양이 나오면 성공!!
tomcat/conf폴더에서 web.xml안에 invoker 주석 2군데 삭제.
tomcat/conf폴더에서 context.xml에서
<context> 이 부분을 -> <context reloadable=“true” Privileged=“true”>로 수정
4. apache & tomcat connectors 연동
[root@www local] # tar zxvf tomcat-connecors-1.2.28-src-tar.gz
[root@www local] # cd tomcat-connecors-1.2.28-src/native
[root@www native] # ./configure --with-apxs=/usr/local/src/apache/bin/apxs
[root@www native] # make && make install
[root@www native] # vi /usr/local/src/apache/conf/mod_jk.conf (mod_jk.conf파일 생성)
<IfModule mod_jk.c>
JkWorkersFile “/usr/local/src/apache/conf/workers.properties”
JkLogFile “/usr/local/src/tomcat/logs/mod_jk.log”
JkLogLevel info
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /examples/*.jsp ajp13
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]“
JkOptions +ForwardKeySize +ForwardURICompatUnparsed –ForwardDirectories
JkRequestLogFormat "%w %V %T"
</IfModule>
위와 같이 작성하고 저장하고 나온다.
[root@www native] # vi /usr/local/src/apache/conf/workers.properties (workers.properties파일 생성)
#workers.properties
workers.tomcat_home=/usr/local/src/tomcat
workers.java_home=/usr/local/src/java
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
위와 같이 작성하고 저장하고 나온다.
[root@www native] # vi /usr/local/src/apache/conf/httpd.conf 제일 마지막에 아래와 같이 추가한다.
#mod_jk.so
LoadModule jk_module modules/mod_jk.so
#JK Connection Configuration
include conf/mod_jk.conf
[root@www native] # catalina.sh stop -> start
[root@www native] # apachectl restart
Syntax error on line 2 of /usr/local/src/apache/conf/mod_jk.conf:
JkWorkersFile: Can't find the workers file specified
에러가나오면 위의 mod_jk.conf 파일안에
<IfModule mod_jk.c>
JkWorkersFile “/usr/local/src/apache/conf/workers.properties”
JkLogFile “/usr/local/src/tomcat/logs/mod_jk.log”
JkLogLevel info
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /examples/*.jsp ajp13
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]“
JkOptions +ForwardKeySize +ForwardURICompatUnparsed –ForwardDirectories
JkRequestLogFormat "%w %V %T"
</IfModule>
""(쌍따옴표)랑 -(ForwardDirectories 앞 하이픈)을 지우고 다시 쓰면 OK!
이렇게 설정하면 http://localhost 하면 localhost:8080 한 것 과 같이 고양이가 나오면 성공!!!
http://localhost해서 고양이가 안나오면 http://localhost/index.jsp 하면 고양이가 나온다!!!
-----------------------------------------------------------------------------------------------------------
5. OpenSSL 설정
SSL생성
1. openssl을 이용해서 개인키(비밀키) 생성
2. 개인키 확인
3. openssl로 CSR생성
4. CSR확인
5. 개인키 백업
6. 인증기관에 CSR접수
7. 네트워크 확인. SSL적용에 따른 방화벽(443번 포트 열어야 함)
8. 인증기관에서 CSR 파일 답긴 확인 |
[root@www native] # cd /usr/local/src/apache/conf
[root@www native] # mkdir sslkeys
[root@www native] # cd sslkeys
# openssl req -new -x509 -nodes -out server.crt -keyout server.key
Generating a 1024 bit RSA private key
.......................++++++
....++++++
writing new private key to 'server.key'
.....
Country Name (2 letter code) [GB]: KR <-------------한국이면 KR
(국가코드)
State or Province Name (full name) [Some-State]: Incheon <----- 도이름 (없으면 그냥 엔터)
Locality Name (eg, city) []:Incheon <------- 도시이름
Organization Name (eg, company) [Internet Widgits Pty Ltd]:com <------ 회사명
Organizational Unit Name (eg, section) []:development <-------부서명
Common Name (eg, YOUR name) []:xxxxxxxxxx <--- 사이트명 (정확히 기입을 해줘야 한다.)
Email Address []: (엔터)
# ls
server.crt server.key
# chmod 600 server.key
[root@www native] # vi /usr/local/src/apache/conf/httpd.conf
... (중략) ...
LoadModule ssl_module modules/mod_ssl.so <----------이부분이 없다면 좀 이상한건데 일단 적고 파일이 존재하는지 확인 해본다.
... (중략) ...
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf <---------- # 주석 해제
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
[root@www native] # vi /usr/local/src/apache/conf/extra/httpd-ssl.conf
SSLCertificateFile “/usr/local/src/apache/conf/sslkeys/server.crt”
SSLCertificateKeyFile “/usr/local/src/apache/conf/sslkeys/server.key”
#JSP 페이지 보이게 하기
JkMount /*.jsp ajp13
[root@www native] # vi /usr/local/src/apache/conf/httpd.conf (파일 제일 밑에 추가)
#HTTP로 들어오는 것을 HTTPS로 변환
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}
[root@www native] # system-config-firewall에서 방화벽에가서 443포트를 열어 줌.