달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

APM (FCGI) + 소스 DSO 모드 설치 - 연동  ( apache2 - fast cgi -  mysql5 php5  - 2006 06)

네이버 리눅스 마스터

http://suite.tistory.com/ fs


0. 준비
 - 소스 다운로드
  apache : http://www.apache.org
  php    : http://www.php.net
  mysql  : http://www.mysql.com

  사이트에서 검색? 하여 소스를 다운 받는다.
 
  mysql-5.0.22 , httpd-2.0.54.tar.gz , php-5.1.4
 
 - 설치 계정: 설치 계정 생성
     ex) $>useradd fs
        - 설치 디렉토리 : /home/fs/apmz
     ex) fs$> mkdir apmz

 * 데비안 리눅스 3.0 에서 설치 한 문서
 * 이미 설치된 apache ,mysql,php 를 지울 필요 없음
 * 아래 글은 조금은 apm를 설치나 문서를 봤으면 금방 설치
   안했으면 좀 삽질 필요함 -.-;
       
1. mysql 설치

    가. 해당 소스를 압축을 푼 디렉토리에서 configure 수행
      
        ./configure --prefix=/home/fs/apmz/mysql5 --localstatedir=/home/fs/apmz/mysql5/datadb --with-mysqld-user=fs --with-charset=euckr --with-tcp-port=4129 --with-unix-socket-path=/home/fs/apmz/mysql5/fs.sock --mandir=/home/fs/apmz/mysql5/man --sysconfdir=/home/fs/apmz/mysql5/datadb --enable-local-infile


       옵션 설명: 
         --prefix= 설치 디렉토리
         --localstatedir= 디비 데이터 디렉토리
         --with-mysqld-user=  디비 사용 계정
         --with-charset= 문자셋 (4.0 이하버전의 경우 euc_kr)
         --with-tcp-port= 사용 포트 (루트로 기본 설치시 3306인데 이미 3306을 쓰지 못하면 임의로 정해준다)
         --with-unix-socket-path= 소켓 파일 (루트로 기본 설치시 /tmp 에 생성되는데  임의로 정해준다)
         --sysconfdir= my.cnf 디렉토리
         --mandir= 매뉴얼 디렉토리

       --enable-local-infile LOAD DATA INFILE 하기위해

         --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static 정적으로 컴파일 할 경우 추가(필수 아님)


      
       나.  컴파일
           ./make

       다. 설치
           ./make install
           ls /home/fs/apmz/mysql5 실행하여 설치되었는지 확인해본다.

      라. MySQL 데이터베이스 생성
         bin 디렉토리로 이동하여 mysql_install_db 명령을 실행합니다(꼭 한번만 실행할 것)
          mysql_install_db 명령은 /home/fs/apmz/datadb 디렉토리를 생성하고, 그 디렉토리 안에 mysql DB 디렉토리와 파일들을 생성해 줌.

        ex) /home/fs/apmz/mysql5/bin/mysql_install_db

           아래와 같은 메시지가 나오면 정상으로 봄
 ================================================================================
 fs@searchasp:~/apmz/mysql5/bin$ /home/fs/apmz/mysql5/bin/mysql_install_db
 ~~~ ~~ ~~ ~~~
 ~~ ~~
 The latest information about MySQL is available on the web at
 http://www.mysql.com
 Support MySQL by buying support/licenses at http://shop.mysql.com
 =================================================================================
      
       마. LD_LIBRARY_PATH 설정
          mysql데몬이 mysql 동적 라이브러리 모듈(so)을 찾을수 있도록 사용자 쉘에 모듈 디렉토리 위치를 설정해둔다.
             ex) bash 쉘경우
             vi 홈디렉토리/.bash_profile
            export LD_LIBRARY_PATH=/home/fs/apmz/mysql5/lib/mysql:
          source  .bash_profile 를 실행하여 바로 현 쉘에 적용
 
       바. 데몬 실행파일 / 설정 파일을 복사
     
       -  /home/fs/apmz/mysql5/share/mysql/mysql.server ==> /home/fs/apmz/mysql5/bin/server 복사
 
       - /home/fs/apmz/mysql5/share/mysql/my-medium.cnf ==> /home/fs/apmz/mysql5/datadb/my.cnf  복사.
        
          참고로 SQL 쿼리 로그를 작성하지않도록 my.cnf에 # log-bin , # server-id 를 주석 처리한다 

       사. mysql 데몬 실행 / 접속
 
              /home/fs/apmz/mysql5/bin/server start 데몬 실행  (stop 정지)
              (server 스크립트 내부적으로 /bin/mysqld_safe &  실행함 )
 
               /home/fs/apmz/mysql5/bin/mysql 실행

                mysql> 콘솔화면이 나오면 설치 완료
 
 

2. apache 설치


         가. 해당 소스를 압축을 푼 디렉토리에서 configure 수행
      
        ./configure --prefix=/home/fs/apmz/apache2 --enable-mods-shared=most --enable-modules=so --with-mpm=worker
 
       옵션 설명: 
               --prefix= 설치 디렉토리 디렉토리
                --enable-mods-shared=most --enable-modules=so  DSO 방식으로 PHP 모듈을 끼워 넣을 수 있도록 아파치를 컴파일하기 위해 옵션을 반드시 사용합니다.
               --with-mpm=worker 옵션은 아파치 설정 파일에서 살펴보겠지만 다중 프로세서 모듈(MPM) 중 worker 모듈을 지원할 수 있도록 하는 옵션입니다.
              이 옵션을 추가하지 않으면 아파치 2.x 버전에서는 기본적으로 perfork 모듈을 지원합니다. 
        
       나.  컴파일
          ./make
     
       다. 설치
            ./make install
            ls /home/fs/apmz/apache2 실행하여 설치되었는지 확인해본다.

       라. LD_LIBRARY_PATH 설정
          아파치가 SO 모듈을 찾을수 있도록 사용자 쉘에 모듈 디렉토리 위치를 설정해둔다.
           mysql 디렉토리 뒤에 apache2/lib , apache2/modules 두개 추가 해준다
            ex) bash 쉘경우
            vi 홈디렉토리/.bash_profile
             export  LD_LIBRARY_PATH=/home/fs/apmz/mysql5/lib/mysql:/home/fs/apmz/apache2/lib:/home/fs/apmz/apache2/modules
  source  .bash_profile 를 실행하여 바로 현 쉘에 적용
      바. 실행
   
         /home/fs/apmz/apache2/bin/apachectl start
          실행 후 에러가 없으면 완료
           이미 사용하는 포트라는 메시가 나올경우 http.conf 파일에서 수정 할 것
    
      사. FCGI 설치
 
         http://www.fastcgi.com 에서 mod_fastcgi-2.4.2.tar , fcgi-2.4.0.tar 받아온다
  
 
          - mod_fastcgi 생성
              mod_fastcgi-2.4.2.tar 압축 푼 디렉 토리에서
             Makefile.AP2  파일에서 top_dir=/home/fs/apmz/apache2로 설치된 아파치 경로 지정 
             cp  Makefile.AP2 Makefile
              make ; make install ( 아파치 2.2.2 버전의경우 헤더파일 없다는 에러 발생함)

             ls /home/fs/apmz/apache2/modules/mod_fastcgi.so 존재 확인후
              httpd.conf 에 모듈 추가 라인 삽입
               "LoadModule fastcgi_module modules/mod_fastcgi.so"

           - fcgi C 개발 킷 설치
              fcgi-2.4.0.tar 압축 푼디렉토리  ./configure --prefix=/home/fs/apmz/apache2/fcgi2;make ;make install
             * FAST CGI 예제는 추후에...


3. PHP 설치

 설치 하기 전 각종 라이브러리 설치 되어 있어야 함
 
 libxml2 - http://xmlsoft.org/ 
 zlib - http://www.gzip.org/zlib/  - 그래픽 지원 (필수 아님 )
 libpng - http://libpng.sourceforge.net/  - 그래픽 지원 (필수 아님 )
 free type - http://www.freetype.org/  - 그래픽 지원 (필수 아님 )
 libjpeg - http://www.ijg.org/  - 그래픽 지원 (필수 아님 )
 gd - http://www.boutell.com/gd/  - 그래픽 지원 (필수 아님 )
 iconv - http://www.gnu.org/software/libiconv/  - ICOV() 지원  (필수 아님 )


 
 라이브러리 설치가 모두 되었다면 
 
       가. php5 해당 소스를 압축을 푼 디렉토리에서 configure 수행   

         풀 옵션 실행시

        ./configure --prefix=/home/fs/apmz/php5 --mandir=/home/fs/apmz/php5/man --with-charset=euc_kr --with-apxs2=/home/fs/apmz/apache2/bin/apxs --with-mysql=/home/fs/apmz/mysql5 --with-config-file-path=/home/fs/apmz/php5/etc --with-exec-dir=/home/fs/apmz/apache2/bin --enable-track-vars  --with-fastcgi  --with-libxml-dir=/home/fs/apmz/libs/libxml --with-gd-dir=/home/fs/apmz/libs/libgd --with-jpeg-dir=/home/fs/apmz/libs/libjpeg --with-zlib-dir=/home/fs/apmz/libs/libzlib --with-iconv=/home/fs/apmz/libs/libiconv


   
       옵션 설명: 
 
          --prefix= 설치 디렉토리 디렉토리
          --with-charset= 문자열 셋
          --with-apxs2=  아파치의 apxs경로 (so 모튤 실행 위해)
          --with-mysql= mysql 위치
          --with-config-file-path= php.ini 환경 파일경로
          --with-exec-dir 아파치 실행 경로
          --enable-track-vars  옵션은 HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS 배열에 들어 있는 GET, POST, cookie 변수들이 어디서 왔는지 기억하도록 함 꼭 설정
          --with-libxml-dir  libxml2 설치 경로 지정
          --with-gd --with-jpeg-dir --with-zlib-dir   PHP 자체적으로 그래픽을 지원 위해  필수 아님 
          --with-iconv php에서 iconv()를 사용위해 필수 아님 -  만약 이옵션에서 iconv 라이브러리를 찾지 못 할 경우 따로 설치해야 함 


       * 오류 발생시 리플  
      나.  컴파일 
         ./make
          *  오류 발생시 리플
      다. 설치
          ./make install
          ls /home/fs/apmz/php5 실행하여 설치되었는지 확인해본다.
          모듈(libphp5.so)이 생성되었는지 확인 해 본다.
        ls /home/fs/apmz/apache2/modules/libphp5.so
        
  
      라. 환경 파일 복사
        소스디렉토리에있는 php.ini-dist를 --with-config-file-path= 경로위치에 복사
        /php-5.1.4$ cp php.ini-dist /home/fs/apmz/php5/etc/php.ini
        vi /home/fs/apmz/php5/etc/php.ini 파일을 열어
 
          register_globals = Off --> On 으로 변경한다.
         원래 기본적으로 보안상 Off임 하지만 사용 할 경우가 많다. 그래서 ON

      마. httpd.conf을 열어 
       

         -  LoadModule php5_module   modules/libphp5.so  라인이 존재 하지 않는다면 추가 해준다
 
         -  AddType application/x-httpd-php .php  라인이 존재 하지 않는다면 추가 해준다
             httpd.conf 수정 완료 후
              아파치를 재 시작 해준다 .

  

           마지막으로 <? phpinfo(); ?> php 스크립트를 웹에서 설치가 모두 잘 되었는지 확인해 본다.

 

:
Posted by mastar