【发布时间】:2014-02-27 18:07:39
【问题描述】:
我有一个需要会话的 web.py 网站;
当使用 web.py 的内置网络服务器时,网站的会话可以完美运行,例如
./server.py
http://my.server:8080/cgi/server.py/
对于生产,我使用 apache2 和 python 作为 cgi。
在此配置下运行时,会话不会按应有的方式重用;
相反,在每次重新加载时,我会看到另外 2 个会话文件(或 db 记录)被添加到会话目录/mysql 表中(取决于我如何配置它)
我尝试了以下配置,结果相同:
- 作为 apache cgi
- 作为 apache mod_wsgi
- 以会话作为磁盘存储
- 将会话作为 mysql 数据表(每次重新加载时插入 1 到 3 条记录)
- 一年前的 web.py
- 最新的 web.py 来自源代码
我在同一个网络服务器上运行了 web.py 和会话安装,它可以工作,所以我很困惑。
我的设置是:
- ubuntu 12.04
- 标准灯(linux/apache/mysql)
- 最新的 web.py 3.x
关于为什么会话在 apache 下不被记住/重用的任何线索?
解决方案!
为了解决这个问题,我必须为 cookie_path 赋予价值
web.config.session_parameters['cookie_path'] = '/'
另外,请注意上面的行必须在会话初始化代码之前,即
web.config.session_parameters['cookie_path'] = '/'
(...)
sess = web.session.Session(app, web.session.DiskStore('sessions'), initializer=INIT)
【问题讨论】:
标签: python apache session web.py