セッション保存先は指定しておくべき

この記事は約2分で読めます。
スポンサーリンク

PHPで、ログイン情報などのセッションを扱う際は、データがサーバー上に保存され、指定されている時間でセッションデータを定期的に削除する。

1サーバーに1コンテンツならそこまで大きなことにならないですが、
バーチャルホストなどで複数WEBサイトがあり、セッションを利用するコンテンツを運用していると詰まる部分がある。

例えば、なぜか頻繁にログインセッションが切れてしまうという現象が起きる。
これは、それぞれのセッション保存先のパスが同じで、セッションの有効期限が異なっていると発生する。
それぞれのコンテンツごとにセッションの保存先パスを指定してあげることでこの現象は回避ができる。

PHPファイルの中や、php.iniなどで設定ができる。それぞれ書き方が少し違うため注意

.htaccessの場合は以下のように記載

php_value session.save_path “保存先パス”
php_value session.gc_maxlifetime 86400
php_value session.cookie_lifetime 0

save_pathが保存先
gc_maxlifetime がサーバーでセッションデータを保存しておく有効期限
なお、この有効期限が切れても他の記述でランダムで削除するというパラメーターが用意されていて、この有効期限値+そのランダムで削除するかしないかが決まる。これも必要があれば変更ができる。
cookie_lifetimeがブラウザでどれだけcookieの有効期限を指定するか
これが0だとブラウザを閉じたらcookieを消すとなり、再度セッションが新しく保存されるとなる。

コメント

タイトルとURLをコピーしました