11

我在从 PECL安装“ memcached ”PHP 扩展时遇到问题,尽管我可以成功安装“ memcache ”扩展。(它们是单独的 PHP 扩展。)

例如,这些命令可以正常工作:

$ sudo pecl 安装内存缓存
$ sudo pecl 安装 APC
$ sudo pecl 安装 oauth

但是,尝试安装 memcached 会导致错误:

$ sudo pecl install memcached
...
ld: library not found for -lmemcached
collect2: ld returned 1 exit status
make: *** [memcached.la] Error 1
ERROR: `make' failed

我在最近的英特尔 Mac 上使用来自 Mac Ports (macports.org) 的 pecl、memcached 和 libmemcached。libmemcached 库可以在 /opt/local 中找到:

/opt/local/include/libmemcached
/opt/local/include/libmemcached/libmemcached_config.h
/opt/local/lib/libmemcached.2.0.0.dylib
/opt/local/lib/libmemcached.2.dylib
/opt/local /lib/libmemcached.a
/opt/local/lib/libmemcached.dylib
/opt/local/lib/libmemcached.la

知道我可能做错了什么吗?

4

4 回答 4

33

Andrei Zmievski(memcached 插件的开发者)回复了我的电子邮件请求,并提供了以下说明:

$ pecl download memcached
$ tar zxvf memcached-1.0.0.tgz (or whatever version downloads)
$ cd memcached-1.0.0
$ phpize
$ ./configure --with-libmemcached-dir=/opt/local
$ make
$ sudo make install

这非常有效。

于 2009-03-30T14:52:00.610 回答
1

如您所见,新的 memcached 扩展使用 libmemcached 来完成繁重的工作。如果是 Linux,我会说您可能没有在 ld.so.conf 中列出 /opt/local/lib/(并运行“ldconfig”)。

MaxOSX 不使用它。但是,它显然可以从“端口”安装。http://lsimons.wordpress.com/2008/05/01/serious-php-part-1/

于 2009-03-26T12:17:43.540 回答
1

这里的情况相同。我必须执行上述操作,但使用明确的路径名(我在 /opt/local 之外运行我的 php 等)

  • /opt/local/bin /pecl 下载 memcached
  • tar zxvf memcached-1.0.0.tgz
  • cd memcached-1.0.0
  • /opt/local/bin /phpize
  • ./configure --prefix=/opt/local --with-php-config=/opt/local/bin/php-config --with-libmemcached-dir=/opt/local
  • 制作
  • 进行安装

通常这种东西在带有macports的os x上非常简单,但是还没有php5-memcached包(只有一个用于较旧的memcache(没有“d”)包)。哦,我还必须安装旧版本的 libmemcached,因为最新版本没有在我的 os x 10.5.8 上编译。哦!

于 2010-02-17T07:56:02.190 回答
0

好吧,经过多次尝试,只有这个解决方案对我有用。

  1. 安装 XAMPP
  2. 安装 brew ( https://github.com/Homebrew/homebrew/wiki/Installation )
  3. $酿造
  4. 安装 libmemcached
  5. cd /Applications/XAMPP/xamppfiles/bin/
  6. $ sudo ./pecl 安装 memcached

构建过程成功完成安装“/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/memcached.so”安装正常:channel://pecl.php.net/memcached-2.2。 0 配置选项“php_ini”未设置为 php.ini 位置您应该将“extension=memcached.so”添加到 php.ini

瞧!

于 2014-07-23T14:50:26.107 回答