2

セットアップ: アパッチ; PHP 5.2.9; libevent (memcached の場合は必須) バージョン 1.3; memcached サーバー バージョン 1.2.2 (1.4.5、1.4.0 を試し、現在は 1.2.2 にダウングレード、違いなし); memcached php pecl モジュール バージョン 2.2.6。

問題:

未解決の問題と同様に、memcacheに値を保存できず、非常に奇妙な PHP エラーが発生します

これらのスレッドはどれも問題を解決しておらず、質問の作成者はいずれも与えられた推奨事項に従いませんでした。私はそれらすべてに従いましたが、それでも機能しません。

MemcachePHP経由で接続している場合、コードはエラーを表示しませんが、コマンド( などgetVersion)を実行しようとするとすぐに、次の応答が返されます。

Notice: memcache_get_version() [function.memcache-get-version]: Server 127.0.0.1 (tcp 11211) failed with: Failed reading line from stream (0) in /var/www/html/memcache.php on line 11

試した解決策:

コマンド ライン経由での memcache への接続が機能していません。コマンドを入力すると、接続が閉じます。

[/usr/local/src]$ telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats
Connection closed by foreign host.

$ memcached -Smemcached が SASL サポートを無効にしてコンパイルされていることを確認しようとしました。応答: 「このサーバーは SASL をサポートするように構築されていません。」

また、コメントの一つに

次のように、ASCII プロトコルをサポートせずに memcached を実行している可能性があります。

 $ memcached -B binary

この場合、-B引数を完全に削除すると、PHP と telnet が機能するはずです。

memcache の開始行は次のとおりです。

memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211

その中に B 引数はありません。

何か案は?

4

2 に答える 2

6

誰にとって、それは興味深いかもしれません。

問題は解決された。

ここに問題がありました(おそらく、2つの関連するトレッドの作成者に役立つでしょう)。

共有ホスティングでは、127.0.0.1 を使用しない方がよい場合があります。代わりに、サイトの IP アドレスを使用してください。

とても変化しています

memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211

memcached -d -m 1024 -u root -l 123.456.789.123 -p 11211

からのPHPコード

$memcache->pconnect("127.0.0.1",11211);

$memcache->pconnect("123.456.789.123",11211);

問題を修正しました。

みんな、ありがとう!

于 2011-05-25T08:44:03.523 に答える
0

私はあなたのsys sadminと話します。ファイアウォールが関係している可能性があると思います。

于 2011-05-22T20:10:56.093 に答える