我遇到了一个奇怪的 session 错误,遗憾的是我无法在本地重现该错误。在我的日志文件中,我在查看引用 this file 的页面时随机收到以下错误
session_start(): user session functions not defined on line 84 of file /var/www/vhosts/example.com/symphony/lib/core/class.session.php
据我所知,这个 session 处理程序看起来相当标准,所以我很困惑为什么这是一个错误?
实时环境托管在 Rackspace 上,是运行 PHP 5.4.6 的负载均衡器后面的两台服务器(PHP 5.4.6-1ubuntu1.1 (cli)(构建时间:2012 年 11 月 15 日 01:18:34)
)。据我所知,我们有两个数据库服务器,其中一个配置为写入,另一个配置为读取(通过 Rackspace)。
我的本地环境要简单得多,PHP 5.4.10 有一个单一的数据库,所以虽然我认为环境可能发挥了作用,但我对如何首先为客户解决这个问题非常感兴趣,但我个人也很感兴趣,因此可以使 Session 类更加健壮。
最佳答案
Brendo,您在评论 ini_set('session.save_handler', 'user')
时收到的错误很可能是因为您没有安装 PHP 内存缓存模块。如果 Rackspace 配置您的服务器以将 session 保存到 memcache 服务器,您可能需要通过修改 php.ini 文件或 memcache.ini 文件以启用 PHP memcached 模块以使用 session.save_handler = memcached
session.save_handler = memcache
。
如果上述方法不起作用,您可以通过运行 dpkg -l | 检查是否安装了任一 PHP 模块。 grep memcache
查看是否返回了任一 PHP 模块。
关于php - 从 PHP5.4.x 开始的 session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15284408/