19

この記事を読んでmemcachedをWindows7にインストールしましたが、残念ながらエラーが発生し続けます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  

更新:phpinfo(); showdllがロードされていません。これまでにいくつかの異なるdllファイルを試しましたが、機能しませんでした。また、dllは正しく配置されています。見た目どおり、正しいフォルダにあります。

(PSこのトピックについて重複の可能性があると考える人もいるかもしれませんが、同じ指示に従い、SOで同じエラーが発生したのは1人だけです。その質問には、3月以降の回答や解決策がありません。)

4

6 に答える 6

11

PHP5.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

于 2012-08-12T08:43:56.593 に答える
7

これをphp.iniに追加します。

extension="php_memcache.dll"

apacheを再起動します

于 2012-08-14T09:35:26.077 に答える
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));
}
于 2012-08-15T00:48:48.110 に答える
5

だから私は今解決策を探しました。ここでは、コンパイルされた拡張機能をダウンロードできます。

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

問題は、現時点ではPHP5.4のmemcache拡張機能がないことです。これが、拡張機能を読み込めなかった理由です。正しいPHPバージョンの拡張機能とWindows用のTeadSafeが必要です。

したがって、拡張機能が必要な場合は、PHP5.3を使用するのが最も簡単な方法です。

memcacheの最新バージョンはバージョン3.0.6ですが、ベータ版はここで確認できます。

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

ベータ版を取得して、Windowsシステムでコンパイルしてみてください。しかし、それは大変な作業です。

于 2012-08-11T16:08:19.603 に答える
0

また、apache.confファイルのどこかに別のバージョンのphpモジュールをロードする際にも問題が発生する可能性があります。重複した「LoadModulephp...」ディレクティブをチェックし、そのモジュールが正しいバージョンのapacheにコンパイルされているかどうかを確認する必要があります。単純に聞こえるかもしれませんが、1台のマシンに複数のバージョンのphpがある場合はそうではありません:)または、SElinuxの問題である可能性もあります。

于 2015-02-14T09:19:06.960 に答える
0

xamppWindowsのバージョンは32ビットです。32ビットのmemcache.dllを使用する必要があります

私はあなたに役立つだろう穴を開けます!

于 2016-10-10T08:20:11.793 に答える