2013년 3월 28일 목요일

아파치 톰켓 연동 작업



보통 많이 사용하는 웹서버는 APM(apache + php + Mysql)이지만 여기에 tomcat을 추가해보도록 하겟다.
일단 기본적으로 APM이 설치된 환경이라는 가정하에 문서를 작성하겠다.
혹 APM이 설치가 되어 있지 않았다면, http://wory.tistory.com/139 에서 yum으로 간단히 설치하는 방법으로 설치해보자.
0. 준비하기
tomcat을 apache와 연동하기 위해서는 중간에 컨넥트 컨테이너가 필요하다.
보통 mod_jk를 많이 사용한다고 한다.
설치에 들어가기전에 tomcat과 tomcat connector를 다운받아 놓자.
두가지 모드 아파치 소프트웨어 파운데이션에서 받을 수 있다. http://tomcat.apache.org/index.html
tomcat connector의 경우 아파치 버전에 맞는 바이너리로 다운받자.
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/
%> wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/mod_jk-1.2.30-httpd-2.2.X.so
두가지 모두 빠른 미러 사이트를 이용해 받도록 한다.
항상 버전 및 미러 사이트에 따라 주소는 다를 수 있다.
1. jdk 설치하기
%> yum -y install java
간단하게 yum을 이용하여 jdk를 설치한다.

2. tomcat 설치하기
%> tar xvfz apache-tomcat-7.0.4.tar.gz
%> mv apache-tomcat-7.0.4 /usr/local/tomcat


3. tomcat connector 설치하기
%> mv mod_jk-1.2.30-httpd-2.2.X.so /usr/lib/httpd/modules/mod_jk.so
%> chmod +x /usr/lib/httpd/modules/mod_jk.so
mod_jk.so 바이너리 파일을 httpd 모듈 폴더에 옮겨넣는다.
여기서 httpd 모듈 폴더 위치는 설치에 따라 달라진다. yum으로 설치하였다면 /usr/lib/httpd/modules/가 된다.
그외에 위치는 whereis httpd 등으로 위치를 찾는다.
4. 아파치 환경설정 httpd.conf
%> vi /etc/httpd/conf/httpd.conf
//LoadModule가 모인 곳에.
   LoadModule jk_module modules/mod_jk.so
//..ifModule 설정이 모인 곳에.
<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]"
</ifModule>

JkMount /*.jsp ajp13
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
이곳에서 역시. httpd의 폴더 위치에 따라서 workersfile, logfile, shmfile의 위치는 변한다.
5. workers.properties 파일 생성 및 설정(httpd.conf에 WorkersFile 위치 설정한곳에 생성)
%> vi /etc/httpd/conf/workers.properties
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
worker.ajp13.host=domain.co.kr  이부분은 자신의 주소를 넣으면 된다.

6. 연동 테스트
tomcat 시작
%> /usr/local/tomcat/bin/catalina.sh stop
%> /usr/local/tomcat/bin/catalina.sh start
stop 명령을 내리면 컨넥션 오류를 출력할 것이다. 이것은 현재 실행이 되어 있지 않기 때문에 일어나는 것이므로 무시해도 된다. 그럼 왜 하느냐?? 혹시나 tomcat이 실행되어 있을지 모르는까.. 껏다 켜기 위해서 ^^ ;
아파치 재시작
# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                             [  OK  ]

혹시나 아파치 재실행중 다음과 같이 퍼미션 문제로 오류가 발생할 때.
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: cannot open shared object file: Permission denied
                                                           [FAILED]

혹시나 Selinux 보안 정책을 사용하고 있다면 다음과 같이 퍼미션을 변경해 준다.
%> chcon -t textrel_shlib_t /usr/lib/httpd/module/mod_jk.so
%> service httpd start

http://domain/index.jsp를 접속해 보면!!!!
Apache Tomcat Apache Tomcat/7.0.4
라는 환영메세지를 보게 될것이다 ^^ ㅋ
http://domain/을 접속하면?? 일반 아파치 환영 페이지가 ^^

7. 가상호스트 연동
httpd.conf에 하거나 또는 extra/httpd-vhost.conf에 가상호스트 설정을 한다.
ㄴㅁㅇㄹ
NameVirtualHost *
<VirtualHost *>
        ServerAdmin id@domain.com
        DocumentRoot "/var/www/html"
        ServerName domain.com
        ErrorLog "logs/domain.com-error_log"
        CustomLog "logs/domain.com-access_log" common
        JkMount /*.jsp ajp13
        <Directory />
                Options FollowSymLinks
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
<VirtualHost *>
        ServerAdmin ID@domain.com
        DocumentRoot "/home/update/www"
        ServerName sub.domain.com
        JkMount /*.jsp ajp13
</VirtualHost>

다음은 tomcat의 server.xml 설정
<Host name=localhost... >.... </Host>다음에 아래처럼 가상호스팅한 정보와 맞추어 넣는다

<!--########################### VirtualHost ###########################-->
        <Host name="domain.com" appBase="/home/update/www"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="" debug="1"/>
        </Host>
<!--######################## VirtualHost End ##########################-->


8.tomcat 데몬 등록

#> vi /etc/init.d/tomcat
vi /etc/init.d/tomcat 으로 다음과 같이 쉘스크립트를 짠다.

#!/bin/sh
#
# Tomcat6 auto-start
#
# chkconfig: 2345 90 90
# description: Auto-starts tomcat6
# processname: tomcat6
# pidfile: /var/run/tomcat6.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

이후 권한 설정과 chkconfig 리스트에 추가한다.
#> chmod 755 /etc/init.d/tomcat
#> chkconfig --add tomcat
#> service tomcat restart

 

2013년 3월 27일 수요일

아파치 톰켓7 연동



보통 많이 사용하는 웹서버는 APM(apache + php + Mysql)이지만 여기에 tomcat을 추가해보도록 하겟다.
일단 기본적으로 APM이 설치된 환경이라는 가정하에 문서를 작성하겠다.
혹 APM이 설치가 되어 있지 않았다면, http://wory.tistory.com/139 에서 yum으로 간단히 설치하는 방법으로 설치해보자.
0. 준비하기
tomcat을 apache와 연동하기 위해서는 중간에 컨넥트 컨테이너가 필요하다.
보통 mod_jk를 많이 사용한다고 한다.
설치에 들어가기전에 tomcat과 tomcat connector를 다운받아 놓자.
두가지 모드 아파치 소프트웨어 파운데이션에서 받을 수 있다. http://tomcat.apache.org/index.html
tomcat connector의 경우 아파치 버전에 맞는 바이너리로 다운받자.
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/
%> wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/mod_jk-1.2.30-httpd-2.2.X.so
두가지 모두 빠른 미러 사이트를 이용해 받도록 한다.
항상 버전 및 미러 사이트에 따라 주소는 다를 수 있다.
1. jdk 설치하기
%> yum -y install java
간단하게 yum을 이용하여 jdk를 설치한다.

2. tomcat 설치하기
%> tar xvfz apache-tomcat-7.0.4.tar.gz
%> mv apache-tomcat-7.0.4 /usr/local/tomcat


3. tomcat connector 설치하기
%> mv mod_jk-1.2.30-httpd-2.2.X.so /usr/lib/httpd/modules/mod_jk.so
%> chmod +x /usr/lib/httpd/modules/mod_jk.so
mod_jk.so 바이너리 파일을 httpd 모듈 폴더에 옮겨넣는다.
여기서 httpd 모듈 폴더 위치는 설치에 따라 달라진다. yum으로 설치하였다면 /usr/lib/httpd/modules/가 된다.
그외에 위치는 whereis httpd 등으로 위치를 찾는다.
4. 아파치 환경설정 httpd.conf
%> vi /etc/httpd/conf/httpd.conf
//LoadModule가 모인 곳에.
   LoadModule jk_module modules/mod_jk.so
//..ifModule 설정이 모인 곳에.
<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]"
</ifModule>

JkMount /*.jsp ajp13
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
이곳에서 역시. httpd의 폴더 위치에 따라서 workersfile, logfile, shmfile의 위치는 변한다.
5. workers.properties 파일 생성 및 설정(httpd.conf에 WorkersFile 위치 설정한곳에 생성)
%> vi /etc/httpd/conf/workers.properties
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
worker.ajp13.host=domain.co.kr  이부분은 자신의 주소를 넣으면 된다.

6. 연동 테스트
tomcat 시작
%> /usr/local/tomcat/bin/catalina.sh stop
%> /usr/local/tomcat/bin/catalina.sh start
stop 명령을 내리면 컨넥션 오류를 출력할 것이다. 이것은 현재 실행이 되어 있지 않기 때문에 일어나는 것이므로 무시해도 된다. 그럼 왜 하느냐?? 혹시나 tomcat이 실행되어 있을지 모르는까.. 껏다 켜기 위해서 ^^ ;
아파치 재시작
# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                             [  OK  ]

혹시나 아파치 재실행중 다음과 같이 퍼미션 문제로 오류가 발생할 때.
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: cannot open shared object file: Permission denied
                                                           [FAILED]

혹시나 Selinux 보안 정책을 사용하고 있다면 다음과 같이 퍼미션을 변경해 준다.
%> chcon -t textrel_shlib_t /usr/lib/httpd/module/mod_jk.so
%> service httpd start

http://domain/index.jsp를 접속해 보면!!!!
Apache Tomcat Apache Tomcat/7.0.4
라는 환영메세지를 보게 될것이다 ^^ ㅋ
http://domain/을 접속하면?? 일반 아파치 환영 페이지가 ^^

7. 가상호스트 연동
httpd.conf에 하거나 또는 extra/httpd-vhost.conf에 가상호스트 설정을 한다.
ㄴㅁㅇㄹ
NameVirtualHost *
<VirtualHost *>
        ServerAdmin id@domain.com
        DocumentRoot "/var/www/html"
        ServerName domain.com
        ErrorLog "logs/domain.com-error_log"
        CustomLog "logs/domain.com-access_log" common
        JkMount /*.jsp ajp13
        <Directory />
                Options FollowSymLinks
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
<VirtualHost *>
        ServerAdmin ID@domain.com
        DocumentRoot "/home/update/www"
        ServerName sub.domain.com
        JkMount /*.jsp ajp13
</VirtualHost>

다음은 tomcat의 server.xml 설정
<Host name=localhost... >.... </Host>다음에 아래처럼 가상호스팅한 정보와 맞추어 넣는다

<!--########################### VirtualHost ###########################-->
        <Host name="domain.com" appBase="/home/update/www"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="" debug="1"/>
        </Host>
<!--######################## VirtualHost End ##########################-->


8.tomcat 데몬 등록

#> vi /etc/init.d/tomcat
vi /etc/init.d/tomcat 으로 다음과 같이 쉘스크립트를 짠다.

#!/bin/sh
#
# Tomcat6 auto-start
#
# chkconfig: 2345 90 90
# description: Auto-starts tomcat6
# processname: tomcat6
# pidfile: /var/run/tomcat6.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

이후 권한 설정과 chkconfig 리스트에 추가한다.
#> chmod 755 /etc/init.d/tomcat
#> chkconfig --add tomcat
#> service tomcat restart

2013년 3월 11일 월요일

linux 에 jdk 설치 방법


1. tar zxvf jdk-7u17-linux-x64.gz
위의 명령어로 압축을 푼다.


2. mv jdk1.7.0_17/ /usr/java/jdk1.7.0_17/

압축을 풀린걸 확인하고 폴더채로 사용할 링크로 옮긴다.


심볼릭 링크 거는 법 => ln -s jdk1.7.0_17/ java

3. vi /etc/profile
profile 파일을 열어 java 환경설정을 해준다

export JAVA_HOME=/usr/local/java
export PATH="$JAVA_HOME/bin:$PATH"
export CLASSPATH=".:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar"
export CATALINA_OPTS="Djava.awt.headless=true"


입력을 하고 source profile 로 적용 한다

javac -version 으로 설치 확인






2013년 3월 7일 목요일

웹FTP Applet

웹에서 사용할 수 있는 다양한 ftp툴들이 있습니다. 그 중 하나인 jscape사의 자바 애플릿입니다.
FTP, FTPS, SFTP, WebDAV가 지원되고, 웹 환경이기 때문에 OS상관없이 브라우저에서 접근하는 것만으로 사용이 가능합니다.

www.jscape.com에서 jar파일로 된 도구를 다운로드할 수 있는데, 모든 기능이 제공되는 evaluation 버전이 무료 제공됩니다!
여기가 애플릿 다운로드 링크입니다.
http://www.jscape.com/download-secure-ftp-applet/
 

이 파일을 원하는 곳에 올려두고, 애플릿을 실행하는 간단한 코드만 웹페이지에 추가하면 아래와 같은 인터페이스의 ftp 도구를 웹에서 사용할 수 있습니다.


아래 링크는 매뉴얼입니다. 튜토리얼과 파라미터 등 자세하게 잘 설명된 웹 문서입니다.
http://files.jscape.com/sftpapplet/docs/html/index.html?specifyingcustomlocationof.html

실행을 위해서는 아래와 같은 간단한 구동 코드를 사용하면 됩니다.

<!-- BEGIN SECURE FTP APPLET CODE -->
<CENTER>
<!-- NOTE: All runtime properties are defined in params.txt by default -->
<object width="100%" height="600" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=1,5,0,0">
    <param name="code" value="com.jscape.ftpapplet.FtpApplet.class">
    <param name="archive" value="sftpapplet.jar">
    <param name="scriptable" value="false">
<param name="bgColor" value="ffffff">
<param name="showConnectButton" value="true">

    <comment>
<embed
            type="application/x-java-applet;version=1.5" \
            code="com.jscape.ftpapplet.FtpApplet.class" \
            archive="sftpapplet.jar" \
            name="ftpapplet" \
            width="100%" \
            height="600" \
    scriptable="false" \
    pluginspage = "http://java.sun.com/products/plugin/index.html#download">
    <noembed>
            </noembed>
</embed>
    </comment>
</object>
</CENTER>
<!-- END SECURE FTP APPLET CODE -->

이렇게 웹 화면에서 간단하게 ftp 도구가 제공될 수 있습니다.
홈페이지의 관리자 도구 등으로 제공하기 편리합니다.

2013년 3월 6일 수요일

oracle commit 완료된 데이터 복구


데이터를 잘못 지우고 커밋을 눌러버렸을때 

멘붕당하지 않고 처리하는 방법 

select * from 테이블명 as of timestamp(systimestamp-interval '60' minute);

이렇게 하면 60분 전의 테이블 데이터를 볼수 있다 

저기서 잘못 지운 데이터를 where 문으로 찾아서 

insert into 테이블명 select * from 테이블명 as of timestamp(systimestamp-interval '60' minute) where [조건문]; 으로 복구 할수 있다. 

데이터의 복구 시간 제한은 180 이내라고 한다.  

멘붕하고 어쩌지 하지 말고 복구 하자!!! 아 물론 오라클에 한해서다..ㅠ_ㅠ 

2013년 3월 4일 월요일

리눅스 톰켓 설치


1. JDK 설치

chmod +x jdk-6u26-linux-x64.bin
./jdk-6u26-linux-x64.bin
JDK경로: /usr/local/jdk1.6.0_26

2. 톰켓설치

톰켓 경로 : /usr/local/tomcat7 

3. 경로설정 
vi /etc/profile
# Tomcat Setting
export JAVA_HOME=/usr/local/jdk1.6.0_26
export CATALINA_HOME=/usr/local/tomcat7
export PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin:$CATALINA_HOME/bin
:wq
source /etc/profile
echo $JAVA_HOME
echo $CATALINA_HOME
mkdir $CATALINA_HOME/logs
chmod 777 $CATALINA_HOME/logs
touch $CATALINA_HOME/logs/catalina.out
chmod +x $CATALINA_HOME/bin/*
 

4. 서비스 등록 
   
vi /etc/init.d/tomcat7
# tomcat7 auto-start
#
# chkconfig: 2345 90 90
# description: Auto-starts tomcat7
# processname: tomcat7
# pidfile: /var/run/tomcat7.pid
export JAVA_HOME=/usr/local/jdk1.6.0_26
case $1 in
 start)
     sh /usr/local/tomcat7/bin/startup.sh
     ;;
 stop)
     sh /usr/local/tomcat7/bin/shutdown.sh
     ;;
 restart)
     sh /usr/local/tomcat7/bin/shutdown.sh
     sh /usr/local/tomcat7/bin/startup.sh
     ;;
 esac
 exit 0
:wq
chmod 755 /etc/init.d/tomcat7
chkconfig --add tomcat7
service tomcat7 start
ntsysv
 
5. 커넥터 설치 
 cd tomcat-connectors-1.2.32-src.tar.gz/native
chmod +x ./buildconf.sh
./buildconf.sh
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-java-home=$JAVA_HOME
make && make install
vi /usr/local/apache2/conf/httpd.conf
LoadModule jk_module  modules/mod_jk.so
<IfModule mod_jk.c>
JkWorkersFile conf/workers.properties
JkLogFile mod_jk.log
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
</IfModule>
# 인덱스페이지에 JSP 를 사용하도록 설정
<IfModule dir_module>
    DirectoryIndex index.html index.php index.jsp
</IfModule>
:wq
vi /usr/local/apache2/conf/workers.properties
workers.tomcat_home=/usr/local/tomcat7
workers.java_home=/usr/local/jdk1.6.0_26
ps=/
worker.list=ajp12, ajp13
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1
 
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
 
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp12, ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
worker.inprocess.cmd_line=start
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stder

6. 가상호스팅 설정
user_add jsp
passwd jsp
cd /home/jsp
mkdir public_html
mkdir /home/apache2-log
chmod 707 /home/apache2-log
<VirtualHost *:80>
    ServerName jsp.sixpoly.com
    ServerAdmin pchj79@gmail.com
    ServerAlias jsp.sixpoly.com
    DocumentRoot /home/jsp/public_html
    ErrorLog /home/apache2-log/jsp-error.log
    LogLevel warn
        #SetEnvIf Remote_Addr 180.224.219.32$ do_not_log
        LogLevel warn
        CustomLog "/home/apache2-log/jsp-access.log" combined env=!do_not_log
        ErrorDocument 403 http://sixpoly.com/error/permission
        ErrorDocument 404 http://sixpoly.com/error/
   # http://jsp.sixpoly.com/test 로 접속시 /usr/local/tomcat7/webapps/test/ 여기로 연결
   # test폴더에 있는 모든 파일을 ajp13이랑 연결
   # jsp만 연결하고 싶은 경우 JkMount /test/*.jsp ajp13
   # 여러개랑 연결하고 싶은경우 JkMount를 추가하면 된다.
   JkMount /test/* ajp13
   <Directory "/home/jsp/public_html">
       Options FollowSymLinks
       AllowOverride FileInfo AuthConfig
       php_value short_open_tag 0
    </Directory>
</VirtualHost>

7. 관리자 계정 추가
vi /usr/local/tomcat7/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="admin" password="1234" roles="manager-gui"/>
:wq

8. 샘플 파일 생성
mkdir /usr/local/tomcat7/webapps/test
vi /usr/local/tomcat7/webapps/test/index.jsp
<%
String msg = "test";
%>
<%= msg %>
:wq


리눅스에 아파치 설치하기 Linux, httpd-2.2.23

1. apache 데몬이 있는지 확인 

# ps -ef | grep httpd
root 6695 6570 0 11:05 pts/1 00:00:00 grep httpd

위와 같이 나오면 데몬이 없는 것이다. 
실행중인 데몬이 있으면 데몬을 종료 (killall httpd) 

2. RPM 패키지 확인 

# rpm -qa | grep httpd
httpd-manual-2.0.52-41.ent
system-config-httpd-1.3.1-1
httpd-suexec-2.0.52-41.ent
httpd-devel-2.0.52-41.ent
httpd-2.0.52-41.ent

설치된 리스트를 볼수 있다. 없으면 설치가 않된 것이다.

3. apache 삭제

# rpm -e --nodeps httpd-2.0.52-41.ent 
# rpm -e --nodeps httpd-manual-2.0.52-41.ent
# rpm -e --nodeps httpd-suexec-2.0.52-41.ent
# rpm -e --nodeps httpd-devel-2.0.52-41.ent
# rpm -e --nodeps tsystem-config-httpd-1.3.1-1

위와같은 방법으로 검색된 패키지들은 모두 삭제하자. --nodeps 옵션을 붙혀준 것은 의존성 때문이다.
이 옵션을 붙히지 않으면 다른 패키지가 이 패키지를 dependant 하고 있으므로 삭제할 수 없다는 메시지가 나온다.

# rpm -qa | grep httpd

4. 설치

apache_2.2.23 (http://httpd.apache.org/download.cgi) 여기에서 다운로드 하여 받는다.

wget 을 이용해서 받겠다.

# wget http://apache.tt.co.kr/httpd/httpd-2.2.23.tar.gz 
# tar xvfz httpd-2.2.23.tar
# cd http*
# ./configure --prefix=/usr/local/server/apache 
# make 
# make install


5. 시작할때 자동으로 실행되도록 하기.

# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd

# chkconfig --add httpd
httpd 서비스는 chkconfig 를 지원하지 않습니다

이런 메세지로 인해서 수행이 않된다.
httpd 추가를 한다.

# vi /etc/rc.d/init.d/httpd

#!/bin/bash
#
# chkconfig: - 50 50
# description: init file for Apache2 server daemon

# processname: /usr/local/server/apache/apachectl
# config: /usr/local/
server/apache/conf/httpd.conf
# pidfile: /usr/local/server/apache/logs/httpd.pid
#
# source function library
. /etc/rc.d/init.d/functions

# pull in sysconfig settings


RETVAL=0
prog="apache"
APACHE_HOME=/usr/local/
server/apache
APACHED=$APACHE_HOME/bin/apachectl

start()
{
# Create keys if necessary
echo -n $"Starting $prog :"
sh $APACHED start && success || failure
RETVAL=$?
return $RETVAL
}

stop()
{
echo -n $"Stopping $prog:"
sh $APACHED stop && success || failure
RETVAL=$?
return $RETVAL
}


case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=1
esac
exit $RETVAL

그럼 다시 추가해본다.
# chkconfig --add httpd
# chkconfig --list 

너무 많이 나온다. grep 명령을 써서 확인한다.

# chkconfig --list | grep httpd
httpd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제

# chkconfig --level 345 httpd on


부팅시 활성화가 된것을 볼수 있다.
# chkconfig --list | grep httpd
httpd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제

확인을 해야 하겠다. 
# reboot 

# netstat -nlp|grep httpd
tcp 0 0 :::80 :::* LISTEN 7724/httpd

http://localhost 로 확인해본다.