CKAN 使用 Pylons,因此使用 Beaker。因此,它似乎将会话信息(和其他缓存信息)存储在磁盘上。有没有办法配置 CKAN 将会话信息存储在磁盘以外的其他地方,例如 DB 或 memcached?
我特别问是因为a)您可能会在磁盘上存储会话时遇到问题(如果您有很多会话)b)我想在Heroku之类的东西上运行CKAN,因为磁盘上的会话会导致问题(尤其是如果您有超过 1 个进程)
安装 memcached:
sudo apt-get install memcached
默认配置应具有在端口 11211 上侦听 localhost 的设置。/etc/memcached.conf:
-l 127.0.0.1
-p 11211
要让 CKAN/Beaker 与之对话,您需要 Python 模块 pylibmc 和 libmemcached。首先安装 libmemcached2 并查看发行版附带的版本:
sudo apt-get install libmemcached2
Lucid 附带 v0.31-1,它需要不迟于 0.9 版的 pylibmc。如果您有 0.32,那么您可以使用更新的 pylibmc。现在安装 pylibmc:
pip install pylibmc==0.9
然后在您的 ckan 配置中,您设置 Beaker 以像这样与它交谈:
beaker.session.type = ext:memcached
beaker.session.url = 127.0.0.1:11211
重新启动后,您应该使用 Beaker,而不是创建那些最终完全填满磁盘的文件。