81

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
memcachedsupport=>有効な
libmemcachedバージョン=>0.37
登録された保存ハンドラー=>ファイルusersqlitememcached

php -m | grep -i memcache
memcached

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

4

6 に答える 6

138

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

一方 (「memcache」) を使用しようとしているようですが、もう一方 (「memcached」) がインストールされています。

于 2010-04-17T16:15:18.870 に答える
23

受け入れられた回答がコメントで述べていることに反して、「Memcache」をインストールする正しい方法は次のとおりです。

sudo apt-get install php5-memcache

メモMemcache と Memcached は、関連性はあるものの 2 つの異なるソフトウェアであり、混同されることがよくあります。

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

于 2015-06-23T18:36:41.643 に答える
0

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

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

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

于 2010-12-27T22:12:44.113 に答える