web-dev-qa-db-ja.com

PHP memcached致命的エラー:クラス 'Memcache'が見つかりません

Phpでmemcachedを使用するための php.net の例を貼り付けました。

Fatal error: Class 'Memcache' not found

私はphp.iniにこれを持っています:

[memcache]
memcache.hash_strategy = "consistent"
memcache.max_failover_attemps = 100
memcache.allow_failover = 1

それぞれphp -iとphp -mからの情報は次のとおりです。

php -i | grep -i memcache
memcached
memcachedサポート=>有効
libmemcachedバージョン=> 0.37
登録済み保存ハンドラー=>ファイルユーザーsqlite memcached

php -m | grep -i memcache
memcached

したがって、phpはmemcachedをモジュールとしてロードしたように見え、php infoはそれがロードされ、v .37を使用していると言います。私はまだApache経由で試したことはありません。今はcli経由でしか使っていません。何かご意見は?

77
jpfuentes2

PHPのmemcachedには、「 memcache 」と「 memcached 」の2つの拡張機能があります。

1つ( "memcache")を使用しようとしているように見えますが、もう1つはインストールされています( "memcached")。

122
Charles

受け入れられた答えがコメントで言っていることを否定して、「Memcache」をインストールする正しい方法は次のとおりです。

Sudo apt-get install php5-memcache

NOTE MemcacheとMemcachedは2つの異なるソフトウェアですが、関連するソフトウェアであり、しばしば混同されます。

EDITこれは古い投稿なので、php5をphpのバージョン番号に置き換える必要があることに言及する価値があると思いました。

21
Phill Healey

この投稿で解決策を見つけました: https://stackoverflow.com/questions/11883378/class-memcache-not-found-php#=

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

1
Xman Classical

権利はphp_memcache.dllです。私の場合、vc6コンパイラの代わりにvc9でコンパイルされたlibを使用していました。 apatcheエラーログには次のようなものがあります:

PHPスタートアップ:sqlanywhere:モジュールを初期化できませんビルドID = API20090626、TS、VC9でコンパイルされたモジュールPHPビルドID = API20090626、TS、VC6でコンパイルされたこれらのオプションは一致する必要があります

同じログがあるかどうかを確認し、異なるコンパイラでコンパイルされた異なるdllをダウンロードしてみてください。

0

OSXユーザーの場合:

次のコマンドを実行して、Memcachedをインストールします。

brew install memcached
0
Maihan Nijat