2011-01-12 1 views
0
  • Ubuntuの 10.10
  • のApache 2.2.17
  • PHP 5.3.4
  • APC 3.1.6
  • Memcacheの 3.0。 5

コード:(ちょうどApacheの再起動後に3つの連続リフレッシュに、)このページはなぜ3回ロードされますか? (これは設定ミスか?)

<?php 
$cache = new Memcache(); 
$cache->connect('localhost', 11211); 

$num = 1; 

if (($a = $cache->get('key')) !== false) $num = $a; 
$num += 1; 
$cache->set('key', $num); 

echo $num; 

出力:その後、その後、

2 

5 

8 

質問:なぜ?私は期待している。234。最初のページはチェックアウトされているようですが、後続のページの読み込みは、実際に追加している数より常に3倍大きくなります。私は

$num += 10; 

を書く言い換えれば、その後の数字は714111を出てきます。私は間違って何をしていますか? APCまたはMemcacheを誤って構成しましたか?私はかなり確かですAPC問題ですが、私は問題が何だったのか分かっていたら私は尋ねていません!

更新:この場合、Apacheのaccess_logには、ページロードごとに異なる3つのリクエストが表示されます。

+0

デバッグのヒント - httpアクセスログをチェックするか、いくつかを作ってください – goat

+0

apache error_logには情報がなく、PHPは最高レベルのデバッグ出力に設定されています。 –

+0

error_logではなく、access_logをチェックします - いくつのリクエストがありますか? – StasM

答えて

1

どのような方法でリクエストしていますか? Firebugのようなfirefoxプラグインの中には、何らかの理由でページが複数回読み込まれることがあることがあります。他のブラウザを使って試してみる価値はあるかもしれませんし、単純にwgetやcurlでリクエストを作成しても、同じ結果が得られるかどうかは分かりません。

+0

よろしくお願いします。私はFirefoxとChromeの両方でテストしましたが、それぞれにプラグインがインストールされています。ちょうど安全のため、私はワークステーションにいるとすぐにCLIからcURLリクエストを試み、何が得られるかを見ていきます。 –

+0

cURL要求は、期待される出力と単一のaccess_log行のみを生成します。 –

+0

その事実を論理的な結論に至り、私はすべてのブラウザ拡張を無効にし、正常な動作を見た。1つずつ私はそれらを元に戻しました。 2つの拡張機能が1ページ余分にページを取得する責任があることが分かります。 –

関連する問題