nrk/phpiredis

Errors with redis 2.4.16 and hiredis 0.10.1

igorw opened this issue · 5 comments

I get the following error:

dyld: lazy symbol binding failed: Symbol not found: _redisReaderCreate
  Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20100525/phpiredis.so
  Expected in: flat namespace

dyld: Symbol not found: _redisReaderCreate
  Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20100525/phpiredis.so
  Expected in: flat namespace

Trace/BPT trap: 5

I'm guessing the C API changed and phpiredis is not updated to it yet. If you have any solutions, that would be awesome.

The API still has the function redisReaderCreate https://github.com/antirez/hiredis/blob/master/hiredis.h

We recently made a change that libhiredis needs to be installed independently and phpiredis links it from your library. Do you have hiredis installed?

Thanks for the pointers. In /usr/local/lib I have this (installed hiredis via homebrew):

$ ls /usr/local/lib/libhiredis.*
/usr/local/lib/libhiredis.0.10.dylib
/usr/local/lib/libhiredis.a
/usr/local/lib/libhiredis.0.dylib
/usr/local/lib/libhiredis.dylib

I configured the extension with:

./configure --enable-phpiredis --with-hiredis-dir=/usr/local

Am I messing up the paths?

fix line 24 of config.m4:
PHP_EVAL_LIBLINE(-lhiredis, PHPIREDIS_SHARED_LIBADD)

I added that line to the source. @igorw can you confirm if that fixes the problem?

Awesome, works again! Thanks so much!