【问题标题】:How to install PHP 7 extension "memcache" on Windows如何在 Windows 上安装 PHP 7 扩展“memcache”
【发布时间】:2016-12-30 15:04:06
【问题描述】:

我在为 php 安装 memcached 扩展时遇到了很大的问题。

目前使用:

操作系统:Windows 10 x64
PHP:7.0.1 通过 XAMPP
阿帕奇:2.4.18 (Win32)

我已经成功安装memcached在C:/memcached服务正在运行。

但是当尝试添加 memcache php 扩展时问题就开始了。我已经尝试了许多版本的php_memcache.dll 并且似乎没有工作。
我确实在 php.ini 中包含了扩展 extension=php_memcache.dll

当我运行 php -m 时,内存缓存未列出,在顶部我收到错误:

PHP 启动:无法加载动态库 'C:\xampp\php\ext\php_memcache.dll'
- 找不到指定的模块。

当我尝试为 memcache 初始化运行 test.php 时,我收到了 Class not found exception

这是一个大问题,因为我需要它来运行 selenium 测试。

【问题讨论】:

  • 您是否检查了该路径以确保文件存在?因为 PHP 说它没有
  • @Spartan 感谢您的回复,该链接似乎很有用。但是请您给我指点(这是我第一次添加扩展名)。我应该只在php/ext 中添加.dll 文件并在php.in 中添加该行吗?我做到了,但问题仍然存在。
  • 感谢@Sherif,是的,不幸的是,这产生了巨大的影响。
  • memcached with a D over here: stackoverflow.com/questions/4396321/…

标签: php windows memcached php-extension php-7


【解决方案1】:

memcached 服务实际上并没有为您安装 PHP memcached 扩展。它只安装用于存储缓存的 memcached 服务器。

您需要先下载Windows DLL from the PECL repository单击蓝色的 Windows DLL 链接)。然后,您必须将extension=php_memcache.dll 行添加到您的 SAPI 的正确 php.ini 文件中。另外,请注意扩展 DLL 文件需要放置在 XAMPP 安装的正确路径中。

对于 Apache,只需在文档根目录中使用 <?php phpinfo(); 行创建一个脚本,然后尝试将其加载到 Web 浏览器中。您应该会在顶部看到标有 Loaded configuration (php.ini) 的一行,它为您提供了已加载 php.ini 文件的完整路径。在 Windows 上,如果您通过 XAMPP 之类的方式安装 PHP,则路径实际上可能与 phpinfo() 中所述的不同。所以你可能需要依靠 XAMPP 来定位正确的 php.ini 文件。

对于 CLI SAPI,您可以使用 php.exe --ini 来执行相同的操作。同样,如果 XAMPP 包修改了您的配置路径,您可能需要依赖它(因为这是一个编译时指令)。

对 php.ini 进行更改后,您需要重新启动 PHP 才能使更改生效。


由于您在 Windows 上使用 PHP 7,因此可能还需要注意的是,从 PECL 编译的 DLL 实际上可能无法在 Windows 的 apache 下工作,因为您很可能使用的是带螺纹的 SAPI。因此,请确保您下载的是正确的版本。据我所知,该版本仅编译为可与 PHP 5.6 一起使用。如 cmets 中所述,用于 PHP 7 的 github 替代方案在 https://github.com/nono303/PHP7-memcahe-dll 可用,已在非线程安全下进行测试。因此,您可能只能在 Windows 上为您的 CLI 脚本使用此功能。

【讨论】:

  • 非常感谢您抽出宝贵时间撰写如此详细的回复。是的,我知道它没有,我尝试下载他们在 PECL 提供的每个 .dll 文件,但无济于事。正如指南所指出的,extension=php_memcache.dll 已添加到我的 php.ini 中。 dll文件与其他C:\xampp\php\ext一起放置。但 STILL memcache 不在 phpinfo()php -m 列表中。 php -m 列表仍然给出上述错误。 + 进行更改后,我确实重新启动了 Apache
  • 啊,我还没有尝试过该存储库中的所有 dll-s... x86 ts 成功了。非常感谢@Sherif :]
  • 太好了,很高兴知道它有效。尝试错误的版本通常是人们在 Windows 上遇到此问题时最常见的错误之一。
  • 这是给memcache而不是memcached
猜你喜欢
  • 2011-03-03
  • 2016-09-29
  • 2012-07-02
  • 2016-03-14
  • 2010-09-20
  • 2018-09-25
  • 2019-02-14
相关资源
最近更新 更多