質問: Sessionの保存パスと言うのはサーバー側の設定なのでしょうか。 先程まで、下層ディレクトリに保存したファイルでSessionが取得出来ないと言うことがあり、 悩みに悩んだ末、上層ディレクトリでのsave_pathは no value つまりサーバールート(/)だったのに対し、下層ディレクトリでは /var/tmp と設定されていました。 私の方では特に設定した覚えはありません。 PHPのほうで全ページに session_save_path で /var/tmp を設定したところうまくセッションが繋がりました。 ここで質問なのですが、サーバーのほうでドキュメントルートとその1階層下のディレクトリとでセッションの保存パスが違うなんてことは普通なのでしょうか? session_save_path で毎回きちんと設定しないといけないものなのでしょうか。
回答: セッションの保存先は以下のような優先度で与えられます.no valueはサーバールートを表すわけではありません. 1. php.ini の session.save_path (`session_save_path`関数で取得および変更可能) 2. php.ini の sys_temp_dir (`sys_get_temp_dir`関数で取得および変更可能) (PHP5.5以降) 3. システムから与えられた既定値 それにしても,挙動は大変不可解で,.htaccessぐらいしか疑うものがないのも事実です...