Berikut adalah cara manual install ext-http di php56 OSX yang sebelumnya di-install melalui homebrew, tetapi ketika menjalankan script php yang memanggil class http* terjadi error seperti dibawah ini :
dyld: lazy symbol binding failed: Symbol not found: _uidna_IDNToASCII_56
Referenced from: /usr/local/opt/php56-http/http.so
Expected in: flat namespace
dyld: Symbol not found: _uidna_IDNToASCII_56
Referenced from: /usr/local/opt/php56-http/http.so
Expected in: flat namespace
Trace/BPT trap:
Karena versi ext-http yg ada di homebrew masih belum up to date, dan juga karena error seperti diatas, semua yg terkait dengan extension ext-http yang sudah di install tersebut harus di uninstall semua seperti berikut :
$ brew uninstall php56-http php56-raphf php56-propro
$ rm -fv /usr/local/etc/php/5.6/conf.d/ext-propro.ini
$ rm -fv /usr/local/etc/php/5.6/conf.d/ext-raphf.ini
$ rm -fv /usr/local/etc/php/5.6/conf.d/zzz_ext-http.ini
Lalu instalasi dari source code seperti dibawah ini (awalan $ adalah perintah di command line) :
$ php -v
PHP 5.6.16 (cli) (built: Nov 27 2015 10:28:22)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
$ cd /tmp
$ wget https://pecl.php.net/get/pecl_http-2.5.5.tgz
$ wget https://pecl.php.net/get/raphf-1.1.0.tgz
$ wget https://pecl.php.net/get/propro-1.0.0.tgz
$ tar zxfv propro-1.0.0.tgz
$ tar zxfv raphf-1.1.0.tgz
$ tar zxfv pecl_http-2.5.5.tgz
$ rm -fv ./*.tgz
$ cd propro-1.0.0/
$ phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
$ ./configure
$ make
$ sudo make install
$ echo "extension=propro.so" > /usr/local/etc/php/5.6/conf.d/ext-propro.ini
$ cd /tmp/raphf-1.1.0
$ phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
$ ./configure
$ make
$ sudo make install
$ echo "extension=raphf.so" > /usr/local/etc/php/5.6/conf.d/ext-raphf.ini
$ cd /tmp/pecl_http-2.5.5
$ phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
$ ./configure
$ make
$ sudo make install
$ echo "extension=http.so" > /usr/local/etc/php/5.6/conf.d/zzz_ext-http.ini
Jika instalasi selesai, bisa dicoba check phpinfo dari command line seperti berikut :
$ php -i | grep http
/usr/local/etc/php/5.6/conf.d/zzz_ext-http.ini
Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*, http.*
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, smb, smbs, smtp, smtps, telnet, tftp
http
http.etag.mode => crc32b => crc32b
Selesai. Untuk cara pakai ext-http (http*) akan saya lanjutkan di tulisan lain.