ホームページ  >  記事  >  バックエンド開発  >  PHPのセッションファイルが多すぎる問題については、_PHPチュートリアル

PHPのセッションファイルが多すぎる問題については、_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:56:57971ブラウズ

PHP のセッション ファイルが多すぎる問題については、

PHP のデフォルトのメカニズム: すべての PHP リクエストに対して、「セッションのリサイクル」がトリガーされる確率は 1/100 (デフォルト値) です。 「セッションのリサイクル」が発生した場合、/tmp/sess_* ファイルがチェックされ、最終変更時間が 1440 秒 (gc_maxlifetime の値) を超えた場合、これらのセッションは期限切れになったことを意味します。

1.セッションファイルとは

ファイルは通常 /tmp/sessions/sess_4b1e384ad74619bd212e236e52a5a174If です

リーリー

2. セッションのリサイクルはいつ行われますか?

デフォルトでは、すべての PHP リクエストに対して 1/100 の確率でリサイクルが行われるため、単純に「100 個の PHP リクエストごとに 1 回のリサイクルが発生する」と理解できます。この確率は次のパラメータによって制御されます

リーリー

    この場合、gc_maxlifetime=120 と仮定します。セッション ファイルが最後に変更されたのが 120 秒前であれば、セッションは次のリサイクル (1/100 の確率) が発生するまで有効です。
  • セッションが session.save_path を使用してセッションを別の場所に保存する場合、セッションリサイクルメカニズムは期限切れのセッションファイルを自動的に処理しない可能性があります。現時点では、期限切れのセッションを定期的に手動 (または crontab) で削除する必要があります
  • 3. セッション保存ディレクトリを設定します

php5-fpm を使用する場合は、

を変更し、次の行を変更または追加します:

リーリー /etc/php5/fpm/php.ini4. セッションクリアスクリプト

リーリー

ここで session.gc_maxlifetime を通じて時間を取得できます。

それをスケジュールされたタスク (crontab) に入れるだけです

その他の方法

    memcacheなどを利用する(session.save_handler = memcache)
  • Cookieを使用しますが、Cookieは暗号化する必要があります
  • 5. tmfs を使用してセッションを保存する

1. /tmp を tmpfs ファイルシステムとしてマウントします

/etc/fstab を変更し、次の内容を最後の行に追加します: /tmp/sessions tmpfs defaults,size=5120m 0 0

リーリー

2.セッション保存フォルダーを作成します

php はこれらのフォルダーを自動的に作成しませんが、フォルダーを作成するためのスクリプトがソース ファイルで提供されています。以下のスクリプトも使いやすいです スクリプトの内容は以下の通りです

リーリー

/tmp/sessions はメモリに使用されるため、サーバーの再起動後にその中のファイルはすべて失われます。そのため、php を起動する前に、上記のスクリプトを /etc/rc.local に追加して配置する必要があります。

3. セッションを別のディレクトリに保存する

php 自体は、セッションのマルチレベルのハッシュをサポートしています。php.ini で、;session.save_path = /tmp を

に変更します。 リーリー

4. セッションのリサイクル

上記のスクリプトを使用するだけです

http://www.bkjia.com/PHPjc/1110329.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/1110329.html技術記事 PHP のセッション ファイルが多すぎる問題については、PHP のデフォルトのメカニズムにより、PHP リクエストごとに 1/100 の確率 (デフォルト値) でセッションのリサイクルがトリガーされます。セッションのリサイクルが発生した場合はチェックされます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。