lamp 将session保存到Redis

需要修改以下三个地方:
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();会看到
lamp 将session保存到Redis

配置里有两个值,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...

相关推荐