5

在我们的开发服务器上,会话处理工作正常。在我们的生产服务器上,它没有。

开发服务器上的 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 会话工作吗?

4

2 回答 2

7

取自http://devzone.zend.com/article/141

有几个用于存储会话数据的内置选项。会话处理程序在名为的指令下的 php.ini 中设置

session.save_handler

sqlite 或者,您可以将会话数据存储在 sqlite 数据库中。为此,请使用如下配置:

session.save_handler = sqlite
session.save_path = /tmp/phpsess.db

mm 对于高性能会话存储,您可以使用 mm 共享内存模块将会话数据存储在内存中。您需要使用 mm 模块支持编译 php。这是使用 mm ( http://www.zend.com/tips/tips.php?id=164&single=1 )配置会话处理的教程。请注意,由于会话日期存储在 RAM 中,因此您应该将其视为易失性数据,并且会因断电或重新启动而丢失。

注意:以上教程中的链接已过时。您可以从 OSSP.org 网站检索 mm 模块。

于 2010-09-18T07:46:55.403 回答
0

您的 phpinfo 页面上的其余“会话”设置是什么样的?

特别是“session.save_handler”和“session.save_path”的值是多少?

以下是更多信息: http: //php.net/manual/en/session.configuration.php

“mm”和“sqlite”是可供您使用的替代保存处理程序。默认情况下,php 使用“文件”将会话数据存储在本地服务器上。

于 2010-09-18T07:54:15.453 回答