php 확장모듈 설치

php 설치 시 누락된 모듈을 추가 적용 하기 위해서는 php를 재설치 하는 방법도 있지만 확장모듈의 경우 개별적으로 추가 등록을 할 수도 있습니다.

설치 된 php에 확장모듈을 추가하기 위해서는 아파치가 동적으로 설치가 되어 있어야 하며 동적설치 유무를 확인하기 위해서는 httpd -l 또는 phpinfo 페이지 apachehandler 의 Loaded Modules 부분에 mod_so 가 적용되어 있는지를 확인 하시면 됩니다.

아파치 모듈의 동적운용(DSO)와 정적운용(Static)의 차이점은 DSO 방식의 경우 필요한 경우에만 모듈을 메모리에 적재하고 Static의 경우 설치된 모든 모듈을 메모리에 적재하는 방식의 차이 이며 DSO 방식의 경우에만 재설치 없이 php에 확장모듈을 추가할 수 있습니다.
(DSO(Dynamic Shared Object)는 아파치 1.3버전부터 지원하며 최근 하드웨어 성능의 향상으로 대부분의 경우DSO 방식으로 아파치를 설치합니다.)
(참고 :http://www.worldwalker.co.kr/entry/%BE%C6%C6%C4%C4%A1-%BC%B3%C4%A1%BD%C3-DSO%BF%CD-Static%BC%B3%C4%A1%C0%C7-%C2%F7%C0%CC%C1%A1?category=1)

공통

기본적으로 현재 설치되어 있는 php와 동일한 버전의 php 소스를 이용하며 다른 버전 사용시 실패할 확률이 높습니다.
해당 php 버전의 기본적으로 제공하는 확장 모듈은 {php_source_path}/ext/ 경로 안에 있는 디렉토리 명으로 확인 할 수 있습니다.
모듈명.so 파일 생성 후 다음과 같은 방법으로 적용 합니다.

설치된 php 경로에 추가모듈을 위한 임의의 디렉토리를 만듭니다. (주의: 기존에 확장모듈을 별도로 추가하여 사용할 경우 해당 추가모듈 디렉토리를 그대로 사용합니다.)

ex)
#mkdir /usr/local/php_5.1.6/extension

생성된 "모듈명.so" 파일을 생성한 임의의 디렉토리로 복사한 후 php.ini 파일에 다음과 같이 변경&설정한 후 아파치를 재가동 하여 적용 합니다.

extension_dir = "/usr/local/php_5.1.6/extension"
extension=모듈명.so

1.
기본 php configure를 이용하여 확장 모듈을 생성하는 방법
(4.2.1 버전에서는 정상적으로 설치 되는 것을 확인하였으나 5.1.6등의 버전에서는 설치되지 않았으며 php 버전에따라 적용되지 않습니다.)

현재 설치되어 있는 php 버전과 동일한 버전의 php 소스를 다운받아 압축을 해제 합니다.

#tar zxvf php-버전.tar.gz

해제된 소스의 경로로 이동 후 ./configure --enable-모듈명=shared 과 같은 형식으로 설정을 합니다.
(./configure --help|grep 모듈명 등의 명령어를 이용하여 설치시 --enable-모듈명 인지 --with-모듈명 인지 확인하여 적용 하여야 합니다.)

#./configure --enable-모듈명=shared

또는

#./configure --with-모듈명=shared

해당 모둘의 디렉토리로 이동하면 Makefile이 생성된 것을 확인할 수 있으며 make 명령어로 컴파일 합니다.

#cd ./ext/모듈명
#make

컴파일을 하면 .libs/모듈명.so 또는 modules/모듈명.so 파일이 생성이 됩니다.

2.
phpize를 이용하여 확장 모듈을 생성하는 방법

현재 설치되어 있는 php 버전과 동일한 버전의 php 소스를 다운받아 압축을 해제 합니다.

#tar zxvf php-버전.tar.gz

해제된 소드 경로의 ext 디렉토리 내에 기본 확장 모듈이 디렉토리 명으로 되어 있으며 확장을 원하는 디렉토리 내에서 phpize를 실행 합니다.

#cd ./ext/모듈명
#{php_path}/bin/phpize

phpize를 실행 후 configure 등의 파일이 생성되며 다음과 같은 방법으로 configure와 make 실행 하여 컴파일 합니다.

#./configure --with-php-config={php_path}/bin/php-config --enable-모듈명
#make

컴파일을 하면 ./.libs/모듈명.so 또는 ./modules/모듈명.so 파일이 생성 됩니다.

3.
php를 새로 컴파일 하여 아파치에 직접 모듈을 교체하는 방법
(새로 설치하는 것과 큰 차이는 없으나 서비스 중단을 최소화 할 수 있는 장점이 있으며 알려지지 않은 문제점이 발생할 수 있습니다.)
(주의 : rpm 으로 설치된 apm은 해당되지 않습니다.)

현재 설치되어 있는 php 버전과 동일한 버전의 php 소스를 다운받아 압축을 해제 합니다.

#tar zxvf php-버전.tar.gz

해제된 소스 경로로 이동 후 phpinfo 등을 참고하여 기존 configure 옵션을 수정한 후 make로 컴파일 합니다. (make install은 진행하지 않습니다.)

#./configure {수정 된 옵션}
#make

아파치 데몬을 중단 한 후 아파치 모듈 디렉토리 (apache 1.x 의 경우 {apache_path}/libexec , apache 2.x 의 경우 {apache_path}/modules ) 내의 libphp5.php (또는 libphp4.php) 파일을 libphp5.php_bak 등의 형식으로 백업 합니다.

#{apache_path}/bin/apachectl stop
#mv {apache_path}/modules/libphp5.so {apache_path}/modules/libphp5.so_bak

php 실행 데몬 또한 백업 합니다.

#mv {php_path}/bin/php {php_path}/bin/php_bak

새로 컴파일한 libphp5.so 모듈과 php 실행 데몬은 각각 새로 컴파일한 소스 디렉토리 내의 libs/libphp5.so 과sapi/cli/php 로 생성되어 있으며 이를 복사하여 대체 합니다.
(해당 경로에 없을 경우 소스 디렉토리 내에서 find . -name php, find . -name libphp5.so 등의 명령어로 위치를 확인 합니다.)

#cp -a {php_source_path}/libs/libphp5.so {apache_path}/modules/
#cp -a {php_source_path}/sapi/cli/php {php_path}/bin/

아파치를 재가동 하여 확인합니다.

#{apache_path}/bin/apachectl start


출처 : http://worldwalker.co.kr/entry/php-%EC%9E%AC%EC%84%A4%EC%B9%98-%EC%97%86%EC%9D%B4-%ED%99%95%EC%9E%A5%EB%AA%A8%EB%93%88-%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

2012/03/28 09:54 2012/03/28 09:54
트랙백 21, 댓글이 없습니다.

댓글+트랙백 RSS :: http://simfarm.kr/phoenix311/rss/response/11

댓글+트랙백 ATOM :: http://simfarm.kr/phoenix311/atom/response/11

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다

트랙백 RSS :: http://simfarm.kr/phoenix311/rss/trackback/11

트랙백 ATOM :: http://simfarm.kr/phoenix311/atom/trackback/11

  1. Subject: Cheap Mk Handbags

    Tracked from Cheap Mk Handbags 2015/05/08 19:36  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  2. Subject: air max pas cher

    Tracked from air max pas cher 2015/05/10 07:12  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  3. Subject: Michael Kors Handbag

    Tracked from Michael Kors Handbag 2015/05/22 01:08  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  4. Subject: Example Anchor Text

    Tracked from Example Anchor Text 2015/05/25 17:13  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  5. Subject: Michael Kors Handbags Outlet

    Tracked from Michael Kors Handbags Outlet 2015/05/30 23:59  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  6. Subject: Cheap ray ban sunglasses outlet

    Tracked from Cheap ray ban sunglasses outlet 2015/05/31 11:53  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  7. Subject: Michael Kors Outlet

    Tracked from Michael Kors Outlet 2015/06/03 04:05  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  8. Subject: Louis vuitton outlet

    Tracked from Louis vuitton outlet 2015/06/08 11:34  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  9. Subject: game ps3

    Tracked from game ps3 2015/07/08 22:07  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  10. Subject: kitchen appliance hardware}

    Tracked from kitchen appliance hardware} 2015/07/09 18:12  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  11. Subject: kitchen appliances list

    Tracked from kitchen appliances list 2015/07/11 18:47  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  12. Subject: kitchen appliance guide

    Tracked from kitchen appliance guide 2015/07/13 18:42  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  13. Subject: kitchen appliance bundles

    Tracked from kitchen appliance bundles 2015/07/14 20:25  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  14. Subject: kitchen appliance trends 2015

    Tracked from kitchen appliance trends 2015 2015/07/19 19:59  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  15. Subject: kitchen appliance hardware}

    Tracked from kitchen appliance hardware} 2015/07/19 23:28  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  16. Subject: best wireless routers

    Tracked from best wireless routers 2015/07/21 18:13  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  17. Subject: kitchen appliance deals

    Tracked from kitchen appliance deals 2015/07/21 19:49  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  18. Subject: nintendo ds

    Tracked from nintendo ds 2015/07/22 16:37  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  19. Subject: {discount kitchen

    Tracked from {discount kitchen 2015/07/24 18:58  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  20. Subject: kitchen appliance reviews

    Tracked from kitchen appliance reviews 2015/07/25 20:17  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법

  21. Subject: yahoo health

    Tracked from yahoo health 2015/07/26 18:05  삭제

    SimFarm :: php 재설치 없이 확장모듈 추가하는 방법