在php使用redis作為session的保存工具時(shí),遇到session被清理的問題導(dǎo)致用戶沒法登陸
請問該如何解決
我使用兩種方式來定義session的保存機(jī)制
一種是
php
ini_set('session.save_handler','Redis'); ini_set('session.save_path','tcp://localhost:6379');
另一種是
session.save_handler = Redis
session.save_path = "tcp://localhost:6379"
在php5.3.28和5.5.10下均不能正常使用session
但是都不能用,請問各位大俠如何解決
ps
@woshicixide 說我寫的不詳細(xì) 那么我就將所有的步驟寫一遍
首先是開啟redis 使用腳本
redis-server.exe redis.conf
命令運(yùn)行redis服務(wù)器
然后在php.ini中修改session.save_handler 為redissession.save_handler = Redis
然后在php.ini中修改session.save_path 為 "tcp://localhost:6379"session.save_path = "tcp://localhost:6379"
然后重啟Apache服務(wù),重載php.ini
打開登陸頁面http://localhost/login.php 輸入用戶名密碼 登陸
瀏覽器自動(dòng)跳轉(zhuǎn)到登錄成功頁面,然后自動(dòng)返回到登陸頁ps 在loginaction.php中將登陸的userid寫入到session中來判斷是否登陸
閉關(guān)修行中......
我感覺是你的配置有問題吧,我貼一下我的配置。
[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = redis
session.save_path = "tcp://xx.xx.xx.xx:6789?persistent=1&timeout=3&database=11&auth=d9cxa2xx67f2xxxxxxxxxxxx58exx5xfxd29"
也不知道你的redis起起來了沒,亦不知你的web服務(wù)器是否也啟動(dòng)了,有沒有異常。redis擴(kuò)展呢?
樓主的問題問的太大了,就好象用戶在問為什么我這個(gè)網(wǎng)站打不開,樓主至少把提示什么錯(cuò)誤、你是怎么調(diào)用的等等這種東西寫出來
先確定下你的redis是否需要賬號(hào)密碼,再試下把php配置里面的localhost改成127.0.0.1
其實(shí)我比較喜歡使用memcahced 來存儲(chǔ)session這類數(shù)據(jù)!
原因如下:
1.無需設(shè)置密碼
2.數(shù)據(jù)結(jié)構(gòu)簡單,且響應(yīng)速度很快
3.做分布式很方便,一臺(tái)機(jī)器專門放session,做共享