簡體   English   中英

Redis中的PHP會話將忽略session.cookie_domain配置

[英]PHP sessions in redis ignores session.cookie_domain configuration

我有幾個共享相同會話的子域。 我曾經只有一台服務器,並且我有以下php.ini ,以便為所有子域保留相同的cookie:

session.cookie_domain = ".mydomain.com"

使用此配置會使服務器返回以下set-cookie:

Set-Cookie: PHPSESSID=aumsloucmjspvs1mbvromqq1b5; path=/; domain=.mydomain.com

現在我的服務器已經很少了,我想使用Redis在所有服務器之間共享會話。 我設置服務器並將以下內容添加到php.ini

session.save_handler = redis
session.save_path = tcp://192.1.1.1:6379?auth=noauth

會話已成功保存在服務器上,但是返回的set-cookie不正確:

Set-Cookie: PHPSESSID=cec074e4d961ff6c800c21b7466c7d5a; path=/

因此,在下一次調用客戶端到另一個子域時,它不會發送從第一個子域獲得的cookie。

我在phpinfo()中的會話中使用PHP 5.3.18,redis 2.2.5:

Directive               Local Value  Master Value
session.auto_start      Off          Off
session.bug_compat_42   Off          Off
session.bug_compat_warn Off          Off
session.cache_expire    180          180
session.cache_limiter   nocache      nocache
session.cookie_domain   .example.com     .example.com
session.cookie_httponly Off          Off
session.cookie_lifetime 0            0
session.cookie_path     /            /
session.cookie_secure   Off          Off
session.entropy_file    no value     no value
session.entropy_length  0            0
session.gc_divisor      1000         1000
session.gc_maxlifetime  43200        43200
session.gc_probability  1            1
session.hash_bits_per_character 5    5
session.hash_function   0            0
session.name            PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files       files
session.save_path   /var/lib/php/session       /var/lib/php/session
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    On  On
session.use_trans_sid   0   0

知道如何強制服務器發送適當的set-cookie嗎?

在從朋友那里獲得提示后,我將相同的配置移至/etc/httpd/conf.d/php.conf ,由於某種未知的原因,它開始起作用!

如果在座的任何人都知道它對我有幫助的原因,我很樂意聽到,我希望這對遇到同樣問題的人有所幫助。

要將會話名稱設置為Redis前綴,可以為我解決問題:

session_name('PHPREDIS_SESSION');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM