[PHP-users 30515] Re: session_start()から先に進まない

Reiji Matsumoto matsumoto @ spline.oc.to
2006年 10月 14日 (土) 17:23:55 JST


こんにちは。松本です。

> のように異なるプロセスが同セッションファイルを取
>り合う(?)ことがあるのは間違いないのですが、これは
>問題の「切っ掛け」ではないような気がしました。
> というのは、「"セッションファイルとして存在しない
>"セッションIDを持っている」状況を今確認したからです。
> /private/tmp/sess_* が幾つか存在したのですが、Cookie
>で確認したセッションIDを持つファイルがありませんでした。

この事は、

> いま気になったのは、開発環境と本番環境を分けていることです。
> 2台のマシンへポートを変えて同URLでアクセス、
>  http://example.co.jp:80 → 本番環境マシン:80
>  http://example.co.jp:8080 → 開発環境マシン:80 へフォワード
>

これが原因だと思います。ポートが違うだけでは同一セッション
が利用されるからです。
ですのでテストサーバーのセッションIDが本番サーバーに送られ
てしまったり、その逆が行われていると思います。
テスト環境としてあまり良くないと思いますので、可能なら
本番とテストでドメインが違っている方が良いです。
難しいようでしたらIEの同一ウィンドウで、本番とテストの両方
にアクセスする事が無いように注意しながら実験してみて下さい。

> > 動作試験用にアクセスしたIPアドレスでApacheのログを
> > grepすると、どうなるでしょうか。
> Apacheログについては、アクセスログ、エラーログ共に、この問
>題については一切のロギングはされていません。
エラーの有無では無く、単純にどのスクリプトがどのような順番で、
どのぐらい間隔を置いてリクエストされているかを見てみたい所です。

Smartyで動的にJavaScriptを生成しているそうですが、そのJavaScript
を出力する時にもsession_start()は行っていますか?
だとしたら、そこで引っ掛かっているのかもしれませんね。




PHP-users メーリングリストの案内