I have installed PHP, zlib and memcached using Homebrew on a Mac with Apple silicon. I am trying to install the memcached extension for PHP using
sudo pecl install memcached
When it prompts me for zlib directory [no] :
I specified "/opt/homebrew/opt/zlib/include"
I have confirmed that this directory contains the files zlib.h and zconf.h. brew info zlib
also tells me
For compilers to find zlib you may need to set:
export LDFLAGS="-L/opt/homebrew/opt/zlib/lib"
export CPPFLAGS="-I/opt/homebrew/opt/zlib/include"
For pkg-config to find zlib you may need to set:
export PKG_CONFIG_PATH="/opt/homebrew/opt/zlib/lib/pkgconfig"
So I seem to be supplying the correct path for zlib. However, running sudo pecl install memcached
is throwing the following error:
checking whether to use system FastLZ library... no
checking for ZLIB... yes, shared
checking for pkg-config... /opt/homebrew/bin/pkg-config
configure: error: Can't find ZLIB headers under "/opt/homebrew/opt/zlib/include"
ERROR: `/private/tmp/pear/temp/memcached/configure --with-php-config=/opt/homebrew/opt/php/bin/php-config --with-libmemcached-dir=no --with-zlib-dir=/opt/homebrew/opt/zlib/include --with-system-fastlz=no --enable-memcached-igbinary=no --enable-memcached-msgpack=no --enable-memcached-json=no --enable-memcached-protocol=no --enable-memcached-sasl=no --enable-memcached-session=no' failed
How do I fix this?
I had the same issue and managed to get it working on Mac using the path:
/opt/homebrew/opt/zlib
NOT "/opt/homebrew/opt/zlib/include" even though that is technically the folder which contains the headers, the error message is misleading.
For me, the --with-zlib-dir= argument did nothing, I had to provide the path when prompted during installation:
pecl install memcached
zlib directory [no] : /opt/homebrew/opt/zlib