Конфигурация PHP для включения сеансов

На нашем сервере разработки обработка сессий работает нормально. На нашем рабочем сервере это не так.

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 

Что такое «мм 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 при переходе от разработки к производству?


person tzmatt7447    schedule 18.09.2010    source источник
comment
php5 уже давно является текущей версией PHP. нет необходимости указывать это   -  person Your Common Sense    schedule 18.09.2010
comment
Нет, отсутствие mm sqlite не может остановить работу сеансов PHP. И настройки конфигурации это как минимум причина, по которой что-то не работает. Это твой код, чувак. Это ваш код, который вам лучше начать отлаживать   -  person Your Common Sense    schedule 18.09.2010
comment
Не совсем полковник. Я сформулировал новый вопрос, который также описывает, почему я столкнулся с проблемой здесь - stackoverflow.com/questions/3740884/   -  person tzmatt7447    schedule 18.09.2010


Ответы (2)


Взято с 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. Вам нужно будет скомпилировать php с поддержкой модуля mm. Вот руководство по настройке обработки сеансов с помощью mm ( http://www.zend.com/tips/tips.php?id=164&single=1 ). Обратите внимание, что, поскольку дата сеанса хранится в оперативной памяти, вы должны считать ее нестабильными данными, и она теряется при отключении питания или перезагрузке.

Примечание: ссылка в приведенном выше руководстве устарела. Вы можете получить модуль mm с веб-сайта OSSP.org.

person Codemwnci    schedule 18.09.2010
comment
из комментариев этой страницы: Should be: session.save_handler = sqlite что логично - person Luis Siquot; 22.11.2012
comment
исправьте session.save_handler на sqlite, пожалуйста - person diego2k; 27.02.2013

Как выглядят остальные настройки «сеансов» на вашей странице phpinfo?

В частности, каково значение «session.save_handler» и «session.save_path»?

Вот еще немного информации: http://php.net/manual/en/session.configuration.php

«mm» и «sqlite» — это альтернативные обработчики сохранения, которые вы можете использовать. По умолчанию php использует «файлы», которые будут хранить данные сеанса на вашем локальном сервере.

person PureForm    schedule 18.09.2010