程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP Session配置詳細(php.ini)說明教程

PHP Session配置詳細(php.ini)說明教程

編輯:關於PHP編程

在PHP中 Session配置我們可以直接在php.ini中進行設置,下面我來給各位介紹在php.ini中具體配置session的一些參考說明。


php.ini中的session配置說明

  下面介紹能讓session運行的必要配置步驟

  手動配置PHP運行環境時,最容易遺忘的一項是服務器端session文件的存儲目錄配置工作,打開php.ini文件,搜索Session,找到session.save_path,默認值為/tmp,代表session文件保存在c:/tmp目錄下,默認tmp目錄並沒有創建,你可以在c盤下創建tmp目錄,或者創建一個其他目錄,比如leapsoulcn,再修改session.save_path的值,並去掉;,即

  session.save_path = ‘/leapsoulcn’;

  注意事項:

  1、一般為了保證服務器的安全,session.save_path值最好設置為外網無法訪問的目錄,另外如果你是在linux服務器下進行session配置,請務必同時配置此目錄為可讀寫權限,否則在執行session操作時會報錯。

  2、在使用session變量時,為了保證服務器的安全性,最好將register_globals設置為off,以保證全局變量不混淆,在使用session_register()注冊session變量時,你可以通過系統全局變量$_SESSION來訪問,比如你注冊了leapsoulcn變量,你可以通過$_SESSION['leapsoulcn']來訪問此變量。PHP環境變量$_SERVER和系統常量詳細說明

  session.save_path配置其他說明事項,從php.ini配置文件翻譯而來

  你可以使用”N;[MODE;]/path”這樣模式定義該路徑,N是一個整數,表示使用N層深度的子目錄,而不是將所有數據文件都保存在一個目錄下。

  [MODE;]可選,必須使用8進制數,默認600(=384),表示每個目錄下最多保存的會話文件數量。[MODE;]並不會改寫進程的umask。php不會自動創建這些文件夾結構。可使用ext/session目錄下的mod_files.sh腳本創建。如果該文件夾可以被不安全的用戶訪問(比如默認的”/tmp”),那麼將會帶來安全漏洞。當N>0時自動垃圾回收將會失效,具體參見下面有關垃圾搜集的部分。

  如果你服務器上有多個虛擬主機,建議針對每個不同的虛擬主機分別設置各自不同的目錄。

  至此最基本的session配置就完成了,你只要保存php.ini,並重啟apache,即可使用session功能。

  其他session配置說明

  session.save_handler = ”files”

  默認以文件方式存取session數據,如果想要使用自定義的處理器來存取session數據,比如數據庫,用”user”。

  session.use_cookies = 1

  是否使用cookies在客戶端保存會話sessionid,默認為采用cookies

  session.use_only_cookies = 0

  是否僅僅使用cookie在客戶端保存會話sessionid,這個選項可以使管理員禁止用戶通過URL來傳遞id,默認為0,如果禁用的話,客戶端如果禁用Cookie將使session無法工作。

  session.name = “PHPSESSID”

  當做cookie name來使用的session標識名

  session.auto_start = 0

  是否自動啟動session,默認不啟動,我們知道在使用session功能時,我們基本上在每個php腳本頭部都會通過session_start()函數來啟動session,如果你啟動這個選項,則在每個腳本頭部都會自動啟動session,不需要每個腳本頭部都以session_start()函數啟動session,推薦關閉這個選項,采用默認值。

  session.cookie_lifetime = 0

  傳遞sessionid的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

  設定保存的session文件生存期,超過此參數設定秒數後,保存的數據將被視為’垃圾’並由垃圾回收程序清理。判斷標准是最後訪問數據的時間(對於FAT文件系統是最後刷新數據的時間)。如果多個腳本共享同一個session.save_path目錄但session.gc_maxlifetime不同,將以所有session.gc_maxlifetime指令中的最小值為准。

  如果你在session.save_path選項中設定使用子目錄來存儲session數據文件,垃圾回收程序不會自動啟動,你必須使用自己編寫的shell腳本、cron項或者其他辦法來執行垃圾搜集。

  比如設置”session.gc_maxlifetime=1440″ (24分鐘):

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

  以上是一些常用的session配置選項說明,更多的session配置選項說明你可以參考php.ini文件中的說明。

  至此,在php.ini配置文件中對session進行配置的PHP教程就介紹完畢了,通過上面的步驟實踐與學習,基本的session功能都可以使用,至於session性能等其他方面則需要根據服務器環境和需求進行微調了,這個得自己體會。

附一表

[Session]
session.save_handler      = files   ; 用於保存/取回數據的控制方式
session.save_path         = C:wintemp    ; 在 save_handler 設為文件時傳給控制器的參數,
                                    ; 這是數據文件將保存的路徑。
session.use_cookies       = 1       ; 是否使用cookies
session.name              = PHPSESSID 
                                    ; 用在cookie裡的session的名字
session.auto_start        = 0       ; 在請求啟動時初始化session
session.cookie_lifetime   = 0       ; 為按秒記的cookie的保存時間,
                                    ; 或為0時,直到浏覽器被重啟
session.cookie_path       = /       ; cookie的有效路徑
session.cookie_domain     =         ; cookie的有效域
session.serialize_handler = php     ; 用於連接數據的控制器
                                    ; php是 PHP 的標准控制器。
session.gc_probability    = 1       ; 按百分比的'garbage collection(碎片整理)'進程
                                    ; 在每次 session 初始化的時候開始的可能性。
session.gc_maxlifetime    = 1440    ; 在這裡數字所指的秒數後,保存的數據將被視為
                                    ; '碎片(garbage)'並由gc 進程清理掉。
session.referer_check     =         ; 檢查 HTTP引用以使額外包含於URLs中的ids無效
session.entropy_length    = 0       ; 從文件中讀取多少字節
session.entropy_file      =         ; 指定這裡建立 session id
; session.entropy_length    = 16
; session.entropy_file      = /dev/urandom
session.cache_limiter     = nocache ; 設為{nocache,private,public},以決定 HTTP 的
                                    ; 緩存問題
session.cache_expire      = 180     ; 文檔在 n 分鐘後過時
session.use_trans_sid     = 1       ; 使用過渡性的 sid 支持,若編譯時許可了
                                    ;  --enable-trans-sid
url_rewriter.tags         = "a=href,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved