커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 네트워크(network) > 웹 서버(web, httpd, apache) 도움말
검색 : 사이트 WHOIS 웹서버 종류

WebDAV (7, 글 1, 자료 4)
웹서버 튜닝 (5, 글 4, 자료 2)
웹서버 사용 통계 자료 (2, 자료 1)
Apache SSL / mod_ssl (4, 글 3, 자료 2)

  Oracle 9i 64bit 환경에 Apache+PHP4 설치 (AIX 5.1L) 작성일 : 2004/04/11 23:26
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 11032
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2004.4.3
    정리일 : 2004.4.10~11 (공개하기 위해 정리함)

    AIX 5.1L과 Oracle 9i 환경에 Apache 1.3.x과 PHP4 를 붙이는 과정과 발생할 수 있는 문제를 해결하는 방법을 간략히 설명한다.
    국내에 이런 환경에 대한 설치 문서가 없어서 설치에 어려움을 격은 분들에게 조금이라도 도움이 되었으면 한다.
    정리를 못해 포함하지 못한 에러 메시지(PHP컴파일시의 에러메시지, Apache 실행시 에러메시지 등)와 환경 변수 등은 추후에 추가하도록 노력하겠다.

    ※ 설치 환경

     - OS : IBM AIX 5.1L (리눅스의 PPC rpm을 사용가능함)
     - Oracle 9i (중요한 것은 64bit환경으로 설치됨)
      - php 4.x
      - apache 1.3.x
      - gcc, GNU make, gzip 등이 살치되어 있음. 그러나 GNU make를 사용하지는 않았음

      - 설치 순서

      oracle 9i가 64bit로 이미 설치되어 있음 -> apache -> PHP4

    1. Apache 설치

      http://httpd.apache.org/

      아파치 1.3.x는 DSO방식으로 설치를 하고 설치 경로는 /usr/local/apache라고 가정한다.

     
      # gunzip apache_1.3.29.tar.gz
      # tar xvf apache_1.3.29.tar
      # cd apache_1.3.29
      #
      # CC=gcc OPTIM='-Wall -g' ./configure --prefix=/usr/local/apache \
       --enable-module=all --enable-shared=max \
       --disable-module=auth_dbm --disable-module=auth_db

     


      만약 IBM의 C 컴파일렁니 xlc_r을 사용한다면 configure할 때 다음과 같이 한다.

     
      # CC=xlc_r OPTIM='-qinfo=pro -qfullpath -g' ./configure --prefix=/usr/local/apache \
       --enable-module=all --enable-shared=max \
       --disable-module=auth_dbm --disable-module=auth_db

     


      바로 이 상태에서 make를 한다면

      'ld: 0711-317 오류: 정의되지 않은 기호: .__fixsfsi' 또는
      'ld: 0711-317 ERROR: Undefined symbol: .__fixsfsi' 과 같은 에러가 발생할 것이다.

      apache의 소스 트리에서 src/support/httpd.exp 파일 마지막에 다음 2줄을 넣어준다.

     
    __fixsfsi
    __fixunssfsi
     


      자 이제 make하면 설치가 된다.

     
      # make
      # make install
     


    2. PHP4 컴파일

      이 부분이 해결하기 힘든 부분 중에 하나일 수 있다.
      Oralce 9i는 64bit 환경으로 설치되어 있는 상태인데, PHP4는 32bit의 오라클 라이브러리를 요구하기 때문이다.
      분명한 것은 이 상태에서 설치를 시도한다면 make할 때 오류가 발생할 것이다.

      방법은 2가지 정도가 있으며, 여기서는 방법 2를 이용해서 하겠다.

      방법 1) Oracle 8i client를 서버에 설치하여 이 8i client의 라이브러리를 이용해서 PHP4를 설치
      방법 2) Oracle 9i 의 32bit 라이브러리를 사용하도록 PHP4의 configure 파일을 수정 한 후 설치

     ※ - Oracle 9i  홈 디렉토리는 /oracle/app/920 임
         - 64bit 라이브러리는 /oracle/app/920/lib 에 있으며
           32bit 라이브러리는 /oracle/app/920/lib32 에 있다.
       - MySQL은 사용 안한다면 --without-mysql 옵션을 넣는다.

      1) root의 .profile에 다음을 추가한다. (추후 Apache실행할 때 중요한 부분이다.)

     
      LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib; export LIBPATH
      LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
     


      2) PHP4를 받아 압축을 푼 후 configure 파일을 수정한다.
         configure 안의 OCI8_DIR/lib 를 OCI8_DIR/lib32 로 바꾼다. vi로 해결해보자.

     
      # vi configure
      :1,$s/OCI8_DIR\/lib/OCI8_DIR\/lib32/g  <-- (첫번째 줄(1)부터 마지막줄($)까지 모두 replace)
      :wq
     

        
      3) configure 한 후 컴파일하면 완료

     
      # ./configure --prefix=/usr/local/php \
            --with-apxs=/usr/local/apache/bin/apxs \
            --with-apache-install=/usr/local/apache \
            --with-mysql=/usr/local/mysql \
            --enable-track-vars --enable-safe-mode --enable-debugger \
            --with-zlib  \
            --with-xml \
            --with-charset=euc_kr \
            --with-language=korean \
            --with-oci8=/oracle/app/920 \
            --with-oracle=/oracle/app/920

      # make
      # make install
     


    3. 문제 해결

    1) Apache 컴파일할 때 다음과 같은 오류가 발생했다.

     
    ======== Error Output for sanity check ========
            cd ..; gcc  -DAIX=510 -U__STR__ -DAIX_BIND_PROCESSOR -DUSE_HSREGEX `./apaci`   -lm -lpthread -o helpers/dummy helpers/dummy.c   -lexpat -lld
    collect2: /lib/libm.a: not a COFF file <-- 중요
    make: The error code from the last command is 1.


    Stop.
    ============= End of Error Report =============
     


      -> gcc 버전을 변경하여 컴파일 하면 된다.

    2) Apache 컴파일할 때 다음과 같은 오류가 발생했다.

     
    ld: 0711-317 오류: 정의되지 않은 기호: .__fixsfsi
     


      -> Apache 소스 트리에서 src/support/httpd.exp 파일 마지막에 다음 2줄을 추가한다.

     
    __fixsfsi
    __fixunssfsi
     


    3) Apache 컴파일할 때 'Cannot run a 64-bit program until the 64-bit' 과 같은 에러가 발생했다.

     
    ======== Error Output for sanity check ========
            cd ..; gcc -Wall -g -DAIX=510 -U__STR__ -DAIX_BIND_PROCESSOR
    -DNO_DBM_REWRITEMAP -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite `./apaci`
    -lm -lpthread  -o helpers/dummy helpers/dummy.c   -lld
    Could not load program /usr/ccs/bin/bind64:
    Cannot run a 64-bit program until the 64-bit
            environment has been configured. See the system administrator.
    collect2: ld returned 255 exit status
    make: The error code from the last command is 1.
     


      -> AIX OS를 64bit 로 전환한다.

    shell상에서 /etc/methods/cfg64 명령을 실행하면 된다.
     
      # /etc/methods/cfg64
     


    또한 부팅할 때마다 64비트로 로딩되도록 /etc/inittab 에 cfg64 명령을 추가해도 좋다.
    mkitab 명령은 inittab에 cfg64명령을 대신 추가해줄 것이다.

     
      # mkitab -i powerfail "load64bit:2:wait:/etc/methods/cfg64 >/dev/console 2>&1 # Enable 64-bit execs"
     


    4) PHP컴파일할 때 ld: 0711-317 ERROR: Undefined symbol: .OCIEnvInit ... 등의 에러가 발생했다.

     
    ld: 0711-317 ERROR: Undefined symbol: .ologof
    ld: 0711-317 ERROR: Undefined symbol: .oclose
    ld: 0711-317 ERROR: Undefined symbol: .oopen
    ld: 0711-317 ERROR: Undefined symbol: .oparse
    ld: 0711-317 ERROR: Undefined symbol: .olog
    ld: 0711-317 ERROR: Undefined symbol: .ocof
    ld: 0711-317 ERROR: Undefined symbol: .ocon
    ld: 0711-317 ERROR: Undefined symbol: .ocom
    ld: 0711-317 ERROR: Undefined symbol: .orol
    ld: 0711-317 ERROR: Undefined symbol: .obndra
    ld: 0711-317 ERROR: Undefined symbol: .oexec
    ld: 0711-317 ERROR: Undefined symbol: .oexfet
    ld: 0711-317 ERROR: Undefined symbol: .ofetch
    ld: 0711-317 ERROR: Undefined symbol: .oflng
    ld: 0711-317 ERROR: Undefined symbol: .oerhms
    ld: 0711-317 ERROR: Undefined symbol: .odescr
    ld: 0711-317 ERROR: Undefined symbol: .odefin
    ld: 0711-317 ERROR: Undefined symbol: .OCIEnvInit
    ld: 0711-317 ERROR: Undefined symbol: .OCIHandleAlloc
    ld: 0711-317 ERROR: Undefined symbol: .OCIInitialize
    ld: 0711-317 ERROR: Undefined symbol: .OCIHandleFree
    ld: 0711-317 ERROR: Undefined symbol: .OCITransRollback
    ld: 0711-317 ERROR: Undefined symbol: .OCIDescriptorFree
    ld: 0711-317 ERROR: Undefined symbol: .OCIErrorGet
    ... 중략 ...
    ld: 0711-317 ERROR: Undefined symbol: .OCITypeByRef
    ld: 0711-317 ERROR: Undefined symbol: .OCIObjectNew
    ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
    collect2: ld returned 8 exit status
    make: 1254-004 최종 명령에서의 오류 코드는 1입니다.


    Stop.
     


      -> PHP컴파일하기 전에 '2. PHP4 컴파일'에서 2) configure 파일을 수정한 후 컴파일한다.

    4. 참고할만한 자료

    - AIX에서 Apache 1.3.x 설치애 대한 문서
      http://www.apache.org/~trawick/apache13aix.html

    - Oracle과 PHP4 연동하여 설치하는 방법에 대한 글
      http://kr.php.net/oci8

    - AIX용 바이너리 패키지 사이트 Public Domain Software Library for AIX
      http://aixpdslib.seas.ucla.edu/

    - AIX 51-05에서 gcc로 Apache 1.3.29 컴파일할 때 오류 문제에 대해
      http://www.faqs.org/qa/qa-12016.html

     
      제목 : Hi- I'm compiling apache 1.3.29 on AIX 51-05 using gcc...
      날짜 : 2004/1/28
      질문 :

      I'm compiling apache 1.3.29 on AIX 51-05 using gcc 2.95.  I'm coming up with error:
      "collect2: /usr/lib/libm.a: not a COFF file"

      Not sure what to do with this but obviously I'm far from an expert. . .

      tks,
      Bill Edison

      답변 :

      You just have to try with a earlier version of GCC (such as 3.3.2).

      We experienced this, and it's ok.

      Good luck

      Franck Bercher
     


      커피닉스 카페 최근 글
    [06/20] Онлайн магазин элек
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~