Server & OS

Linux(RedHat7.3) + Apache(2.0.48) + PHP(4.3.4) + Mysql(4.0.17) + Oracle*8.1.7) +Tomcat(4.1.18)

페이지 정보

본문

Linux(RedHat7.3) + Apache(2.0.48) + PHP(4.3.4) + Mysql(4.0.17) + Oracle*8.1.7) +Tomcat(4.1.18)

* 설치에 앞서....
  왜 이런 설치가 필요 한지 제가 셋팅 하고도 의문이 듭니다. 욕심이라고 할까요...
  프로그램 이라고 한지 거의 10년이 지나 갑니다. 고 3때 직업 훈련원에서 배운 C언에 반해서,
  전문대에 진학 하고, 도스 6.2에 빠져 학교 컴퓨터 다 고장내고..ㅋㅋ
  군대를 가고, 제대를 하고, 노량진에서 생선 장수로 잠깐 돈을 벌면서도, 프로그램을 하고 싶은 욕심,
  다시 직업전문학교 에서 6개월 웹마스터 강의 듣고...
  php 프로그램 하는 직업으로....
  욕심입니다. 아직은 욕심이거든요..ㅋㅋ
  설치 문서는 너무 많이 참조를 해서 일일이 밝히기가 힘든점 사과 드립니다.
  그럼 삽질의 서버 셋팅 들어갑니다...

1. 설치 순서
  1)Linux7.3(KDE 꼭설치요!!)
  2)Oracle(8.1.7 + jdk118_v3-glibc-2.1.3 + jre118_v3-glibc-2.1.3)
  3)imap-2001a
  3)Mysql(4.0.17)
  4)Apache(2.0.48)
  5)PHP(4.3.4)
  6)Zend OPTIMIZER(2.1.0)
  7)j2sdk-1_3_1_10
  8)Tomcat(4.1.18)
  9)Tomcat-connectors(4.1.18-src)

2. 설치전 의문 사항
  위의 순서 중에 jdk가 다른 버젼으로 두번 깐다.. 여기서 저는 고민을 했습니다.
  위의 설치전 Oracle 을 설치 할때 java 환경을 만들어 줘야 하는데 jdk118 이걸 사용 할지 아님 j2sdk-1_3_1 을 사용할지..
  결론은 두개를 같이 사용 하기로 했습니다. 설치 후 별문제 없이 되더군요 이유는 오라클 설치에서 밝히기로 합니다.
  해결 하나만 설치 하는 해결 방안도 지금 찾고 있습니다. 아시는 분은 리플 부탁 드립니다.
  Zend 가 아파치2 에서는 설치가 않된다, 또는 PHP 4.3.X 이상 에서는 안된다는 문서 혹은 설치 후기를 봤습니다.
  일단 설치가 성공 하는걸 보니 그리고, phpinfo로 찍어보니 무리 없이 되더군요.. 그래서 설치 합니다.
  Tomcat 설치후 아파치와 함께 80포트 또한 같이 사용하는 버쳐호스팅 까지 한번 해보겠습니다..
  그럼 본격 적인 삽질로 갑니다.

3. 설치
  1)Oracle(8.1.7)
  오라클 계정 설정

  $ su -
  password:
  # groupadd dba
  # useradd oracle -d /home/oracle -g dba
  # passwd oracle
  # exit

  $root 계정에서 작업
  # tar xvfj jdk118_v3-glibc-2.1.3.tar.bz2 -C /usr/local/
  # ln -s /usr/local/jdk118_v3 /usr/local/java
  # tar xvfj jre118_v3-glibc-2.1.3.tar.bz2 -C /usr/local/
  # ln -s /usr/local/jre118_v3 /usr/local/jre
  # chown root.root /usr/local/jdk118_v3 /usr/local/jre118_v3 -R

  oracle계정의 .bash_profile 수정
  $ su - oracle
  password:
  $ vi ~/.bash_profile

  * 참고 : 저의 .bash_profile 환경을 올립니다. 자신의 설정에 맞게 편집 하세요..
 
####### 여기서 부터 .bash_profile ###########
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/8.1.7
export ORACLE_OWNER=oracle
export ORACLE_SID=ORCL
export TMPDIR=$ORACLE_BASE/tmp
export PATH=$PATH:$ORACLE_HOME/bin:/usr/local/java/bin
export JAVA_HOME=/usr/local/java
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=American_America.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LD_ASSUME_KERNEL=2.2.5
source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
export LANG=C
umask 022


export PATH
unset USERNAME

#### 여기 까지 .bash_profile ##########

* 참고 위 .bash_profile 에서 중요한건
export LD_ASSUME_KERNEL=2.2.5
source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
이거 두줄입니다. 이걸 써주지 않고 하는 법도 있습니다.
이걸 해주지 않음 오라클 인스텔러가 뜨지 않습니다. 굳이 하는 법은
뒤에 설명 하겠습니다.

  오라클 설치 디렉토리 생성
  $ su -
  password:
  # mkdir /oracle/app/oracle/oraInventory -p
  # chown oracle.dba /oracle -R

 
  오라클 압축 풀기
  # tar xvf linux81701.tar -C /tmp
  # chown oracle.dba /tmp/Disk1 -R
 
  오라클 설치 (oracle계정의 x-window(KDE)에서 실행되어야 함)
  터미털 창을 띄우고...
  $ cd /tmp/Disk1
  $ ./runInstaller

  참고 :
  export LD_ASSUME_KERNEL=2.2.5
  source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
  이걸 해주지 않고 실행 하면 아무 화면도 나오지 않습니다.
  그럼
  vi /tmp/Disk1//tmp/Disk1/install/or***.ini
  파일을 수정
  JRE_LOCATION=/usr/local/java
  이렇게 수정 하면 화면이 뜬다...

  Welcome  : Next 버튼

  File Locations

  UNIX Group Name 화면
  UNIX Group Name에 dba를 입력

  Oracle Universal Installer
  /oracle/app/oracle/product/8.1.7/orainstRoot.sh을 root권한으로 실행하
  라는 알림창이 뜬다.

  터미털을 하나 더 띄워서 아래와 같이 실행
  $ su
  password :
  # /oracle/app/oracle/product/8.1.7/orainstRoot.sh
  실행한후에 다시 OUI로 돌아와서 retry버튼 클릭

  Available Products
  Oracle8i Enterprise Edition 8.1.7.0.1 선택

  Installation Types
  Custom 선택

  Available Product Components
  net8 components 의 항목 모두 선택.
  tcp/ip관련 항목 기본적으로 선택이 되어있지 않기 때문에 반드시 선택

  Component Locations 화면
  Java Runtime Environment 1.1.8
  (apache를 체크하지 않으시면 이화면은 나오지 않는다.)
  그냥 다음 클릭

  Privileged Operating System Groups
  Database Administrator (OSDBA) Group : dba
  Database Operator (OSOPER) Group : dba

  Create Database
  No 선택

  Summary
  (나머지 열거하지 않은 항목들은 그냥 다음을 클릭)
  다음 클릭

  Install
  설치...

  Setup Privileges
  다이얼로그 창이 보이면 루트계정의 두번째 한텀에서 다음과 같이 실행

  # /oracle/app/oracle/product/8.1.7/root.sh
  ....[/usr/local/bin]: <enter>

  Ok 버튼

  Configuration Toos
  Net8 Configuration Assistant in progress...
  설치가 안되므로 Net8을 선택한 후 중단을 누름.
  그리고 다음을 클릭

  다시 처음화면으로 돌아가는데 계속 다음을 누르고
  Available Product Components
  에서 net8 components 의 항목을 모두 재설치선택

  설치 중에
  "ins_net_client.mk .. 등의 오류가 발생했습니다" 라는 내용의
  다이얼로그가 뜨면 모두 무시를 클릭
  설치하고 완료되면 종료함

  오라클 패치(1)
  $ cd Disk1/patch
  $ ls
  bug1538440 bug1542738
  $ cd bug1542738/
  $ sh README.1542738
  $ cd ../bug1538440
  $ export TOP_PATCH_DIR=/Disk1/patch/bug.1538440
  $ sh README.1538440

  오라클 패치(2)
  $ cd $ORACLE_HOME
  $ tar xvfz glibc-2.1.3-stubs.tar.gz
  $ ./setup_stubs.sh

  DB생성
  $ dbassist
  (dbassist가 안뜰경우에는
  $ killall jre -9 를 실행하고 다시 실행)

  순서 :
  Create A database -> Custom -> Multipurpos(다목적) -> 접속 유저수(기본 : 15) next -> Dedicated Server Mode ->
  데이터베이스용으로 구성할 옵션을 선택 후 [Next] ->
  이제부터는 자세한 환결 설정이다.

  전역 데이터베이스명 : oracle
  SID : ORCL

  [Change Character Set]버튼을 클릭하여 다음을 선택합니다.

  Character Set(문자집합) :문자집합을 KO16KSC5601로 변경합니다.
  National Character Set(국가별 문자 집합) : 
  국가별 문자 집합도 KO16KSC5601FIXED변경합니다.

  -> NEXT
  -> NEXT
  -> NEXT
  -> NEXT
  -> NEXT
  -> NEXT
  -> “save information to a shell script” 선택 후 [finish]버튼을 클릭합니다
  -> 스크립트 파이명(oracle_install) 입력후 ok 버튼
  -> 저장 경로 확인 후 ok

  initoracle.ora 파일 수정
  위 파일을 수정 하지 않음 에러 납니다.

  수정 :
  mts_dispatchers로 시작하는 설정을 주석으로 처리합니다. 

주석 처리되지 않은 곳은 두 곳입니다. 하단에 위치하고 있습니다.
주석 처리를 하지 않으면 DB를 생성할 때 ora00102 에러가 발생하여 DB가 제대로
생성되지 않습니다.
 
      ###### 수정 내용 시작 ############
      [oracle@edu1 oracle]$ cd /oracle/app/oracle/product/8.1.7/dbs/
      [oracle@edu1 dbs]$ vi initoracle.ora
      mts_dispatchers = "(PROTOCOL=TCP)(SER=MODOSE)"
      # Uncomment the following line when your listener is configured for SSL
      #mts_dispatchers = "(PROTOCOL=TCPS)(SER=MODOSE)"
      mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"
      # Uncomment the following line when your listener is configured for SSL
      # (listener.ora and sqlnet.ora)
      [oracle@edu1 dbs]$ vi initoracle.ora
      # mts_dispatchers = "(PROTOCOL=TCPS)(PRE=oracle.aurora.server.SGiopServer)"
      #mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"
      ##### 수정 내용 여기 까지 #########

  쉘스크립트 실행
  $cd ORACLE_HOME/assistant/dbca
  $chmod 755 oracle_install
  $ ./oracle_install

  db 생성은 두어 시간 걸립니다...

  생성 확인 :
    $ svrmgrl
      Oracle Server Manager Release 3.1.7.0.0 - Production
      Copyright (c) 1997, 1999, Oracle Corporation.  All Rights Reserved.
      Oracle8i Enterprise Edition Release 8.1.7.0.1 - Production
      With the Partitioning option
      JServer Release 8.1.7.0.1 - Production

      SVRMGR> connect internal
      Connected.
      SVRMGR> startup
      ORACLE instance started.
      Total System Global Area                        93393056 bytes
      Fixed Size                                          73888 bytes
      Variable Size                                    76369920 bytes
      Database Buffers                                16777216 bytes
      Redo Buffers                                      172032 bytes
      Database mounted.
      Database opened.

      SVRMGR> shutdown
      SVRMGR> quit

  리스너 및 tnsname 설정 확인
  $cd /oracle/app/oracle/product/8.1.7/network/admin/
  $vi tnsnames.ora
  참고 : 저의 tnsnames.ora 파일 입니다. 참고 하세요...

######## tnsnames.ora 시작

# TNSNAMES.ORA Network Configuration File: /oracle/app/oracle/product/8.1.7/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 자신의 아이피 설정)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 자신의 아이피 설정)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = ORCL)
      (PRESENTATION = http://admin)
    )
  )

######## tnsnames.ora 여기 까지

  $vi  listener.ora
  참고 : 저의 listener.ora 파일입니다. 참고 하세요...

####### listener.ora 시작

# LISTENER.ORA Network Configuration File: /oracle/app/oracle/product/8.1.7/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 자신의 아이피)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = /oracle/app/oracle/product/8.1.7)
      (SID_NAME = ORCL)
    )
  )


####### listener.ora 여기 까지

오라클 데이타 베이스, 리스너 기동
$ svrmgrl
SVRMGRL> connect internal;
SVRMGRL> startup;
SVRMGRL> quit;

$lsnrctl
LSNRCTL> start;
LSNRCTL> quit;

11. 오라클 데이터 베이스, 리스너 종료
$lsnrctl
LSNRCTL> stop;
LSNRCTL> quit;

$svrmgrl
SVRMGRL>connect internal;
SVRMGRL> shutdown;
SVRMGRL> quit;

이렇게 하면 오라클 생성 끝...
리스터 설정을 파일 편집이 아닌 그래픽 화면(설정 창)으로 하실 분은 db 생성후 다음과 같이 하세요..

참고 : 리스너 설정 KDE 터미널 창에서(오라클 계정)

리스너 설정
$ vi $ORACLE_HOME/bin/netasst
한 후 JREDIR=/usr/local/jre로 수정

$ netasst

리스너를 선택후 왼쪽에 "+" 버튼을 누름.
수신위치추가, 데이터베이스 추가 한 후 저장.


########## 오라클 설정 끝 #############

###### 오라클 참고 ############

오라클8i를 다시 설치할 경우에는 관련된 파일들을 삭제한 후 재설치를
해야합니다. oracle 계정으로 들어가서 아래의 명령을 실행합니다.


$ cd $ORACLE_HOME
$ rm -rf *
$ cd $ORACLE_BASE
$ rm -rf *


이후 root 계정으로 들어가서 아래의 명령을 실행합니다.

# cd /etc
# rm oraInst.loc
# mv oratab oratab.old
# cd /usr/local/bin
# rm dbhome oraenv coraenv



###### 끝 ####################


  2) imap-2001a 설치
    압축 풀기 : tar zxvf imap-2001a.tar.Z
    압축 푼 디렉토리를 /usr/local/imap 로 옮기기...
    [root@www src]# cd imap-2001a
    [root@www imap-2001a]# make slx  imap을 컴파일 한다

    컴파일이 완료되면 imapd 디렉토리에 imapd가 ipopd디렉토리에는 ipop2d, ipop3d가 생성된다. ipop2d는 잘 쓰지 않으므로 복사하지 않아도 됩니다.

    [root@www imap-2001a]# cp imapd/imapd /usr/sbin  생성된 실행화일들을 복사.
    [root@www imap-2001a]# cp ipopd/ipop3d /usr/sbin
    [root@www imap-2001a]# cp ipopd/ipop2d /usr/sbin

    이들은 xinetd 슈퍼데몬에 의해서 실행되므로 클라이언트 쪽에서 접속하여 사용할 수 있도록 하려면 환경설정을 수정해 주어야 한다.
    배포판 레드햇6.2이하에서는 inetd 슈퍼데몬에 의해 실행되므로 환경설정이 조금 다릅니다.

      [root@www imap-2001a]#  vi /etc/xinetd.d/imapd    imapd 실행을 위한 환경설정화일을 생성.

service imap
{
      disable = no
      socket_type = stream
      wait  = no
      user = root
      server = /usr/sbin/imapd
      log_on_success += HOST DURATION
      log_on_failure += HOST
}

      [root@www imap-2001a]#  vi /etc/xinetd.d/ipop3d

service pop3
{
      disable = no
      socket_type = stream
      wait  = no
      user = root
      server = /usr/sbin/ipop3d
      log_on_success += HOST DURATION
      log_on_failure += HOST
}


      [root@www imap-2001a]# vi /etc/services
      ......
      pop3            110/tcp        pop-3          # POP version 3
      pop3            110/udp        pop-3                                         
      ......
      imap          143/tcp        imap2          # Interim Mail Access Proto v2
      imap          143/udp        imap2                                         
      ......

      보통 위의 내용이 있습니다. 찾아보고 있으면 주석처리가 되어 있지 않는지만 확인하고 그대로 두세요.


      [root@www imap-2001a]# /etc/rc.d/init.d/xinetd restart    슈퍼데몬을 재가동.

      Stopping xinetd: [  OK  ]
      Starting xinetd: [  OK  ]

      telnet을 이용하여 로컬호스트 110포트(pop3)로 접속하여 테스트 합니다.

      [root@www imap-2001a]# telnet localhost 110

      Trying 127.0.0.1...
      Connected to localhost.localdomain.
      Escape character is '^]'.
      +OK POP3 localhost.localdomain v2001.78 server ready
      user mhbaek
      +OK User name accepted, password please
      pass abc123
      +OK Mailbox open, 0 messages
      quit
      +OK Sayonara
      Connection closed by foreign host.


      IMAP은 기본적으로 143 포트를 사용.

  3) Mysql(4.0.17) 설치
  Mysql 압축 풀기... 후
  $ cd mysql-4.0.17
  $ ./configure --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/var/lib/mysql

옵션과 옵션사이는 공백 하나만 있으면 됩니다.
위 옵션은 설치디렉토리를 지정하고 한글을 지원하도록 하고, --localstatedir 옵션은 DB파일을 저장할 디렉토리를 지정합니다.
혹시 실수로 환경설정을 다시 해야할 경우 make distclean 명령을 하세요.

  $ make
  $ make install

  $ scripts/mysql_install_db     
  꼭 !! 한번만.... 제발..


최근의 MySQL에서 달라진 점은 MySQL이 mysql사용자 권한으로 실행됩니다.
해당유저가 없어서 파일소유자가 root인 경우 에러가 발생합니다.
따라서 다음과 같이 mysql 유저와 그룹을 생성합니다. 배포판에 따라 설치되었던 RPM버전에 의해 이미 생성되어 있을 수도 있습니다.

  $ groupadd mysql
  $ useradd -g mysql mysql
  $ chown -R mysql /var/lib/mysql
  $ chgrp -R mysql /var/lib/mysql
  $ vipw  보안을 위해 새로 생성된 mysql유저가 로그인을 못하도록 수정.

  mysql:x:500:500::/home/mysql:/bin/bash  라인을 찾아서 다음과 같이 수정. 
  mysql:x:500:500::/var/lib/mysql:/sbin/nologin 

  :x를 통해 저장후 종료,
  You are using shadow passwords on this system.
  Would you like to edit /etc/shadow now [y/n] 라고 물으면 n 라고 하면 됩니다.

  저장후 초기 홈디렉토리인 /home/mysql를 삭제
  $ rm -rf /home/mysql  홈디텍토리는 사용자마다 다를 수도 있습니다.
  $ ls -al /var/lib/mysql  MySQL  DB디렉토리 확인

      합계 16
      drwx------    4 mysql    mysql        4096  7월 27 17:05 .
      drwxr-xr-x  15 root    root        4096  7월 27 17:05 ..
      drwx------    2 mysql    mysql        4096  7월 27 17:05 mysql
      drwx------    2 mysql    mysql        4096  7월 27 17:05 test

  위와 같은 출력하면을 볼 수 있습니다. DB가 하나 추가될 때마다 디렉토리가 생깁니다.
  mysql DB는 앞에서 생성시킨 MySQL을 관리할 DB입니다.

  $ cp support-files/my-medium.cnf /etc/my.cnf
  $ vi /usr/local/mysql/share/mysql/mysql.server

편집기로 열어서 safe_mysql이 실행되는 라인(107 line쯤)에 --language=korean 옵션을 추가.
참고로 mysql.server는 mysql이 정상적으로 실행되도록 짜여 있는 스크립트화일입니다.

  $bindir/safe_mysqld --pid-file=$pid_file --datadir=$datadir --language=korean &    한글메세지를 띄우도록 해줍니다.

시스템 부팅시에 자동 실행되도록 해 줍니다.
  $ cp -p /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld

  $ ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S90mysqld
만일 Xwindows로 부팅할 경우를 위해 /etc/rc.d/rc5.d/ 디텍토리에도 링크를 만듭니다
  $ ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc5.d/S90mysqld

이후에 ntsysv명령을 하면 시스템 부팅시에 자동실행될 데몬을 쉽게 지정할 수 있습니다.
  $ ntsysv

mysql데몬의 시작과 종료 및 관련 명령어를 사용하기 편하게 하기위해서 시스템 부팅환경에 PATH를 지정해 둡니다.

  $ vi /root/.bash_profile

  # User specific environment and startup programs

  PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
  BASH_ENV=$HOME/.bashrc
  USERNAME="root"

시스템 부팅환경은 배포판마다 조금씩 다를 수 있으니 사용자의 환경에 맞게 적절히 설정하세요.

  $ /etc/rc.d/init.d/mysqld start
  $ ps -ef | grep mysql    MySQL 프로세스 확인하기
  $ /etc/rc.d/init.d/mysqld stop    MySQL 데몬 종료하기


  4)Apache(2.0.48)]
  $tar xvfz  httpd-2.0.48.tar.gz
  $cd httpd-2.0.48

  * ./configure 을 일일이 설정하기 귀찮아서 스크립트 파일로 만들었습니다...ㅋㅋ

  $vi apache_install
      #!/bin/sh
      ./configure \\
      --prefix=/usr/local/apache \\
      --enable-rule=SHARED_CORE \\
      --enable-module=so \\
      --enable-so \\
      --enable-mods-shared=all \\
      --with-mpm=threadpool \\
      --enable-file-cache \\
      --sysconfdir=/usr/local/apache/conf \\
      --datadir=/usr/local/apache \\
  $chmod 755 apache_install
  $./apache_install
  $make
  $make install


시스템 부팅시 자동실행이 되도록 하기 위하여 설정을 합니다.
  $ cp -p /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
  $ vi /etc/rc.d/init.d/httpd

  $ ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S85httpd
  $ ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd

시스템 종료 및 재부팅을 위하여....
  $ ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc0.d/K15httpd
  $ ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc1.d/K15httpd
  $ ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc6.d/K15httpd

환경설정 파일 편집
아파치 환경설정화일을 열어서 다음과 같은 환경설정을 합니다.
  $ vi /usr/local/apache/conf/httpd.conf

Default 시작페이지 설정을 수정해 줍니다

<IfModule mod_dir.c>
DirectoryIndex index.php index.php3  index.html index.htm
</IfModule>

Section 2의 <IfModule mod_mime.c>단락에서 아래 내용을 추가합니다.

<IfModule mod_mime.c>
................................

# And for PHP 4.x, use:
AddType application/x-httpd-php .php .php3 .inc .ph .htm
AddType application/x-httpd-php-source .phps

.................................
</IfModule>


환경설정 수정후 저장을 합니다.
  $ /usr/local/apache/bin/httpd -t        엔터를 두드리고  다음과 같은 메시지만 있으면 아파치 환경이 잘 설정되었습니다.
Syntax OK 

만일 에러가 발생하였다면 몇 번째 라인에서 잘못되었다는 메시지를 보고 수정하세요.

  $  /usr/local/apache/bin/apachectl start        아파치를 실행시킵니다. 중지는 stop 재시작은 restart 인수를 사용하면 됩니다.

아파치 관련 스크립트를 쉽게 실행하기 위한 환경설정을 합니다.
  $ vi /root/.bash_profile

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/apache/bin
BASH_ENV=$HOME/.bashrc
USERNAME="root"

root 에서만 필요하므로 root의 PATH에 아파치의 디렉토리를 지정합니다. 다시 root로 로그인 하면 설정을 적용하여 사용할 수 있습니다.

10. Test 하기
테스트 화일을 만들어 확인을 해 보세요. 물론 홈페이지가 뜰 수 있는 디렉토리가 되어야 합니다.
메인 홈페이지 경로는 아파치 컴파일옵션(--htdocsdir=/home/httpd/html) 또는 아파치 환경설정파일 325라인 정도에서 DocumentRoot "/home/httpd/html"에 의해 설정된 경로입니다.

  $ vi /home/httpd/html/phpinfo.php

에디터 창에서 다음내용을 입력합니다.

<?
phpinfo();
?>

저장을 하고 브라우저에서 http://localhost/test.php 또는 홈페이지URL/test.php를 입력하여 어떤 내용이 출력되는지 봅시다.



  #### 기타 자세한 사항은... 자신의 설정을 맞게 설정 하면 됩니다..
  참고 사이트..http://httpd.apache.org/docs-2.0



  5)PHP(4.3.4)
  $tar xvfz php-4.3.4.tar.gz
  $cd php-4.3.4

  php 설정을 스크립트로 작성
  $vi php_install

#!/bin/sh
./configure \\
--with-exec-dir=/usr/bin \\
--with-apxs2=/usr/local/apache/bin/apxs \\
--with-apache-install=/usr/local/apache \\
--with-oci8=/oracle/app/oracle/product/8.1.7 \\
--with-oracle=/oracle/app/oracle/product/8.1.7 \\
--with-mysql=/usr/local/mysql \\
--with-config-file-path=/etc \\
--disable-debug \\
--enable-safe-mode \\
--enable-track-vars \\
--enable-sockets \\
--with-png-dir=/usr/lib \\
--with-freetype-dir=/usr/include/freetype2 \\
--with-mod_charset \\
--with-charset=euc_kr \\
--with-xml \\
--with-language=korean \\
--enable-mailparse \\
--enable-calender \\
--enable-sysvsem=yes \\
--enable-sysvshm=yes \\
--enable-ftp \\
--enable-magic-quotes \\
--enable-gd-native-ttf \\
--enable-versioning \\
--enable-url-includes \\
--enable-trans-id \\
--enable-inline-optimization \\
--enable-bcmath \\
--with-pspell \\
--with-jpeg \\
--with-png \\
--with-zlib \\
--with-jpeg-dir=/usr/src \\
--with-gd \\
--with-ttf \\
--with-gettext \\
--enable-sigchild \\
--with-imap=/usr/local/imap-2001a \\
--enable-module=so \\
 
  $chmod 755 php_install
  $./php_install
  $make
  $make install
  $cp /usr/local/src/php-4.3.2/php.ini-dist /etc/php.ini
  $vi /etc/php.ini
  참고 :
        변경전 : register_globals = OFF
     
      변경후 : register_globals = ON

      확인 사항
        default_mimetype = "text/html"
        default_charset = "euc_kr"
      위와 같이 되어 있지 않으면 한글이 깨어 져서 나온다

  아파치 모듈 인식 확인
  $vi /usr/local/apache/conf/httpd.conf

      아래와 같이 있으면 php 인식
      LoadModule php4_module        modules/libphp4.so

  6) Zend Optimizer 설치
  압축 풀고....
  $cd ../ZendOptimizer-1.3.2-Linux_glibc21-i386
  $ ./Install.sh

      간단한 내용의 질문을 읽고 환경에 맞게 입력해줍니다.

      Welcome to the Zend Optimizer 2 Installation Script!
      For more information on this script, see the Installation
      section in the Zend Optimizer User Guide.

      Specify the location where to install Zend Optimizer

      /usr/local/Zend

      Confirm the location of your php.ini file

      /etc

      Are you using the Apache web server?

      Yes

      Specify the location of your Apache root directory

      /usr/local/apache

      Install has detected PHP version 4.X.X
      Does this look correct?
      Yes

      Your php.ini is relocated to the /usr/local/Zend/etc directory
      and symbolic link from the former place /etc/httpd/php.ini is created.
      The installation completed successfully and your Zend Optimizer
      is setup for use. 


      You must RESTART your Apache web server for the modifications to take effect

      설치 완료 메시지 지시대로 아파치를 재시작 해줍니다.
        $ /usr/local/apache/bin/apachectl restart

  7)j2sdk-1_3_1_10 설치
  $chmod 755 j2sdk-1_3_1_10-linux-i586.bin
  $./j2sdk-1_3_1_10-linux-i586.bin
  $mv j2sdk-1_3_1_10 /usr/local/j2sdk-1_3_1_10
  $cd /usr/local/
  $ln -s j2sdk-1_3_1_10 /usr/local/java
  $vi /etc/profile

      #j2sdk config
      PATH="$PATH:/usr/local/java/bin"
      export JAVA_HOME="/usr/local/java"
  $source /etc/profile
  $java -version 자바 설치 확인

  8) Tomcat 설치
  $tar xvfz tomcat-4.1.18.tar.gz -C /usr/local/tomcat
  $vi /etc/profile

      CATALINA_HOME=/usr/local/tomcat
      PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
      export CATALINA_HOME
  $source /etc/profile
  $cd /usr/local/tomcat/conf
  $vi server.xml

      다음을 찾아서 바로 밑에 다음을 입력한다.
      <Server port="8005" shutdown="SHUTDOWN" debug="0">
      입력 사항 ==>
      # <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" />

      내용중 다음을 찾아서 바로 밑에 다음을 입력한다.
      <Host name="localhost" debug="0" appbase="webapps">
      입력 사항 =>
      <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" />
  $../bin/catalina.sh start

수정 :
# Tomcat 을 재시작하면,
# /usr/local/tomcat/conf 디렉토리 아래에
# auto 디렉토리와 jk 디렉토리가 생겼을 것이고, auto 아래에 mod_jk.conf가 생겼을것이다.

$cd /usr/local/tomcat/conf/jk
$vi workers.properties

# 아래 내용은 없는 것이니 아래내용을 복사해서 생성을 하면 된다.

      workers.tomcat_home=/usr/local/tomcat
      workers.java_home=/usr/local/java
      ps=/
      worker.list=ajp12, ajp13
      worker.ajp13.port=8009
      worker.ajp13.host=localhost
      worker.ajp13.type=ajp13

  $/usr/local/tomcat/bin/catalina.sh stop
  $/usr/local/tomcat/bin/catalina.sh start
  $nmap localhost  <== 서비스 포트 확인

  * /usr/local/tomcat/conf/auto/mod_jk.conf  수정을 다음과 같이 수정

  $vi /usr/local/tomcat/conf/auto/mod_jk.conf
      <IfModule !mod_jk.c>
        LoadModule jk_module modules/mod_jk.so
      </IfModule>


      <VirtualHost localhost>
          ServerName localhost

          JkMount /*.jsp ajp13
          JkMount /servlet/* ajp13

          JkMount /admin ajp13
          JkMount /admin/* ajp13

          JkMount /webdav ajp13
          JkMount /webdav/* ajp13

          JkMount /examples ajp13
          JkMount /examples/* ajp13

          JkMount /tomcat-docs ajp13
          JkMount /tomcat-docs/* ajp13

          JkMount /manager ajp13
          JkMount /manager/* ajp13
      </VirtualHost>



9)Tomcat-connectors(4.1.18-src)
* tomcat 과 아파치를 연동 하기 위해서는 mod_jk 를 설치 해야 한다.
$tar xvfz tomcat-connectors-4.1.18-src.tar.gz
$cd jakarta-tomcat-connectors-4.1.18-src/
$cd jk/native
$./buildconf.sh
$./configure --with-apxs=/usr/local/apache/bin/apxs
$make; make install
$ls -al /usr/local/apache/modules
하고 파일중에서 mod_jk.so
파일이 있는지 확인 한다.

수정 : 아파치와 연동을 위해 수정
$vi /usr/local/apache/conf/httpd.conf

      #Load mod_jk
      #
        LoadModule jk_module modules/mod_jk.so
      #
      #Configure mod_jk
      #
        JkWorkersFile /usr/local/tomcat/conf/jk/workers.properties
        JkLogFile /usr/local/tomcat/logs/mod_jk.log
        JkLogLevel info
        Include /usr/local/tomcat/conf/auto/mod_jk.conf

      ### Section 3: Virtual Hosts 바로 위에 넣어주면 된다...


  * 아파치와 tomcat 을 restart 후 확인
  http://localhost
  http://localhost:8080

  * apache와 tomcat에서의 가상호스트설정

  $vi /usr/local/apache/conf/httpd.conf

  기존의 apache 가상 호스트 설정 내용...
  <VirtualHost 자신의 아이피:80>
    ServerAdmin webmaster@abc.co.kr
    DocumentRoot /www/web/abc
    ServerName www.abc.co.kr
    ErrorLog /var/logs/error_log/www.abc.co.kr
    CustomLog /var/logs/www.abc.co.kr combined
</VirtualHost>


* 수정

<VirtualHost 자신의아이피:80>
    ServerAdmin webmaster@abc.co.kr
    DocumentRoot /www/web/abc
    ServerName www.abc.co.kr
    ErrorLog /var/logs/error_log/www.abc.co.kr
    CustomLog /var/logs/www.abc.co.kr combined

  JkMount /*.jsp ajp13
  JkMount /webapps/* ajp13
  JkMount /ROOT/* ajp13

</VirtualHost>

tomcat 부분 추가

  $vi /usr/local/tomcat/conf/server.xml

  <Host name="abc.co.kr" >
        <Context path="" docBase="/www/web/abc" reloadable="true"/>
        <Alias>www.abc.co.kr</Alias>
  </Host>

  * 구문의 종속관계에 주의해서 위의 설정을 넣어준다. </host>로 끝나는 부분 아래 쪽에 넣어주면 된다.
    apache와 tomcat를 재시작 하고 JSP가 80포트로 제대로 연동이 되는지 테스트...


이상으로 모든 작업은 끝났다.
자세한 설정 사항들은 사용자의 환경에 맞게 설치를 하면 됩니다..
이 작업 하는데 무려4일 이나 걸렸습니다.
error 1) kde 설정이 잘 못 되어 뜨질 않는 경우.
  해결 : 리눅스 설치 중 패키지 설치에서 모두 설치를 하든지,
          kde + XFree86 을 모두 업데이트 하든지 해서 해결
error 2) 오라클 db 생성시 에러
위의 오라클 설치 파일을 모두 지우고 다시 설치 (3번 만에 성공)

기타 자잘한 에러는 에러 내용을 자세히 보시면 해결 방법이 있습니다.
그럼 성공 하시길.....

관련자료

등록된 댓글이 없습니다.
Today's proverb
자기 자신을 현명하다고 생각하는 인간은 그야말로 바보이다. (볼테르)