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();会看到
配置里有两个值,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...