需要修改以下三个地方:
1、修改php.ini
2、安装phpredis扩展
3、修改apache的php.conf
4、如果是php-fpm也有需要修改相关的session配置
php配置文件影响session配置项有:
[Session]
session.save_handler = redis
session.save_path = "tcp://94.191.91.104:6666"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
要将session保存到redis,“session.save_handler = redis ”,“ session.save_path = "tcp://xx.xx.xx.xx:6666"”必须要配置的。
也可以通过
ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");
设置。如果配置文件 /etc/redis.conf 里设置了连接密码 requirepass,保存 session 的时候会报错,save_path 这样写t cp://127.0.0.1:6379?auth=authpwd 即可。
此外需要安装phpredis扩展。配置完以后,可能不生效。
通过phpinfo();会看到
配置里有两个值,local value,master value。
local value 受apache配置文件/etc/httpd/conf.d/php.conf配置影响:
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
master value 受php的php.ini影响。local value 会覆盖master value。
如果采用php-fpm,php-fpm也有类似的session配置项。
PHP-FPM的配置文件/etc/php-fpm.conf或者/etc/php-fpm.d/*.conf中,也有session的配置。
它们的session配置优先级比php.ini高,会覆盖php.ini中的配置。
所以,也直接在这里面改:
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://127.0.0.1:6379"
如果用php.ini的配置,则需要把这两行用;注释掉。
然后重启PHP-FPM。
总结:
1、修改php.ini
2、安装phpredis扩展
3、修改apache的php.conf
4、如果是php-fpm也有需要修改相关的session配置
参考:
Redis保存PHP Session方法
https://www.awaimai.com/1871....
yum 安装 redis php-redis
https://blog.csdn.net/musicra...
PHP.INI配置:Session配置详细说明教程
https://www.cnblogs.com/okzzx...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。