- 2015/12/30

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.