ユーザーがPHP Webサイトにログインしています> Apacheを再起動します>ユーザーは再度ログインする必要があります。
これを防ぐには?(ユーザーに再度ログインする必要はありません)
ユーザーがPHP Webサイトにログインしています> Apacheを再起動します>ユーザーは再度ログインする必要があります。
これを防ぐには?(ユーザーに再度ログインする必要はありません)
回答:
バックアップとして別の場所にセッショントークンを保存すると、この問題を防ぐことができます。主な情報は引き続きに保持できます$_SESSION
が、バックアップトークンは次の場所に保持します。
このStackOverflowの質問でいくつかの助けが見つかるかもしれません。php でのセッションタイムアウトと永続的ログインのベストプラクティス。
セッションデータがメモリに保存され、ディスクにバックアップされていない(ファイルシステムまたはデータベースによって)場合を除いて、 Apacheがシャットダウンまたは再起動されたからといって、セッションデータが失われることはありません。それ以外の場合は、サーバー全体を再起動してもセッションは維持されます。セッションデータは、長期間保存されるように設計されています。セッションが失われるのは、次の場合のみです。
SIDは失われます。セッションデータは引き続きサーバー側に存在しますが、クライアントはSIDを回復できないため、同じセッションを再開できません。これは、SID Cookieが期限切れ(Cookieの場合)、またはセッションリンクが失われた場合(SIDがURLパラメーターの場合)、またはSIDがサーバー側で設定されていないか、クライアントに通知せずに変更された場合に発生します。
セッションデータはサーバー側で削除されます。これは通常、PHPセッションガベージコレクターが実行され、セッションファイルがsession.gc_maxlifetime(デフォルトでは24分)より古いことを確認したときに発生します。そうしないと、アプリケーションが明示的にセッションを削除した場合に発生する可能性があります。一部のサーバーでは、管理者が古いジョブデータを定期的に消去するようにcronjobを構成している場合もあります。
Apacheで正しい引数を使用することで可能になりました:
apache2ctl -k graceful
Apacheは現在のセッションを失うことなく再起動します。