有没有人让 memcached 在 Laravel Homestead php7 盒子上工作?

Posted

技术标签:

【中文标题】有没有人让 memcached 在 Laravel Homestead php7 盒子上工作?【英文标题】:Has anyone got memcached to work on Laravel Homestead php7 box? 【发布时间】:2016-01-09 11:03:47 【问题描述】:

我在新的 Homestead php7 盒子上加载了 Laravel/Lumen,遇到了这个错误:

FatalThrowableError in MemcachedConnector.php line 51:
Fatal error: Class 'Memcached' not found

执行phpinfo(); 显示没有memcached 扩展,但sudo service memcached status 表示memcached 正在运行。这里似乎有一个用于 memcached 的 php7 分支:https://github.com/php-memcached-dev/php-memcached/tree/php7

谁能指导我如何让它在新的 php7 Homestead VM 中工作?

编辑:我刚刚在homestead install documentation 上看到它说“Memcached(仅限 PHP 5.x)”。问题仍然存在于如何让它发挥作用。

【问题讨论】:

现在正在 Forge 上工作,太棒了 当我进行非常基本的测试时,Memcached(以“d”结尾)在 Windows 10 上的 Laravel 5.4 Homestead 上为我工作。但是,某些键/值无法保存,我还没有找出原因。 啊,只有我的基本测试有效,而不是更复杂的案例,因为我误解了标签的工作原理。我不知道我还需要在 get 期间指定标签(我仍然不明白为什么)。 【参考方案1】:

PHP7 的 php-memcached 工作尚未完成,并非所有测试都通过;你可以使用除 JSON 序列化之外的所有东西,我认为。

没有对 PHP7 的 pecl 支持,所以现在你需要手动安装扩展,像这样:

git clone https://github.com/php-memcached-dev/php-memcached
cd php-memcached
git checkout php7
phpize
./configure
make
sudo make install

您必须确保phpize 是PHP7 版本。此外,如果您的 PATH 中的 php 不是 PHP7,那么您的 PATH 中的 php-config 也不是,在这种情况下,您必须将 --with-php-config=/absolute/path/to/php7-config 传递给 ./configure

【讨论】:

这是否也需要build-essential (gcc) 和/或php7-dev 包? @fideloper :我必须安装 php7.0-devlibmemcached-dev【参考方案2】:

我有同样的问题,但在 Windows 上使用 XAMPP 时。看来memcached 目前仅适用于 PHP 5+。

Windows 用户的问题是找到名为 php_memcache.dll(x86/x64 平台)。

我花了几个小时寻找解决方案,但没有找到。如何使用memcached的非常新鲜的描述在这里:

HOW TO: Install Memcache on XAMPP (Windows 7/8/10)

我们还需要等待 PHP7+ 的实现。

【讨论】:

以上是关于有没有人让 memcached 在 Laravel Homestead php7 盒子上工作?的主要内容,如果未能解决你的问题,请参考以下文章

全息透​​镜 2 |微软 - 有没有人让场景理解实时工作?

有没有人让 OQTANE 在 AWS 应用程序负载均衡器后面工作

有没有人让远程 JMX JConsole 工作?

让Laravel5支持memcache的方法

在 Laravel Elastic Beanstalk 应用程序中找不到类“Memcached”

从php laravel禁用memcached