他の場所で質問された場合は申し訳ありませんが、答えが見つかりません。
私は最近、初めてセッション変数を多用したサイトを作成しました。PHPセッション構成を調整する必要がなかったため、これまでわざわざ調整したことはありませんでした。セッション変数は希望どおりに機能しました。このサイトでは、セッションの存続期間を制御したかったので、調整する必要がありましたgc_maxlifetime
。0やオフの設定がないようですので、PHPスクリプトを使用して有効期限を制御する目的で31536000(365日)に設定しました。
gc_maxlifetime
ホストが許可しているローカルのphp.iniファイルを介して設定しています。設定されていない場合は機能しないように見えるので、私もsave_path
このファイルを介して設定しています。gc_maxlifetime
これは、save_path
値がない場合、すべてのユーザーのデフォルト/tmp
フォルダー(これは共有サーバー)が使用されるため、すべてのユーザーの有効期間を調整できないためだと思います。
そして、これはすべてうまく機能しているように見えました。メインサイト用とCMS用の2つの保存場所が/absolute/hosting/path/tmp/session
あり/absolute/hosting/path/tmp/session/admin
、phpinfoは正しい値を示し、関連するフォルダーを見ると、一連のセッションファイルが見つかりました。ただし、1〜2週間後(正確な期間はわかりません)、サイトのセッション機能が完全に機能しなくなりました。新しいセッションはまったく作成されていませんでした。これを修正するためにsave_path
、php.iniファイルからを削除することにしましたが、現在、セッションはデフォルトの24分しか続きません。
私の最初の考えは、フォルダ内にファイルまたはフォルダのサイズ制限があるかもしれないという/tmp
ことでしたが、それを変更する方法がわかりません(おそらく、ホスティング会社が変更する必要があるのはApacheのものでしょう)、とにかく意味がありません。ファイルは小さく(1997ファイル、メインサイトで17KB、41ファイル、CMSで9KB)、CMSはメインサイトから1週間ほど前に動作し続けました。同じように失敗します。
誰かがこれの原因が何であるかについて何か考えを持っていますか?