找不到类'Memcache'和PHP

Mus*_*afa 19 php xampp memcached

我通过阅读Windows7上的这篇文章安装了memcached,但不幸的是我不断收到错误Fatal error: Class 'Memcache' not found in D:\xampp\htdocs\test\memcache\test.php on line 2

第2行: $memcache = new Memcache;

Win7 64,已安装Xampp.我net start "memcached Server"在命令行上使用,但它说服务已经启动.

其他一些可能有帮助的信息;

在php.ini文件中:

extension=php_memcache.dll

    [Memcache]  
    memcache.allow_failover = 1  
    memcache.max_failover_attempts=20  
    memcache.chunk_size =8192  
    memcache.default_port = 11211  
Run Code Online (Sandbox Code Playgroud)

更新:phpinfo(); show dll未加载.到目前为止尝试了几个不同的DLL文件,没有用.dll也是正确的.它似乎在正确的文件夹中.

(PS有些人可能认为这个主题可能有重复,但是只有一个人遵循相同的指示并且在SO中有相同的错误.自3月以来,这个问题没有答案或解决方案.)

Mus*_*afa 11

我找到了PHP 5.4.4的工作dll文件

我不知道他们是否稳定,但他们肯定会工作.积分转到此链接.

http://x32.elijst.nl/php_memcache-5.4-nts-vc9-x86.zip

http://x32.elijst.nl/php_memcache-5.4-vc9-x86.zip

这是2.2.5.0版本,我在编译之后注意到了(对于PHP 5.4.4).

请注意,它不是2.2.6但是有效.我也用自己的FTP镜像了它们.镜像链接:

http://mustafabugra.com/resim/php_memcache-5.4-vc9-x86.zip http://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip


Eds*_*ina 7

将其添加到您的php.ini:

extension="php_memcache.dll"
Run Code Online (Sandbox Code Playgroud)

并重新启动apache

  • 我赞成删除它.虽然,你的确切"解决方案"已经存在问题. (2认同)

Jam*_*ett 6

Memcached只使用标准的文本界面,因此可以在没有模块的情况下使用它.

// connect
$link = fsockopen($host,$port,$errno,$errst,$timeout);

// set
$data = sprintf("set %s 0 %s %s\r\n%s\r\n",
            $key,$expire,strlen($value),$value);
fwrite($link,$data);
$result = trim(fgets($link));
if ($result == 'ERROR') {
    // :(
}

// get
$data = sprintf("get %s\r\n",$key);
fwrite($link,$data);
$line = rtrim(fgets($link)); 
if ($line != 'END') {
    return rtrim(fgets($link));
}
Run Code Online (Sandbox Code Playgroud)


Ren*_*hle 5

所以我现在正在寻找解决方案。在这里你可以下载一些编译好的扩展。

http://downloads.php.net/pierre/

问题是目前PHP 5.4没有 memcache 扩展。这就是无法加载您的扩展程序的问题。您需要正确 PHP 版本的扩展程序和适用于 Windows 的 Tead Safe。

因此,如果您需要扩展,最简单的方法是使用PHP 5.3

内存缓存的最新版本是3.0.6版,但它是测试版,您可以在此处查看。

http://pecl.php.net/package/memcache

您可以尝试使用测试版并使用您的 Windows 系统进行编译。但它的工作量很大。