• ベストアンサー

【PHP】変数のキャッシュをクリアしたい【VPS】

さくらのVPSを複数契約したところ、 仮想化されて別アカウントになってはいるものの、 別IP別アカウントにも関わらず、 サーバ上に何らかの形でキャッシュされた同じ変数結果を読み込んでしまい困っております。 例えば、 $x1=rand(1,100); $y1=rand(1,100); のようにランダマイズしたい箇所で、 $x1→77 $y1→33 と一度表示すると、 同一物理サーバ内に格納された別アカウント別IPのサイトに同時アクセスした際に、 同じように $x1→77 $y1→33 と出力してしまうのです。 また、同時アクセスに限らず、 数分後まで同じキャッシュされた変数を何度も読むようです。 php.iniで、設定箇所を探す等したのですが特定できず、 投稿した次第です。 ちなみに、unset(); では直りませんでした。 お知恵を頂ければ幸いです。 何卒宜しくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

・srandを使ってますか? → 使っているなら、srandに与える種が数分単位でしか変化しないものとかはないでしょうか? randやmt_randは疑似乱数と言って、実際には計算から求めた値で、srandに指定する値が同じだと、同じ乱数列になります

php_cache
質問者

お礼

回答ありがとうございます。そしてなんという素早いレスポンス。。素晴らしい。素晴らしすぎます(感動) srandにつきましては、使っておりません。 問題の焦点は、独立しているはずのVPS環境で、何故他の仮想サーバの変数の影響を受けてしまうのか? というところにあるように思います。 質問の現象、仮説が正しければ、 赤の他人と同じ変数名を使ったら干渉する といったおかしな現象も起きかねません。 私がずれているのか、 クリーンインストールされたCentOS 6 x86_64(64bit版)に何かキャッシュシステムの設定があるのか。。 root権限付きVPSで、OSがインストールされた初期状態のため、 変な設定はされていないとは思うのですが、 いずれにしても、物理サーバの何処かに何らかの形で一定秒数、PHPの変数をキャッシュを格納する設定箇所(php.ini、httpd.confなど)が、思い当たるようであれば是非ともご教授頂ければ幸いでございます。 アカウントやOSをまたいで干渉している(ように見えてしまっている。そんな事起きるはずがない。。。)ので、きっと私が寝ぼけているだけだとは思います。 ピシャリと、『SAKURAに聞いてみてください』と言って頂けるだけでも嬉しゅうございます。 何卒宜しくお願い申し上げます。

関連するQ&A