PHP session.auto_start设置为true时,不发送会话cookie

时间:2010-02-26 00:33:46

标签: php session apache2

我一直在尝试在我的开发服务器上复制生产设置,但无法使会话正常工作。

经过许多令人沮丧的时间之后,我已经将问题跟踪到php.ini指令session.auto_start没有启动会话的事实。

AFAIK,session.auto_start = 1和脚本顶部的session_start()应该在功能上完全相同。

如果我使用curl调用一个空的PHP脚本来显示只有头文件,我会使用session.auto_start = 1获得以下内容(在php信息页中检查它确实设置为true)。

me@myhost:~$ curl -I test.server.local
HTTP/1.1 200 OK
Date: Sat, 20 Feb 2010 05:18:05 GMT
Server: Apache
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM"
Content-Type: text/html

没有会话cookie。

我做的唯一更改是禁用session.auto_start,添加session_start();进入脚本并重新启动apache。

me@myhost:~$ curl -I test.server.local
HTTP/1.1 200 OK
Date: Sat, 20 Feb 2010 05:18:11 GMT
Server: Apache
Set-Cookie: PHPSESSID=c7bdfb8eca47c12d97ff3ad86081d470; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM"
Content-Type: text/html

现在可行。

任何人都可以帮我理解为什么session.auto_start没有发送会话cookie。

1 个答案:

答案 0 :(得分:0)

这是XDebug中的一个错误引起的(具有讽刺意味的是吧?)。我刚刚禁用了xdebug,但我确信升级也可能会修复它。