需要修改以下三個地方:
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...