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