【问题标题】:How to use Memcached with PHP7?如何在 PHP7 中使用 Memcached?
【发布时间】:2016-07-22 07:22:35
【问题描述】:

我试图找到有关在 PHP7 中使用 Memcached 的任何信息,但我失败了。唯一有价值的信息是简短的Readme.md of php-memcached repo
不幸的是,它的travis build 和我的机器上的30/126 tests 都失败了。

但是make install 命令成功并创建了memcached.so 文件。这是否意味着我可以在生产中使用此扩展程序,或者它仍然存在错误并且不建议使用?

我将非常感谢任何建议或可行的解决方案。

【问题讨论】:

  • 我修复了 travis 构建...如果您有错误,请报告它们...无法猜测 ;)
  • @JoeWatkins 会在短时间内听从您的建议,谢谢
  • 另外,它们都是实验性测试...... travis 并没有因为 php-memcached 中的错误而失败,只是构建脚本中的错误......你应该没问题。
  • @JoeWatkins 感谢您的通知,这很重要。是不是说当前的php-memcached#php7没有被测试覆盖,所以不能认为是稳定的?
  • 不,您遇到的失败是在测试/实验中,它们不是由 CI 运行的......它们涵盖了实验功能......

标签: php mysql performance memcached php-7


【解决方案1】:

您需要使用php7 分支; see here,特拉维斯路过。

这应该是在 Debian/Ubuntu 操作系统上安装 memcached 扩展的完整步骤:

sudo apt-get update
sudo apt-get install -y libmemcached-dev libmemcached11 git build-essential

git clone https://github.com/php-memcached-dev/php-memcached
cd php-memcached
git checkout php7
git pull

/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config

make
sudo make install

如果您将某些路径安装在不同的位置,您可能需要更改它们。

【讨论】:

  • 我不明白我对 /usr/local/php7/bin/phpize ./configure --with-php-config=/usr/local/php7/bin/php-config 的意义是什么 /usr/local/php7/bin/phpize 不存在。
  • @JamieHutber: "如果系统缺少 phpize 命令,并且使用了预编译包(如 RPM),请务必安装适当的 PHP 包的开发版本,因为它们经常包含 phpize 命令以及相应的头文件以构建 PHP 及其扩展。" -- php.net/manual/en/install.pecl.phpize.php
  • @JamieHutber sudo apt-get install php7.0-dev 然后 /usr/bin/phpize 就在那里
  • 在我使用 PHP7.2 安装的 Ubuntu 18.04 中,我还必须使用 apt-get install pkg-config zlib1g-dev,而我的 phpphpizephp-config/usr/bin 中。
【解决方案2】:

对于 Debian 8 用户,您可以使用:

sudo apt-get install php7.0-memcached

【讨论】:

  • 注意安装的扩展版本是这种情况是:3.0.3。不幸的是,我不能使用它,因为它被认为是一个新的主要版本,并且不受一些直接检查版本号以进行自我初始化的旧供应商库的支持。在这种情况下,它支持的最后一个版本是 2.2。
【解决方案3】:

我是通过让工匠在 Laravel Lumen 框架中工作的问题来提出这个问题的。

我使用的是 PHP 7。准确地说是PHP 7.0.15-0ubuntu0.16.04.4

我发现唯一的解决方案是使用 memcached 安装似乎是 PHP 5 版本*:

sudo apt install memcached php-memcached


*

php-memcached/xenial,now 2.2.0-51-ge573a6e+2.2.0-2build2 amd64 [installed]
  memcached extension module for PHP5, uses libmemcached

如果你发现你然后得到错误:[RuntimeException] Could not establish Memcached connection.,你需要像上面的sudo apt install memcached那样安装memcached扩展(如果你在16.04+,使用apt-get如果

【讨论】:

  • 我真的不知道为什么它有 -1 @hegez
  • 我投了赞成票,也不知道投反对票的目的是什么
  • 另外请注意,至少对于 php 7.1 安装php7.1-memcached 有效,但它只指向php-memcached,至少在我发现这里描述的 Ondrej 存储库blog.programster.org/debian-8-install-php-7-1
【解决方案4】:

在最新的 ubuntu 上安装 memcached 以供最新的 php 使用:

sudo apt-get install php-memcached

【讨论】:

  • 如果出现消息错误“未添加 Memcached 服务器”,您还需要安装:sudo apt-get install memcached,然后它就可以工作了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2019-02-25
  • 1970-01-01
  • 2016-09-28
  • 2017-05-24
相关资源
最近更新 更多