본문으로 건너뛰기

phpize를 이용해서 curl 모듈 추가하기

💡 요약 정리

  • 외부 접속이 불가능하여 pecl을 사용할 수 없는 경우, PHP 소스를 사용하여 curl 모듈을 설치할 수 있습니다.
  • phpize 명령어를 이용해 모듈을 빌드하고 설치한 후, php.ini에 설정을 추가해야 합니다.
  • 설치가 완료되면 Apache를 재시작하고, curl 모듈이 정상 등록되었는지 확인합니다.

1. curl 소스 디렉토리로 이동

방화벽 등으로 인해 외부 접속이 불가능해서 pecl을 사용할 수 없을 경우는 PHP를 설치한 source를 이용해서 phpize로 확장 모듈을 설치할 수 있습니다.

[root@localhost src]# cd php-5.2.17/
[root@localhost php-5.2.17]# cd ext/
[root@localhost ext]# cd curl/
[root@localhost curl]# ls
CREDITS  config.m4  config.w32  curl.dsp  interface.c  multi.c  package.xml  php_curl.h  streams.c  tests

2. phpize 명령 실행 및 curl 모듈 설치

[root@localhost curl]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:        20041225
Zend Module Api No:     20060613
Zend Extension Api No:  220060519
[root@localhost curl]# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-curl
[root@localhost curl]# make
[root@localhost curl]# make test

Build complete.
Don't forget to run 'make test'.

=====================================================================
PHP         : /usr/local/php/bin/php
PHP_SAPI    : cli
PHP_VERSION : 5.2.17
ZEND_VERSION: 2.2.0
PHP_OS      : Linux - Linux localhost.localdomain 2.6.18-308.11.1.el5 #1 SMP Tue Jul 10 08:48:43 EDT 2012 x86_64
INI actual  : /usr/local/src/php-5.2.17/ext/curl/tmp-php.ini

...

TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped   :  0
Exts tested    :  37
---------------------------------------------------------------------
Number of tests :  61
Tests skipped   :  30 ( 49.2%)
Tests passed    :  28 ( 45.9%)
Tests failed    :   3 ( 4.9%)

FAILED TEST SUMMARY
---------------------------------------------------------------------
Test curl_error() & curl_errno() function with problematic host
Curl_multi_getcontent() basic test with different sources (local file/http)
curl_setopt() basic parameter test
[root@localhost curl]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

3. php.ini 파일에 설정 추가 및 Apache 재시작

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613"
extension=curl.so
[root@localhost no-debug-non-zts-20060613]# /usr/local/apache2/bin/apachectl restart

4. 추가된 curl 모듈 확인

[root@localhost no-debug-non-zts-20060613]# /usr/local/php/bin/php -i | grep curl
curl
cURL Information => libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
OLDPWD => /usr/local/src/php-5.2.17/ext/curl
_SERVER["OLDPWD"] => /usr/local/src/php-5.2.17/ext/curl
_ENV["OLDPWD"] => /usr/local/src/php-5.2.17/ext/curl