web-dev-qa-db-ja.com

クラス 'Memcache'が見つかりません&PHP

Windows 7で この記事 を読んで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  

更新:phpinfo(); show dllがロードされていません。これまでにいくつかの異なるdllファイルを試しましたが、機能しませんでした。また、dllは正しい場所にあります。どうやらそれは正しいフォルダにあります。

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

19
Mustafa

PHP 5.4.4

どれほど安定しているかはわかりませんが、確実に機能します。クレジットは このリンク に送られます。

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.Ziphttp://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86。ジップ

11
Mustafa

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

extension="php_memcache.dll"

そしてApacheを再起動します

7
Edson Medina

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));
}
6
James Hackett

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

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

問題は、現時点ではPHP 5.4のmemcache拡張機能がないことです。これが、拡張機能を読み込めない問題です。正しいPHP=バージョンとTead Safe for Windowsの拡張機能が必要です。

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

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

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

あなたはあなたのWindowsシステムでベータ版と コンパイル それを試すことができます。しかし、それは多くの作業です。

4
René Höhle

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

0

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

私はあなたに役立つだろう穴!

0
Shaun.lan