web-dev-qa-db-ja.com

すぐにログアウトしました。 PHPセッションはすぐに期限切れになります。これはLinux、CentOS、Cookie、CPanelの問題ですか?

最近、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ホストに移動する必要がありますか?

2
Photon

トラブルシューティングのヘルプをありがとう。一時的なセッションデータを保存するためのカスタムフォルダーを指定することで、問題を解決しました。方法は次のとおりです。

  1. セッションデータファイルが現在保存されているフォルダーを探します。私の場合、フォルダーはtmpと呼ばれていました。フォルダー名と場所は、Linuxのバージョンとセットアップ方法によって異なります。

  2. Tmpフォルダーと同じフォルダーに(withintmpフォルダーではない)新しいフォルダーを作成します。

  3. 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ディレクトリ)

これが将来同じ問題に遭遇した人に役立つことを願っています。

1
Photon