【问题标题】:Can I install the memcached PHP extension with PECL?我可以使用 PECL 安装 memcached PHP 扩展吗?
【发布时间】:2010-10-15 14:15:14
【问题描述】:

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

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

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

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

$ sudo pecl install memcached
...
ld:找不到 -lmemcached 的库
collect2: ld 返回 1 个退出状态
make: *** [memcached.la] 错误 1
错误:“制作”失败

我在最近的英特尔 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

知道我做错了什么吗?

【问题讨论】:

    标签: php macos memcached pecl


    【解决方案1】:

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

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

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

    瞧!!

    【讨论】:

      【解决方案2】:

      这里的情况相同。我必须执行上述操作,但使用明确的路径名(我在 /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/本地
      • 制作
      • 进行安装

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

      【讨论】:

        【解决方案3】:

        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
        

        效果很好。

        【讨论】:

        • 什么是 /opt/local 的引用?我不明白这部分。
        • 对于带有 MAMP 1.9 的 memcache(而不是 memcached),我必须使用这种方式来配置:./configure --prefix=/Applications/MAMP/ --with-php-config=/Applications/MAMP/bin/php5.3/bin/php-config
        • @ChrisHarrison: /opt/local 是 MacPorts 的位置(虽然我现在使用的是 Brew。)
        • 伙计,你需要经历的那些箍。无论如何,上面的解决方案对我有用(使用 libmemcached 1.0.10 和 memcached 2.1.0),还有一些额外的步骤:首先执行“sudo port install libmemcached”,然后将“extensions=memcached.so”添加到我的 /private /etc/php.ini 并执行“sudo apachectl restart”以取得好成绩。
        • make: *** 没有规则来制作目标“安装”。停止。
        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2023-04-08
          • 2017-05-23
          • 1970-01-01
          • 1970-01-01
          • 2010-10-08
          • 1970-01-01
          • 2020-12-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多