- ベストアンサー
セッション時間の延長方法とphp.iniの設定について
- プログラム初心者の方向けに、セッション切れの時間を延長する方法をご紹介します。具体的には、自前のphp.iniファイルにsession.gc_maxlifetime = 3600と一行だけ記述するだけで設定できます。
- また、php.iniファイルのパーミッションについても解説します。php.iniファイルには重要な情報が含まれているため、他のユーザーには見えないようなパーミッションを設定することをおすすめします。
- 以上の方法を試すことで、セッション切れの時間を延長することができます。初心者の方でも簡単に設定できるので、ぜひ試してみてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
GCは、session.gc_probability / session.gc_divisor の確率で起動します。1/1000であれば、999/1000はスルーです。 というか、もし共用サーバなら session.save_path の値がどうなっているか(他のユーザと共用になっていないか)をチェックしておくべきです。これが共用になっていると自分のスクリプトだけ長く設定しても意味がありません(他のスクリプトの実行時に消されてしまう)。自分のサイトスペース内に設定してください。
その他の回答 (1)
- agunuz
- ベストアンサー率65% (288/438)
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
お礼
回答ありがとうございます 設定したとおりにうごきました。関連したsession.gc_divisorをもう少し教えてください session.gc_divisorが1000になっている場合は、1000人中999人はセッションタイムが過ぎてもログインしたままになるってことでしょうか? session.gc_divisorの数値が多いほうがサーバーに負担がかからないってことですか? htaccess使ったことないのですが負荷が高いですか?(他にhtaccessで記述していません) よろしくお願いします
お礼
回答ありがとうございます GCも理解できました。.htaccessでsession.gc_divisorを設定したらそのように動きました(一日様子見てましたがこちらで設定したLocal Valueは残っていました) このままつかえそうなんですがやはりsession.save_pathも変えたほうがいいでしょうか? session.save_pathを調べてみるとno valueになっていました(これは共有とゆうことでしょうか?)