다음 이전 차례

3. 리눅스에서 APM 설치하기

APACHE , PHP , MYSQL을 Linux에서 설치 하는 방법을 알아 보겠습니다.    위 프로그램들은 최근 업그레이드 된 걸로 여러분들은 설치하세요.    최근 버전일수록 설치하는 과정은 조금 다를 수 있습니다.    RPM 패키지로 인스톨 하는 방법도 있지만 설치할 때 사용 옵션의 추가와 위치 등 여러 가지 장점이 있는 TAR 패키지를 이용하여 설치하도록 하겠습니다.

A.P.M(Apache, Php, Mysql)의 설치는 다음 순서로 진행합니다.

3.1 A.P.M을 설치하기 전에 할 일

설치는 APACHE에 모듈을 추가해서 컴파일하겠습니다.    최근의 업그레이드된 프로그램은 아래의 사이트에서 구할 수 있습니다.

1)Apache, PHP, Mysql 패키지 옮기기

먼저 CD에 있는 APACHE, PHP, MYSQL을 임시 디렉토리에 옮겨 놓습니다.    여기서는 /TMP 디렉토리에 옮겨서 설치를 하겠습니다.    여러분의 임의 디렉토리로 옮겨서 사용하면 됩니다.

<TIP>----------------------------------------------------------------------------

CD 마운트하기

CD 마운트에 익숙치 못한 분을 위해 마운트 하는 방법을 간단히 설명하겠습니다.
/etc/fstab 파일의 내용중 cdrom 항목이 대부분 인스톨 시에 있기 때문에 다음과 같이 합니다.

  -.fstab 의 cdrom 항목이 auto 일 경우
        auto로 설정되어 있다면 부팅 전 cd가 있을 경우 /mnt/cdrom 디렉토리에 가면 cd 내용을 볼 수 있습니다.

  -.fstab의 cdrom 항목이 auto가 아닐 경우
        cd를 넣은 다음
        #mount /mnt/cdrom 하면 cd 내용을 볼 수 있습니다.

  -.또 다른 방법
        레드핫 6.0 버전 이라면 Xwindow에서 cdrom을 마운트와 언마운트 할 수 있습니다.
        만약 그 이전 버전이거나 다른 문제가 있을 경우 아래와 같이 합니다.
        #mount -t  iso9660 /dev/cdrom  /mnt/cdrom
--------------------------------------------------------------------------------

2)실행중인 아파치 프로세스 찾기

/tmp 디렉토리로 APACHE , PHP , MYSQL을 다 옮겼다면 먼저 기존의 인스톨 때 생긴 APACHE를 지워야 합니다.    만약 있는 상태에서 또 인스톨 한다면 두개가 겹쳐 에러가 발생할 소지가 생깁니다.    리눅스 인스톨 때 APACHE를 제외했다면 이 부분은 넘어가도 됩니다.

#ps -ef | grep http - 이 명령을 실행하면 현재의 아파치 서버 프로세서를 확인할 수 있습니다.

그림. 3-1 아파치 프로세서 찾기

3)실행 중인 아파치 프로세서 제거

Root 프로세서 541번을 제거합니다.    그러면 자식 프로세서도 다 같이 제거됩니다.    이 프로세서 번호는 다를 수 있습니다.

   #kill 541 - 프로세서 제거 합니다.

그림. 3-2 아파치 프로세서 제거와 확인

실행할 때 마다 프로세서는 다르기 때문에 혹시 프로세서 번호가 자신의 것과 다르다고 이상히 여기지 마세요.    프로세서를 제거 했다면 2)번 과정을 한번 더 해서 완전히 제거 된 것을 확인 합니다.

4)기존에 설치된 아파치 찾기

rpm버전의 인스톨이 대부분이겠지만 rpm이 아닌 경우 아파치 관련 디렉토리를 찾아 제거해야 됩니다.    rpm버전인 경우 일일이 관련 디렉토리를 찾아 제거해도 되지만 rpm 명령으로 간단히 제거 할 수 있습니다.

#rpm -ql apache - rpm으로 설치된 아파치 디렉토리를 찾아 줍니다.

그림. 3-3 rpm으로 설치된 아파치 찾기

rpm 패키지로 설치된 아파치 디렉토리를 찾는 방법은 만약 rpm 삭제 명령으로 아파" 제대로 제거 되지 않을 경우 설치된 디렉토리의 내용을 찾아 제거해야 되기 때문에 알아두기 바랍니다.    rpm 패키지로 설치할 경우 아파치 서버의 모듈 추가와 기타 다른 설정에서 여러 문제점들이 나타날 수 있습니다.    비록 처음 접하고 다소 어렵게 느껴지더라도 바이너리 인스톨을 권장 합니다.

<TIP>----------------------------------------------------------------------------

rpm으로 설치된 프로그램의 정보 보기 #rpm -qi 패키지명 - 해당 패키지의 존재 여부를 확인 합니다.    위 명령은 rpm으로 설치된 PHP나 Mysql을 찾을 경우도 마찬가지 입니다.    만약 의존성 문제로 인해 rpm 패키지 삭제명령( 5)번 참고)이 실행 되지 않을 경우 위 명령으로 관련 디렉토리와 파일을 찾고 삭제 하면 됩니다.    여기서 설명할 TAR 패키지 설치의 경우 아파치 설치 디렉토리는 아래와 같습니다.

    /usr/local/apache 
    /apache/bin
    /apache/htdocs
    /apache/cgi
    /apache/conf
    /apache/icons
    /apache/logs
        …
--------------------------------------------------------------------------------

5)rpm으로 설치된 아파치 제거 하기

#rpm -e apache - rpm 설치 아파치를 제거해 줍니다.

그림. 3-4 rpm으로 설치된 아파치 제거하기

5)번 명령을 한번 더 실행해서 패키지가 제거 되었는지 확인합니다.    만약 아파" 설치되지 않았다면 error 메시지가 나올 것입니다.

3.2 A.P.M 설치하기

1) apache 파일 풀기

tmp 또는 여러분들이 정한 임의 디렉토리로 아파치를 copy 합니다. 다음 아래의 명령을 실행 합니다.

#zcat apache_1.3.12.tar.Z | tar xvf - - 해당 패키지의 압축을 풀어 줍니다.

그림.3-5 아파치 패키지 풀기

<TIP>----------------------------------------------------------------------------

tar.gz 과 tar.Z 패키지 풀기

위 패키지를 푸는 방법은 몇 가지가 있습니다.
    #tar -xvzf 패키지명   -   이 명령으로 두 종류의 패키지를 다 풀 수 있습니다.
    #gunzip 패키지명  -  gz 와 Z로 압축된 패키지를 풉니다.
    #gzip -d 패키지명 -  gz 와 Z로 압축된 패키지를 풉니다.
--------------------------------------------------------------------------------

그림.3-6 아파치 패키지 풀림 확인

위를 보면 apache_1.3.12/ 디렉토리가 생성된걸 볼 수 있습니다.    설치하는 과정에서 mc(midnight command : 옛날 도스 시절 m과 유사한 유닉스 프로그램)를 사용해서 설치하는 분도 있을 것입니다.    디렉토리 사용에 copy나 기타 명령들이 다양하므로 리눅스의 텍스트 모드에 익숙치 않은 사람은 이 프로그램을 사용하기 바랍니다.

2) 아파치 디렉토리의 ./configure 와 ./Configure 실행

apache_1.3.12 디렉토리로 가서 ./configure를 한번 실행해 줍니다.    Apache에 디렉토리 (./configure 와 ./Configure 두 가지가 있으니 주의하기 바랍니다.) 다음 /apache_1.3.12/src 디렉토리로 옮겨 ./Configure를 실행합니다.

그림. 3-7 ./configure 실행 화면

그림. 3-8 /src 디렉토리의 ./Configure 실행 화면

3)Mysql 풀기

./configure , ./Configure를 했다면 이제 apache는 잠시 두고 mysql을 풀도록 하겠습니다.    /tmp나 여러분이 정한 임의 디렉토리로 패키지를 copy 합니다.    그리고 다음 명령을 실행 합니다.

#zcat mysql-3.23.12c-alpha-pc-linux-gnu-i686.tar.gz | tar xvf - - 해당 mysql 패키지를 풀어 줍니다.

그림. 3-9 mysql 패키지 풀기

여기 인스톨 할 mysql은 3.23.12c 버전 입니다.    여러분은 최근 버전을 다운 받아 설치하세요.    이렇게 바이너리 배포본을 인스톨 하는 이유는 다른 것보다 어느 정도 성능 향상이 있기 때문입니다.    바이너리를 컴파일 할 경우는 정적으로 링크가 이루어지게 되기 때문입니다.    직접 컴파일할 경우라도 정적으로 링크시킬 수 있지만 구지 그럴 필요는 없고 바이너리 배포본을 사용하기 바랍니다.

그림. 3-10 mysql 패키지 풀림 화면

4) 풀린 Mysql 패키지 옮기기

압축을 다 풀었으면 mc나 cp 명령으로 mysql 디렉토리를 /usr/local/mysql로 옮깁니다.    물론 mysql 디렉토리는 새로 만드는 것입니다.    필자의 경우는 mc로 간단하게 옮겼습니다.

그림. 3-11 mc로 Mysql 옮긴 화면

위 그림을 보면 /usr/local/mysql 디렉토리로 옮겨 놓은 것을 볼 수 있습니다.

5) ./scripts/mysql_install_db 실행

이제 /usr/local/mysql 디렉토리 안에서 ./scripts/mysql_install_db를 실행해 줍니다.

(*주의 : /usr/local/mysql/scripts 디렉토리에서 실행하는 것이 아님을 명심하기 바랍니다.)

그림. 3-12 ./scripts/mysql_install_db 실행

그림. 3-13 ./scripts/mysql_install_db 실행 결과 화면

6)Mysql Test 및 설정

./scripts/mysql_install_db 명령을 실행한 후 제대로 설치되었다면 이제 mysql을 간단히 테스트 해봅니다.    먼저, mysql의 사용자 패스워드를 바꾸어 줍니다.    디폴트는 패스워드 없이 root 권한이기 때문에 차후 php 스크립트를 만들더라도 이 부분은 꼭 집고 넘어가야 됩니다.    /usr/local/mysql/bin 디렉토리에서 다음 명령을 실행해서 패스워드를 바꿉니다.

<TIP>----------------------------------------------------------------------------

Mysql 리눅스와 함께 실행 하기

만약 여러분들이 리눅스 서버의 실행과 동시에 Mysql을 가동 하기를 원한다면 아래와 같이 etc/rc.d/rc.local파일에 추가 해야 합니다.
 
    rc.local 추가 부분
      if [ -f /usr/local/mysql/bin/safe_mysqld ]; then
        /usr/local/mysql/bin/safe_mysqld &
      fi
--------------------------------------------------------------------------------
① 패스워드 바꾸기
  
    #./mysqladmin -u root password  ‘ 새로운 password ’
        
    패스워드를 바꾸기 전 확인해보시면 알겠지만 #./mysql -u root 하면 그냥 접속 됩니다. 우선 암호를 만드는 것이 중요합니다.


② Mysql 가동과 정지 하기
    
    mysql에 관한 보다 상세한 정보는 뒤 mysql 부분을 참고 하세요.
         
    #./safe_mysqld &  -  usr/local/mysql/bin 디렉토리 안에 safe_mysqld 파일이 존재하고 mysql을 백그라운드로 실행 합니다.
    #./mysqladmin shutdown  -  Mysql 서버를 정지 합니다.
    #./mysql.server start  -  /usr/local/mysql/sbin 디렉의 mysql.server 스크립트를 이용해 mysql을 실행 합니다.
    #./mysql.server stop  -  Mysql 서버를 정지 합니다.


③ ./mysql.server의 접속 확인

    해당 스크립트를 사용하기 편한 곳으로 copy한 다음 모드를 chmod 700으로 바꾸어 사용 할 수도 있습니다.
    ( 필자의 경우 /sbin 디렉토리에 옮겨서 실행 했습니다.)

그림. 3-14 mysql.server 모드 변경 화면

그림.3-15 mysql.server 실행 화면

그럼 이제 mysql 서버는 동작하는 상태이므로 직접 접속을 해보겠습니다.    먼저 앞에서 말했던 패스워드 설정 부분을 다시 확인 하겠습니다.

그림. 3-16 mysql passwd 변경 화면

위와 같이 바꾸고 난후 접속 합니다.(여러분들은 자신의 패스워드를 입력 합니다.)

그림. 3-17 mysql 서버 접속 화면

위에서 -p 옵션을 줌으로써 패스워드 입력란이 뜹니다.    그러면 직접 입력하고 엔터하면 접속이 이루어 집니다.    다음 mysql> 바뀌게 됩니다.

④ Mysql 접속 후 기본적인 확인
          
    여기에서 mysql의 database와 table를 확인해 보겠습니다.
    Mysql에 직접 접속해서 서버와 대화하는 방법은 뒷 부분의 php에서 지원하는 mysql 함수와 연관됩니다. 
    따라서 mysql 대화법을 안다면 php에서의 mysql 함수 또한 간단히 해결 됩니다.
    Mysql은 php와의 조화가 apache와 만날 때 더 강력해 짐은 아무도 부정하지 않을 것입니다.
    비록 php와 apache만을 이용해서 데이터베이스 없이도 사용 할 수 있지만 mysql 데이터베이스가 접목 된다면
    더 강력해지는 것입니다.   요즘의 경우 대부분의 서버가 데이터베이스를 이용하므로 아주 간단한 bbs에서
    대형 bbs에 이르기 까지 유용하게 사용됩니다.
    게다가 mysql은 공짜 데이터베이스이기 때문에 더욱 인기가 치솟고 있습니다.
            
    mysql>show databases ;   -   현재 생성 되어 있는 데이터베이스를 보여 줍니다.
                   (여기서 그냥 show tables ; 명령을 실행할 경우 에러 메시지가 출력 됩니다.
                    특정 데이터베이스 사용을 명시하지 않았기 때문입니다.)
                 
    mysql>use mysql ;  -  mysql 데이터베이스 사용을 명시 합니다.
                    특정 데이터베이스 사용을 위해 use 명령을 사용 합니다.
                  
    mysql>show tables ;  -  디폴트로 만들어진 테이블을 확인할 수 있습니다.
                    여기에는 사용자와 함수들 호스트명 등 mysql 전반에 관한 사항이 존재합니다

그림. 3-18 기본 데이터베이스와 테이블 확인

    mysql>/s  -  세부적인 mysql 정보를 확인 합니다.
    현재 설치된 mysql의 버전과 사용자 프로토콜 등의 정보를 확인 할 수 있습니다.

그림. 3-19 mysql 세부 정보 화면

7) PHP 풀기

자 그럼 이제 php 모듈을 apache에 접목시키도록 하겠습니다.    여기 사용되어질 php는 PHP 4 zend beta 3 버전 입니다.    현재의 경우 PHP 4 정식 버전이 나왔고 그리고 zend 옵티마이져 등이 나온 상태 입니다.    여러분들은 이것을 설치하기 바랍니다.    아직 불안정한 상태라면 조금 더 지켜봐도 되지만 패치와 옵티마이져 등이 있으므로 더 강력해진 것은 사실 입니다.    먼저 php을 copy 한 /tmp(임의 디렉토리) 디렉토리에서 압축을 풉니다.    ( PHP 4.0 과 설치 방법은 같으므로 진행 순서를 지켜 인스톨 하면 됩니다.)

#zcat   |tar xvf - - 해당 " " 패키지의 압축을 푸는 명령어

그림. 3-20 PHP 패키지 풀기 명령어

8) PHP ./configure 실행

"7)" 과 같이 압축을 풀고 난 후 /tmp/php-4.0b3 디렉토리에서 mysql과 apache 항목을enable 시키기 위해서 ./configure를 아래염걋 실행해야 됩니다.

#./configure --with-apache=/tmp/apache_1.3.12 --with-mysql=/usr/local/mysql

이 명령은 나머지 다른 항목을 추가 할 경우와 같이 이어서 나열하면 됩니다.

이 같은 방법은 ./setup 설정 파일이 php3 버전에서는 안정 버전이므로 존재했지만, 개발 버전이나 아직 진행중인 버전일 경우 직접 configure 해 주어야 합니다.    ./setup 설정의 경우는 그냥 실행 하면 대화식으로 설정을 하는 것입니다.    php 인스톨 시 추가할 항목들을 yes , no로 답하는 것입니다.    여기서의 설정은 configure로 직접 설정하도록 하겠습니다.    만약 위 configure가 실패했을경우는 (apache와 mysql 지원 설정) php-4.0b 디렉토리 안에 존재하는 config.chche 파일을 제거하고 다시 -with 옵션을 사용해서 configure 해야 합니다.    일단 configure 을 실행 했다면(apache와 mysql 지원설정) 다음의 항목을 확인하는 방법으로 실패 여부를 체크 할 수 있습니다.

<TIP>----------------------------------------------------------------------------

GD 설치 하기

Gd는 php에서 그래픽 함수를 사용하기 위해 설치 하는 것입니다. 이것을 사용하기 위해서는 php의 ./configure
실행 때 추가 해야합니다.("8)" 항목)

① tmp 디렉토리에 gd 패키지를 copy 하고 압축을 풉니다.

그림. gd-1 gd 패키지 풀림 화면

  
② gd make 하기
    압축을 푼 임의의 gd 디렉토리에서 컴파일 합니다.

그림. gd-2 gd 컴파일 화면

  
③ gd 옮기기
    컴파일한 gd를 임의의 디렉토리로 옮깁니다. (필자는 /usr/lib로 옮겼습니다.)

그림. gd-3 gd를 임의 디렉토리로 옮기기

  
④ php의 ./configure 실행
    php를 ./configure 할 때  "--with-gd=/usr/lib" 항목을 추가합니다.
    설치 성공 여부는 체크 항목을 찾아 확인합니다.

그림. gd-4 php의 ./configure 실행 시 체크 화면
--------------------------------------------------------------------------------

그림. 3- 21 php의 ./configure 실행 시 apache인식 화면

위 그림에서 아파치 지원 여부를 확인 할 수 있습니다.

그림. 3-22 php의 ./configure 실행 시 mysql 인식 화면

위 그림에서 mysql 지원 여부를 확인 할 수 있습니다.    다른 항목을 추가 하려면 -with 옵션으로 다른 부분을 더 추가 할 수 있습니다.    여러분들 중 혹 나중에라도 다시 PHP에 또 다른 지원을 추가할 경우가 생길 경우 해당 패키지를 인스톨 하고 php의 ./configure 실행시에 --with 옵션을 이용해서 기존의 항목과 새로 추가할 항목을 다시 나열해서 해주면 되고 설치 8)번 항목 이후를 반복 하면 됩니다.

그림. 3-23 php의 ./configure 실행을 한 후 마지막 화면

9) PHP 컴파일

php의 ./configure를 모두 마쳤습니다. 그럼 본격적으로 PHP를 컴파일 하는 것을 보겠습니다.    임시 디렉토리의 PHP를 /usr/local/php 디렉토리로 복사해서 configure했다면 거기서 make를 실행하면 됩니다.    (혹, 필자처럼 /tmp/php-4.0b3 디렉토리에서 make를 해도 무방합니다. )

#make 실행

그림. 3-24 해당 php 디렉토리에서 make 실행

그림. 3-25 make 실행 후 화면

10) PHP 인스톨

 
먼저 PHP를 인스톨 하기 전에 apache 디렉토리의 ./configure를 실행해 주고 install을 해야 합니다.
즉, 이것은 php를 인스톨 할 때 apache 디렉토리에서 필요한 파일을 참조 시키기 위함입니다.
/php-4.0b3 디렉토리에서 아래와 같이 명령합니다.

    #make install   -  PHP를 인스톨 합니다.
   
그러면 아파치의 src/modules 디렉토리로 모듈이 만들어져 이동합니다.

11) 모듈 확인과 아파치 Configuration 파일을 수정

    #ls -l   -   아파치 디렉토리밑에 /src/modules/php4  디렉토리의 내용을 살펴 봅니다.

그림. 3-26 아파치 디렉토리 /src/modules/php4의 내용

위 그림에서 아파치 디렉토리에 php4 디렉토리가 생성되고 libphp4.module 파일과 나머지 파일들이 생성되는 것을 볼 수 있습니다.    (PHP 4.0 의 경우도 마찬가지 입니다.)    다음 tmp/apache_1.3.12/src 디렉토리로 이동합니다.    그리고 Configuration 파일의 내용에 AddModule modules/php4/libphp4.a를 추가해 줍니다.

(*주의 : configure 파일이 아닌 Configuration 파일을 수정해야 됩니다. 또한 libphp4.a는 존재하지 않는 파일이므로 이대로 적어 주세요.)

그림. 3-27 Configuration파일의 수정 화면

12) 아파치 Configure 실행과 make 하기

Configuration 파일의 수정을 끝내고 수정 항목의 인식을 위해 /tmp/apache_1.3.12/src/ 디렉토리에서 ./Configure를 다시 실행합니다.

다음 /tmp/apache_1.3.12/src 디렉토리에서 make를 실행합니다.

그림. 3-28 ./Configure 실행과 make 실행

위에서 중간 부분에 .. o php4_module uses ConfigStart/End 를 확인할 수 있습니다.

위 사항이 없을 경우 다시 뒤의 항목들을 확인하기 바랍니다. ( Configuration 추가 부분의 문제일 가능성이 큽니다.)

대부분의 경우는 맞게 진행 되지만 간혹 실수를 할 수도 있기 때문에 주의하기 바립니다.    Apache , php , mysql의 설치는 그다지 어려운 부분이 아니므로 모든 것이 디폴트인 상황에서 대부분 성공적으로 인스톨 될 것입니다.

13) 아파치 install

make 과정을 마쳤다면 /tmp/apache_1.3.12 디렉토리로 이동 합니다.

그리고 make install을 실행합니다.

#make install

그림. 3-29 make 실행 화면과 make install 명령 화면

그림. 3-30 PHP make install 결과 화면

"13)" 을 마지막으로 모든 설치는 끝났지만 아직 php를 사용하기 위해서는 몇 가지 설정할 부분이 더 남아 있습니다.

Php make install의 마지막 문구를 보면 /usr/local/apache/conf/httpd.conf의 서버 설정을 변경해서 PHP 스크립트를 사용해야 함을 알 수 있습니다.

14)아파치의 httpd.conf 파일 수정

먼저 /usr/local/apache/conf 디렉토리로 이동 합니다.

그리고 편집기를 이용해서 httpd.conf 파일을 수정합니다.    수정 하는 부분은 아파치에서 php 확장자를 인식시키기 위함입니다.    php 말고도 여러 가지 확장자를 설정할 수도 있습니다.

AddType application/x-httpd-php .php .html .htm .inc

이렇게 다른 확장자를 추가합니다. 즉, php 언어를 html이나 기타 다른 확장자 파일로도 사용 가능하게 해줍니다.

그림. 3-31 아파치의 httpd.conf 파일 수정

이렇게 모든 설정을 마쳤습니다. 이제 확인할 부분은 apache의 정상적인 작동 유무와 모듈들의 정상적인 동작 유무입니다.

Apache_1.3.12 같은 경우 httpd.conf의 설정이 전 버전 보다 조금 다를 수도 있지만 기본적인 설정은 같습니다.

(http.conf 설정에서 php4설정 부분이 추가되어 있습니다.)

15) 아파치 작동 유무 확인

아파치를 실행하는 방법과 멈추는 방법 등의 여러 가지 옵션을 확인해 보겠습니다.

apachectl 사용하기

apachectl 는 /usr/local/apache/bin 디렉토리에 서버와 관련된 유틸리티들이 존재합니다.

./apachectl (start|stop|restart|fullstatus|status|gracefull|configtest|help)

      -. start - httpd 데몬을 띄웁니다.
      -. stop - httpd 데몬을 종료 합니다.
      -. restart - httpd 데몬이 존재 하면 다시 시작하고 없을 경우 새로 시작 합니다.
      -. fullstatus - mod_status가 사용 가능할 경우 서버의 상태를 자세히 보여 줍니다.
      -. status - mod_status가 사용 가능할 경우 서버의 상태를 간략히 보여 줍니다.
      -. configtest - httpd.conf 파일을 변경 했을 경우 이 내용을 테스트 합니다.
      -. help - 도움말을 보여 줍니다.

#./apachectl start - httpd 데몬을 실행 합니다.

#./apachectl stop - httpd 데몬을 종료 합니다.

<TIP>----------------------------------------------------------------------------

pache를 리눅스와 같이 실행하기

Mysql과 같이 시작 설정에 추가해 주면 됩니다.
"/etc/rc.d/rc.local" 파일에 아래 항목을 추가 합니다.

    If [ -f /usr/local/apache/bin/httpd ]; then 
           /usr/local/apache/bin/apachectl start
        fi
----------------------------------------------------------------------------------------------------

이제 httpd 데몬을 띄우고 정상적으로 동작하는지 확인합니다.    확인하는 방법은 브라우저를 통해서 해도 되고, 텍스트 모드에서 #ps -aux | grep apache를 입력해서 확인하는 방법이 있습니다.    먼저, 브라우저 같은 경우, 확인 하는 곳이 서버면 http://localhost를 입력 하면 되고 DNS 설정이 되어 있고 등록된 상태라면 해당 DNS를 입력 하면 됩니다.    만약 확인하려는 곳이 서버가 아니고 클라이언트 PC일 경우 아파치 서버의 IP나 해당 DNS를 입력합니다.

그림. 3-32 클라이언트 PC에서 초기 아파치 접속 화면

위의 경우 클라이언트에서 아파치 서버로 접속한 예입니다.    아파치_1.3.12 버전의 경우 처음 브라우저로 접속하면 위와 같이 나오니 당황하지 마세요.    위의 화면은 /usr/local/apache/htdocs 디렉토리에 존재하는 index.html을 참조하는 것인데 httpd.conf 파일의 설정 중에 서버의 처음 보여줄 파일설정을 새롭게 해 주면 그 화면만 출력되어 집니다.    아파치_1.3.9의 경우 index.html이 하나만 존재 하므로 그 파일만 출력 되는 것입니다.(1.3.12의 경우 각 언어별 index 파일이 존재 합니다.)

그림. 3-33 index.html.en 선택 화면

위 그림은 여러 가지 index.html중에 English를 선택한 화면입니다.

16) PHP4 동작 확인과 각 모듈 인식 확인

이제 php4 와 mysql의 모듈들이 제대로 동작 하는지 확인해 보겠습니다.    먼저, mysql 서버를 실행했는지 확인하고, test.php를 만들어 웹 상으로 모듈들의 인식을 확인 하겠습니다.    ( phpinfo( ) 함수를 사용합니다. 이 함수는 PHP의 정보를 출력합니다.)

test.php 파일의 내용

    <?php
        phpinfo();
    ?>

위의 파일을 편집기를 이용해 만들어 줍니다.    그리고 /usr/local/apache/htdocs 디렉토리에 copy 합니다.

(필자의 경우는 test 디렉토리를 따로 만들었습니다.)

그리고 브라우저를 실행해 봅니다.   위에서 말했듯이 브라우저를 실행 했을 경우 서버는 htdoc 디렉토리를 참조하기 때문에 리눅스 머신에서는 http://localhost/test.php를 입력하면 됩니다.

(필자의 경우 http://192.168.0.1/test/test.php)

그림. 3-34 phpinfo() 함수 실행 화면

위 화면이 보이면 제대로 동작하는 것입니다.    그러나 다시 스크롤바를 내려 php 설정과 mysql 설정들을 확인하기 바랍니다.    Php 설정의 경우 php.ini 파일을 이용하는데 위 화면에서 path:/usr/local/lib에 존재함을 알 수 있습니다.

<TIP>----------------------------------------------------------------------------

HP.INI 가 /usr/local/lib에 없을 경우

    php를 처음 풀고 컴파일 했던 디렉토리로 이동해 php.ini-dist 파일을 /usr/local/lib 디렉토리로 copy 하면 됩니다.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;물론, php.ini로 이름을 바꾸어 사용해야 합니다.
----------------------------------------------------------------------------------------------------

이렇게 모든 설정과 확인을 마쳤습니다. ( "1)"   "16)" 번 항목은 몇번 되풀이 하면서 익히세요.)

PHP.INI 설정

PHP를 웹 서버에서 여러 방법으로 실행할 수 있게 설정하는 부분 입니다.

(php4 의 경우 php.ini 이고, php3의 경우 php3.ini 입니다.)

그림. 3-35 PHP.INI 파일

설정들을 수정 할 시에는 on, off 나 해당 값을 추가 또는 삭제하고 웹상에서 test 파일을 다시 확인하면 주어진 설정들이 바뀌었는지 확인할 수 있습니다. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;다른 방법도 있겠지만 이 방법이 제일 확실합니다.

그림. 3-36 클라이언트에서 본 PHP.INI의 각 옵션 부분

<TIP>----------------------------------------------------------------------------

리눅스에서 Zend 설치하기

Zend optimizer의 설치는 보기 보다 간단 합니다. 리눅스의 모든 패키지 파일은 README라는 파일이 존재 하면 이와 연관된 파일을 자세히 읽었던 사람 이라면 금방 설치 방법을 알아냈을 것입니다.

Zend optimizer는 PHP 4 beta 4 이후 버전만 사용 가능하며 지금 여러분들은 이미 PHP 4.0을 설치 했을 것입니다.

지원하는 시스템

PHP 4 beta 4 버전의 경우

설치와 인스톨

ZendOptimizer-Beta1-Linux-glibc2.1.tar.gz 파일을 풀고 /usr/local/Zend/lib 디렉토리를 생성 한다. 그리고 ZendOptimizer.so 파일을 이 디렉토리로 copy 한다.

다음 PHP.INI 파일에 아래의 내용을 추가 한다.

zend_optimizer.optimization_level=1

zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"

위 level은 7번 까지 존재 하며 패키지 README를 읽어 보기 바랍니다.

동작 확인은 phpinfo() 함수를 사용해 PHP.INI 설정을 확인 해서 아래의 내용이 나오면 동작 하는 것입니다.

     This program makes use of the Zend scripting language engine:
     Zend Engine v0.90, Copyright (c) 1998, 1999 Andi Gutmans, Zeev Suraski
     with Optimizer v0.95, Copyright (c) 1998-2000, by Zend Technologies Ltd.
----------------------------------------------------------------------------------------------------

PHP.INI 내용과 각 옵션의 기능(PHP4 기준)

설정 파일은 총 9개의 항목으로 나누어져 있으며 여기서는 함께 설명하겠습니다.

1. engine - PHP가 아파치 모듈로 설치 되었을 경우 특정 디렉토리에서만 스크립트가 동작하게 합니다. 
   이것은 아파치 httpd.conf 파일에 아래 항목을 추가합니다.

      <Directory "해당 디렉토리">
      php_admin_flag engine on(PHP3의 경우 php3_engine on)
      </ Directory> 

2. short_open_tag - <? ~ ?> php tag 사용여부를 정합니다. XML과 같이 사용할 경우 이 부분은 on으로
                    해야 합니다.
                  
3. asp_tags - <% ~ %> ASP 태그의 사용 여부를 설정합니다.
                   
4. y2k_compliance - y2k 문제에 해당하는 브라우저를 위한 설정입니다.
                    
5. safe_mode - php를 안전 모드로 동작 하게끔 하는 설정입니다.

   safe_mode_exec_dir 지시자의 해당 디렉토리에 존재하는 실행 파일이 아닌 경우  실행 되지 않습니다.
   (root에 있는 파일만 참조하게 합니다.)
                          
6. safe_mode_exec_dir - 실행 프로그램이 있는 디렉토리 명을 적어 줍니다. 

      "5번"참고
                           
7. max_execution_time  - 스크립트 실행 시간을 초단위로 설정합니다.
                            
8. memory_limit  - 스크립트 실행 때 메모리 사용을 설정합니다.
                                 
9. error_reporting - 에러 출력을 설정합니다.

   에러의 종류

      1 - 일반적인 에러 출력(Normal function errors)
      2 - 일반적인 에러 출력(Normal warnings)
      4 - 문법적인 에러 출력(Parser errors) 
      8 - 버그의 가능성이 있으며 무시할 수 있는 에러 출력(Notices)

10. display_errors - 에러 상황을 html 양식으로 보여줍니다.
                                    
11. log_errors - 여러 가지 에러를 로고 파일에 저장합니다.

12. track_errors - $php_errormsg에 마지막의 에러나 경고 메시지를 저장합니다.

13. warn_plus_overloading - 스크립트에서 문자열 결합사용 때 " . " 연산자를 사용하지만 만약
                            " + "를 사용했을 경우 경고 메시지 출력 여부를 설정합니다.

14. track_vars - GET, POST, COOKIE 등으로 전달된 변수 값을 각각의  $HTTP_GET_VARS , $HTTP_POST_VARS ,
                 $HTTP_COOKIE_VARS의 배열 변수로  자동 저장 여부를 설정합니다.
                                            
15. magic_quotes_gpc - GET , POST , COOKIE 등으로 전달된 데이터에 ‘ " / 등의 문자가 존재할 경우
                       자동으로 (\)역슬래쉬를 붙일지 여부를 설정합니다. 이것은 각 문자를 스크립트와 구별
                       해서 인식시키기 위해 필요한 부분입니다.
                                                    
16. magic_quotes_runtime - 외부 스크립트나 여타 소스로부터 돌아오는 데이터에 대해 (\)역슬래쉬를 붙일지
                           여부를 설정합니다.
                                                         
17. auto_prepend_file - INCLUDE와 비슷한 부분이고, 스크립트의 처음 부분에 포함될 파일명을 적어 줍니다.
                                                          
18. auto_append_file - "17번"과 같으며 마지막 부분에 포함될 파일명을 적어 줍니다.
                                                           
19. include_path - INCLUDE, REQUIRE 문의 파일 경로를 설정합니다.
                                                            
20. doc_root - 서버의 루트 디렉토리를 설정합니다. 안전 모드로 동작할 경우 해당 디렉토리를 벗어나 다른
               쪽으로 접근을 할 수 없습니다.
                                                                 
21. user_dir - 서버의 계정을 가진 일반 유저에 PHP 스크립트의 사용을 허가할 수 있습니다.
                                                                  
22. upload_tmp_dir - 파일이 업로드 될 디렉토리를 설정합니다. 기본적으로 /tmp 디렉토리로 업로드 됩니다.
                                                                   
23. upload_max_filesize - 업로드 할 수 있는 최대 파일 크기를 설정합니다.
                                                                    
24. SMTP - mail( ) 함수의 사용을 위해 현 서버의 DNS , IP를 적어줍니다. 
                                                                          
25. sendmail_from - 보내는 메일 주소를 설정할 수 있습니다.
                                                                           
26. sendmail_path - sendmail 서버가 있는 위치를 적어 줍니다.

27. debugger.host - 디버거로 사용하는 호스트 명을 적어 줍니다.
                                                                                 
28. debugger.port - 디버거로 사용하는 포트 번호를 적어 줍니다.
                                                                                  
29. debugger.enabled - 디버거의 사용 여부를 설정 합니다.
                                                                                   
30. session.save_handler - 세션과 해당 데이터를 저장하는 방식을 설정하는 부분입니다. 기본적으로 파일 방식
                           입니다. 세션 항목은 이 책에 사용되는 회원제 부분에서 사용됩니다.

31. session.save_path - 세션 전달 인수를 정의 하는 부분이며 디폴트인 파일 방식일 경우 해당 파일의 경로를
                        적어 줍니다.

32. session.name - 쿠키 이름으로 사용되어질 세션 이름을 설정합니다. 디폴트는 PHPSESSID입니다.

33. session.auto_start - 세션 요청 시에 자동 모듈 생성 여부를 설정합니다.

        0 - off , 1 - on

34. session.lifetime - 해당 세션이 유지 되는 시간을 설정 합니다.
                디폴트의 경우 0이며 사용자의 브라우저가 종료 될 때까지 유지됩니다.
                                                                                           
35. session.gc_probability - 해당 세션 값이 제거 될 경우 낭비 되는 시스템 메모리 자원을 반납하는 시점을
                설정합니다.

36. session.gc_maxlifetime - 해당 세션의 시스템 메모리 자원 반납을 가질 수 있는  시간을 설정합니다.

다음 장에서는 리눅스에서 A.P.M의 설치 과정을 보았습니다.    다음 장에서는 윈도우 환경에서 Apache, Php, Mysql의 설치를 설명하겠습니다.


다음 이전 차례