2016-08-23 87 views
2

我在安装php的memcached扩展时遇到了很大的问题。如何在Windows上安装PHP 7扩展“memcached”

目前正在使用:

操作系统:Windows 10的x64
PHP:7.0.1通过XAMPP
的Apache:2.4.18的(Win32)

我已经成功地安装在C:/memcached分布式缓存服务正在运行。

但是,当试图添加memcache php扩展时,问题就开始了。我已经尝试了php_memcache.dll的许多版本,而且似乎没有工作。
我没有包括在php.iniextension=php_memcache.dll

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

PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_memcache.dll'
- The specified module could not be found.

,当我尝试运行测试。 PHP的memcache初始化我recive Class not found exception

这是一个巨大的问题,因为我需要它运行硒测试。

+1

您是否检查该路径以确保该文件存在?因为PHP说它不是 – Machavity

+1

https://github.com/nono303/PHP7-memcahe-dll –

+0

@Spartan谢谢你的回复,该链接似乎非常有用。但请你能给我指点(这是我第一次添加扩展名)。我是否应该在'php/ext'中添加.dll文件并将其添加到'php.in'中?我做到了,问题依然存在。 – Mihailo

回答

4

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浏览器中。您应该在顶部标有加载的配置(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可能无法在Apache实际工作的Windows,因为你很可能使用theaded SAPI多。所以确保你正在下载正确的版本。据我所知,该版本只能编译到PHP 5.6以上。在评论中提到的github替代方案,对于PHP 7,在https://github.com/nono303/PHP7-memcahe-dll处可用,在非线程安全下进行测试。所以你可能只能在Windows上为你的CLI脚本工作。

+0

非常感谢您花时间撰写这样详细的回复。是的,我知道它没有,我试图下载他们在PECL提供的每一个.dll文件,但无济于事。正如指南指出的那样,'extension = php_memcache.dll'已经添加到我的* php.ini *中。和该DLL文件一起放置其他'C:\ xampp \ php \ ext'。但是STILL memcache不在'phpinfo()'或'php -m'列表中。 'php -m'列表仍然给出了提到的错误。 +在进行更改后,我确实重新启动了* Apache *。 – Mihailo

+1

Ahhh我还没有尝试过所有的dll-s从这个仓库... ** x86 ts **做了诡计。非常感谢@Sherif:] – Mihailo

+0

太棒了,很高兴知道它的工作。尝试错误的版本通常是人们在Windows上遇到的最常见错误之一。 – Sherif