如何在MacOS High Sierra上安装php@7.1的memcached模块?

11

我在安装php 7.1版本的memcached模块时遇到了问题。我使用的是MacOS High Sierra操作系统,并通过homebrew方式安装了php@7.1。使用以下命令安装php的memcached模块:

pecl install memcached

但是我收到了以下错误信息:

检查zlib的位置... configure: error: memcached支持需要ZLIB。使用--with-zlib-dir=指定包含ZLIB头文件和库的前缀。 错误:`/private/tmp/pear/install/memcached/configure --with-php-config=/usr/local/opt/php@7.1/bin/php-config --with-libmemcached-dir' 失败

但是我已经安装了zlib。在homebrew仓库进行更改后,我找不到安装memcached模块的方法。

3个回答

43
  1. 运行pecl bundle memcached
  2. 进入输出的目录
  3. 运行phpize
  4. 确保已安装libmemcached和zlib (brew install libmemcached zlib)
  5. 获取zlib所在目录 (brew list zlib)
  6. ./configure --with-zlib-dir=/usr/local/Cellar/zlib/1.2.11/ (将上一个命令输出的zlib路径替换到这里)
  7. make
  8. make install
  9. 在你的php.ini文件中添加扩展行(例如,更改路径使其与make install输出匹配。我将其添加到了我的/usr/local/etc/php/7.4/conf.d目录下的一个名为ext-memcached.ini的文件中)

[memcached] extension=memcached.so

  1. 确认是否安装了该模块,php -m应该在输出列表里显示memcached

1
感谢!截至2019年5月,适用于PHP7.0。 - Lashae
1
要找到您的php conf.d文件,只需执行 php -i | grep php.ini 命令并使用第一个路径。我的路径是 /usr/local/etc/php/7.3,然后进入 conf.d 目录。 - Philipp Mochine
不知为何我的 phpinfo(); 没有更新到 memcached,甚至尝试了 php -m 也没有作用,所以我尝试了这个教程并卸载了所有东西。现在完美地运行了。 - Philipp Mochine
3
安装完成后,您可以直接使用以下命令:extension=memcached.so 而无需指定完整路径。请注意,此命令为设置 memcached 扩展。 - Konrad Gałęzowski
1
非常感谢,这在2021年的M1苹果芯片/Big Sur上仍然有效。对我来说,“Cellar”目录位于“/opt/homebrew/”,而“conf.d”目录位于“/opt/homebrew/etc/php/7.4/”。 - 0Seven
显示剩余3条评论

7
您可以使用环境变量PHP_ZLIB_DIR来告诉它zlib的位置。
PHP_ZLIB_DIR=/usr/local/opt/zlib pecl install memcached

完整安装。
brew install zlib
yes no | PHP_ZLIB_DIR=$(brew --prefix zlib) pecl install memcached

2
非常感谢,你最终救了我。我已经试图解决这个问题4/5小时了。 - Sharifur Robin

1

安装 memcached 的前提条件

  • 使用 brew install pkg-config zlib 安装 pkg-config 和 zlib。
  • 检查您要安装的 PHP 版本是否已链接。 php -v 告诉您 cli 中激活的 php 版本。
  • pecl config-get ext_dir 将告诉您设置了哪个版本的配置文件。
  • 获取安装时所需的 zlib 的配置路径 brew list zlib,然后使用 sudo pecl install memcached 进行安装。在安装过程中,它会询问 zlib directory [no] :,在其中粘贴 zlib 配置路径 /opt/homebrew/Cellar/zlib/1.2.11,例如 zlib directory [no] : /opt/homebrew/Cellar/zlib/1.2.11

重新启动您的 php 和 nginx/apache2。

brew services restart php@7.2 brew services restart nginx brew services restart apache2

您可以使用 php -m 检查扩展是否已安装。

注意:我正在使用搭载 MacPro M1 硅芯片 的笔记本电脑。使用 homebrew 进行安装。为了解决这个问题,我经历了很多困难。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接