在我们的开发服务器上,会话处理工作正常。在我们的生产服务器上,它没有。
开发服务器上的phpinfo显示:
session
Session Support enabled
Registered save handlers files user mm sqlite
Registered serializer handlers php php_binary wddx
生产服务器上的phpinfo显示:
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
什么是“mm sqlite”并且可能导致问题?我如何启用此功能?无论如何,这些设置是什么?
其余设置在两者之间是通用的:
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
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 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0
从开发转向生产时,缺少“mm sqlite”会阻止PHP会话的运行吗?
答案 0 :(得分:5)
取自http://devzone.zend.com/article/141
有几个用于存储会话数据的内置选项。会话处理程序在名为
的指令下的php.ini中设置session.save_handler
<强>源码强> (可选)您可以将会话数据存储在sqlite数据库中。为此,请使用以下配置:
session.save_handler = sqlite
session.save_path = /tmp/phpsess.db
<强>毫米强> 对于高性能会话存储,您可以使用mm共享内存模块将会话数据存储在内存中。您需要使用mm模块支持编译php。以下是使用mm(http://www.zend.com/tips/tips.php?id=164&single=1)配置会话处理的教程。请注意,由于会话日期存储在RAM中,因此您应该将其视为易失性数据,并且在断电或重新启动时会丢失。
注意:上述教程中的链接已过时。您可以从OSSP.org网站上检索mm模块。
答案 1 :(得分:0)
phpinfo页面上的其他“会话”设置是什么样的?
特别是“session.save_handler”和“session.save_path”的值是多少?
以下是一些更多信息:http://php.net/manual/en/session.configuration.php
“mm”和“sqlite”是可供您使用的替代保存处理程序。默认情况下,php使用“文件”将会话数据存储在本地服务器上。