最近、Linuxサーバーで管理しているいくつかのWebサイトで、予想よりも早くログアウトされています。問題は数ヶ月前に自然に始まりました。当時、私はウェブサイトのコードやCPanelの設定を最近変更していませんでした。私のCPanel設定では常に約18時間ログインしたままであったため、必要はありませんでした。しかし、今はたった30分間操作しないとログアウトします。数か月前まで確実に機能していたCPanel設定を次に示します。
session.cookie_lifetime 0
session.gc_maxlifetime 65535
トラブルシューティングのために、htaccessファイルの同等の設定も試しました。
php_value session.cookie_lifetime 0
php_value session.gc_maxlifetime 65535
(65535秒は約18時間に相当します。)
3つの異なるPHPフォームでこの問題をテストしました。まず、ユーザー名とパスワードでログインします。その後、F5を押して30分以内に更新すると、まだログインしています。しかし、ページを更新する前に30分以上待機すると、ログアウトしていることがわかります。また、同じWebホストが提供する2つの異なるサーバーを試しましたが、問題は残ります。
共有CentOSサーバーを使用していますが、php.iniファイルにアクセスできません。CPanelおよび.htaccess
ファイルのみにアクセスできます。
この問題は、最近のLinux/CentOSの更新が原因であると思われますが、インターネット上で同様の苦情は見られません。だから、それは単なる私のウェブホストなのだろうか。 (それ以外は非常に信頼性があります。)
誰もこの問題に遭遇しましたか? Linux/CentOSのバグですか?修正はありますか?または、別のWebホストに移動する必要がありますか?
トラブルシューティングのヘルプをありがとう。一時的なセッションデータを保存するためのカスタムフォルダーを指定することで、問題を解決しました。方法は次のとおりです。
セッションデータファイルが現在保存されているフォルダーを探します。私の場合、フォルダーはtmpと呼ばれていました。フォルダー名と場所は、Linuxのバージョンとセットアップ方法によって異なります。
Tmpフォルダーと同じフォルダーに(withintmpフォルダーではない)新しいフォルダーを作成します。
CPanel(phpバージョン/ PHP Selector | options)で、session.save_pathの値として新しいフォルダーへのフルパスを指定します。アクセスできる場合は、php.iniファイルでこれを行うこともできます。
さらに情報が必要な場合は、次のリンクが役立つ場合があります。
https://security.stackexchange.com/questions/19053/where-and-how-is-data-stored-in-a-session
https://stackoverflow.com/questions/4927850/location-for-session-files-in-Apache-php
https://docs.cloudlinux.com/index.html?tmp_directories.html (CloudLinuxドキュメント:Tmpディレクトリ)
これが将来同じ問題に遭遇した人に役立つことを願っています。