私の問題は、php.iniを変更せずに、php.ini内のデフォルト設定よりもセッションデータの寿命を延ばす必要があることですぐに説明されます。インストールごとにスクリプトを変更する必要がないように、サーバープラットフォーム全体でさまざまな php セットアップに適用できるソリューションを探しています。
サーバーのデフォルトを変更したくないので、スクリプトでできるだけ独立したままにしたいので、ガベージコレクターがセッションデータを時期尚早に破棄するように設定されているデフォルトの 1440 秒を超える方法を探しています。一部のサーバーでは GC が php の設定の影響を受けずに実行され、ここで説明されているように 24 分後にセッションが削除されるため、単純ini_set('session.gc_maxlifetime',36000);
に 10 時間に設定しても機能しません。この問題を回避するために、作成者は、session.save_path を OS の gc の影響を受けない別のフォルダーに変更し、それによって設定された session.gc_maxlifetime を設定に適用することを提案しています。残念ながら、php の tmp スペース内に一時フォルダーを作成できませんでした。作成したいのですが、ほとんどのサーバーで 0600 アクセス権がないため、作成できないようです。
解決策の 1 つは、セッション データを共有ホスト フォルダーに作成された自分のフォルダーにリンクすることですが、このフォルダーをオンラインで使用できるようにする必要があるため、ID の盗難にさらされる可能性があるため、安全ではないようです。それが事実かどうかはわかりませんが。
別の解決策は$_SESSION["stayalaive"]=time();
、gc が特定の時間だけセッションをログイン スクリプトに削除し、ログイン スクリプトが呼び出されるたびにセッションが延長されるようにすることです。つまり、ユーザーが 24 分間何もクリックしない場合、セッションはとにかく削除されますが、これは私が一緒に暮らすことができるものですが、不要と思われる別のプロセスを実行しているようです.
したがって、私の質問は、パフォーマンスを上げすぎずに、セッション データを 10 時間維持するように設定する方法です。