ホームページ >バックエンド開発 >PHPチュートリアル >PHP セッション構成の詳細 (php.ini) チュートリアル_PHP チュートリアル

PHP セッション構成の詳細 (php.ini) チュートリアル_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:47:411921ブラウズ

PHP では、php.ini でセッション構成を直接設定できます。次に、php.ini でセッションを具体的に構成するための参考手順をいくつか紹介します。


php.ini でのセッション設定手順

セッションを実行できるようにするために必要な構成手順を以下に紹介します

PHP 実行環境を手動で構成する場合、最も忘れやすいのは、サーバー側のセッション ファイルの保存ディレクトリの構成です。php.ini ファイルを開き、Session を検索して、session.save_path を見つけます。デフォルト値は /tmp です。これは、セッション ファイルが c:/tmp ディレクトリに保存されていることを意味します。デフォルトの tmp ディレクトリは作成されていません。c ドライブの下に tmp ディレクトリを作成するか、leapsoulcn などの別のディレクトリを作成して、 session.save_path の値と削除、つまり

session.save_path = ‘/leapsoulcn’;

注:

1. 一般に、サーバーのセキュリティを確保するには、session.save_path の値を外部ネットワークからアクセスできないディレクトリに設定するのが最善です。また、Linux サーバーでセッションを構成している場合は、このディレクトリには読み取りおよび書き込み権限も設定してください。設定しないと、セッション操作の実行時にエラーが報告されます。

2. セッション変数を使用する場合、サーバーのセキュリティを確保するために、グローバル変数が混同されないように register_globals を off に設定するのが最善です session_register() を使用してセッション変数を登録する場合、システムを使用できます。グローバル変数 $_SESSION にアクセスします。たとえば、leapsoulcn 変数を登録すると、$_SESSION['leapsoulcn'] を通じてこの変数にアクセスできます。 PHP環境変数$_SERVERとシステム定数の詳細説明

php.ini 設定ファイルから翻訳された session.save_path 設定のその他の手順

パターン「N;[MODE;]/path」を使用してパスを定義できます。N は整数です。これは、すべてのデータ ファイルを 1 つのディレクトリに保存する代わりに、N レベルのサブディレクトリを使用することを意味します。

[MODE;] オプション。8 進数を使用する必要があります。デフォルトは 600 (=384) で、各ディレクトリに保存されるセッション ファイルの最大数を示します。 [MODE;] はプロセスの umask を書き換えません。 PHP はこれらのフォルダー構造を自動的に作成しません。これは、ext/session ディレクトリ内の mod_files.sh スクリプトを使用して作成できます。安全でないユーザー (デフォルトの「/tm​​p」など) がフォルダーにアクセスできる場合、セキュリティ上の脆弱性が発生します。 N>0 の場合、自動ガベージ コレクションは失敗します。詳細については、以下のガベージ コレクションに関するセクションを参照してください。

サーバー上に複数の仮想ホストがある場合は、異なる仮想ホストごとに異なるディレクトリを設定することをお勧めします。

この時点で、最も基本的なセッション設定が完了しました。セッション機能を使用するには、php.ini を保存して Apache を再起動するだけです。

その他のセッション構成手順

session.save_handler = “ファイル”

デフォルトでは、セッションデータはファイルモードでアクセスされます。データベースなどのセッションデータにアクセスするためにカスタムプロセッサを使用したい場合は、「user」を使用します。

session.use_cookies = 1

セッション sessionid をクライアントに保存するために Cookie を使用するかどうか、デフォルトでは Cookie を使用することになります

session.use_only_cookies = 0

クライアント上でセッション sessionid を保存するためにのみ cookie を使用するかどうか。このオプションを使用すると、管理者はユーザーが URL を介して ID を渡すことを禁止できます。デフォルトは 0 です。無効にすると、クライアントが cookie を無効にするとセッションが機能しなくなります。

session.name = “PHPSESSID”

Cookie名として使用されるセッション識別名

session.auto_start = 0

セッションを自動的に開始するかどうかですが、セッション関数を使用する場合、このオプションを有効にすると、基本的に各 PHP スクリプトの先頭にある session_start() 関数を通じてセッションが開始されることがわかります。各スクリプト ヘッダーでセッションが自動的に開始されます。各スクリプト ヘッダーで session_start() 関数を使用してセッションを開始する必要はありません。デフォルト値。

session.cookie_lifetime = 0

セッションIDを渡すCookieの有効期間(秒)、0はブラウザが開いている間のみ有効であることを意味します。

session.gc_probability = 1

session.gc_divisor = 100

セッションが初期化されるたびにガベージコレクションプロセスを開始する確率を定義します。計算式は次のとおりです: session.gc_probability/session.gc_divisor。たとえば、1/100 は、セッション ページにアクセスする頻度が高いほど、ガベージ コレクション プログラムが開始される確率が 1% であることを意味します。なれ。推奨値は1/1000~5000です。

session.gc_maxlifetime = 1440

保存されたセッションファイルの有効期間を設定します。このパラメータで設定した秒数を超えると、保存されたデータは「ガベージ」とみなされ、ガベージコレクションプログラムによってクリーンアップされます。判断基準は、データが最後にアクセスされた時刻(FAT ファイルシステムの場合は、データが最後に更新された時刻)です。複数のスクリプトが同じ session.save_path ディレクトリを共有しているが、異なる session.gc_maxlifetimes を持つ場合、すべての session.gc_maxlifetime ディレクティブの最小値が優先されます。

session.save_path オプションでセッション データ ファイルを保存するサブディレクトリを設定した場合、ガベージ コレクション プログラムは自動的に起動しません。ガベージ コレクションを実行するには、独自のシェル スクリプト、cron アイテム、またはその他のメソッドを使用する必要があります。

例として、「session.gc_maxlifetime=1440」(24分)と設定します。

cd /path/to/sessions; find -cmin +24 |

上記は、一般的に使用されるセッション構成オプションの説明です。セッション構成オプションの詳細については、php.ini ファイルの説明を参照してください。

この時点で、php.ini 設定ファイルでセッションを設定するための PHP チュートリアルが導入されました。上記の手順の実践と学習を通じて、セッションのパフォーマンスなどの他の側面に関して、基本的なセッション機能を使用できるようになります。サーバー環境に基づいて要件が微調整されているため、これは自分で体験する必要があります。

テーブルを添付します

[セッション]
session.save_handler = files データの保存/取得の制御メソッド
session.save_path = C:wintemp ; save_handler がファイルに設定されている場合にコントローラーに渡されるパラメーター
; これはデータファイルが保存されるパスです。
session.use_cookies = 1 Cookieを使用するかどうか
; session.name = PHPSESSID
; Cookie で使用されるセッションの名前
session.auto_start = 0 リクエストの開始時にセッションを初期化します
; session.cookie_lifetime = 0 は Cookie の保存時間 (秒単位) です。 ; または 0 の場合、ブラウザが再起動されるまで
session.cookie_path = / ; Cookie の有効なパス
session.cookie_domain = ; Cookie の有効なドメイン
session.serialize_handler = php データ接続用のコントローラー
;                                                                                      
session.gc_probability = 1 ; 「ガベージ コレクション (デフラグ)」プロセス (パーセンテージ別)
すべてのセッションの初期化を開始する可能性。
session.gc_maxlifetime = 1440 ; ここで指定された秒数が経過すると、保存されたデータが考慮されます
                                                                                                                                   
session.referer_check = ; URL に含まれる追加の ID を無効にするために HTTP リファラーをチェックします
session.entropy_length = 0 ファイルから読み取るバイト数
; session.entropy_file = ; セッションIDを作成するにはここを指定します
; セッション.エントロピーの長さ = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache; HTTP を決定するには {nocache, private, public} に設定します
                                         session.cache_expire = 180 ; ドキュメントは n 分後に期限切れになります
session.use_trans_sid = 1 ; コンパイル時に有効になっている場合は、暫定的な SID サポートを使用します
                                                  url_rewriter.tags = "a=href,


www.bkjia.com本当http://www.bkjia.com/PHPjc/632845.html技術記事 PHP では、php.ini でセッション構成を直接設定できます。ここでは、php.ini でセッションを具体的に構成するための参考手順をいくつか紹介します。 php.ini でのセッション設定手順...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。