• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セッション時間について)

セッション時間の延長方法とphp.iniの設定について

このQ&Aのポイント
  • プログラム初心者の方向けに、セッション切れの時間を延長する方法をご紹介します。具体的には、自前のphp.iniファイルにsession.gc_maxlifetime = 3600と一行だけ記述するだけで設定できます。
  • また、php.iniファイルのパーミッションについても解説します。php.iniファイルには重要な情報が含まれているため、他のユーザーには見えないようなパーミッションを設定することをおすすめします。
  • 以上の方法を試すことで、セッション切れの時間を延長することができます。初心者の方でも簡単に設定できるので、ぜひ試してみてください。

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

GCは、session.gc_probability / session.gc_divisor の確率で起動します。1/1000であれば、999/1000はスルーです。 というか、もし共用サーバなら session.save_path の値がどうなっているか(他のユーザと共用になっていないか)をチェックしておくべきです。これが共用になっていると自分のスクリプトだけ長く設定しても意味がありません(他のスクリプトの実行時に消されてしまう)。自分のサイトスペース内に設定してください。

flash0
質問者

お礼

回答ありがとうございます GCも理解できました。.htaccessでsession.gc_divisorを設定したらそのように動きました(一日様子見てましたがこちらで設定したLocal Valueは残っていました) このままつかえそうなんですがやはりsession.save_pathも変えたほうがいいでしょうか? session.save_pathを調べてみるとno valueになっていました(これは共有とゆうことでしょうか?)

その他の回答 (1)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

session.gc_maxlifetime は PNP_INI_ALL ですから、まずは .htaccess で設定して試すことをお勧めします(.htaccessなので、記述は php_value session.gc_maxlifetime 3600 )。 http://www.php.net/manual/ja/session.configuration.php#ini.session.gc-maxlifetime http://www.php.net/manual/ja/configuration.changes.modes.php

flash0
質問者

お礼

回答ありがとうございます 設定したとおりにうごきました。関連したsession.gc_divisorをもう少し教えてください session.gc_divisorが1000になっている場合は、1000人中999人はセッションタイムが過ぎてもログインしたままになるってことでしょうか? session.gc_divisorの数値が多いほうがサーバーに負担がかからないってことですか? htaccess使ったことないのですが負荷が高いですか?(他にhtaccessで記述していません) よろしくお願いします

関連するQ&A