2010-09-18 2 views
5

На нашем сервере разработки обработка сеансов работает нормально. На нашем производственном сервере это не так.Конфигурация 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 

Может отсутствие «мм SQLite» стоп PHP сессий работать при переходе от разработки до производства?

+0

php5 - это текущая версия PHP уже давно. нет необходимости указывать его –

+0

Нет, отсутствие «mm sqlite» ** не может ** прекратить работу PHP-сессий. И настройки конфигурации являются наименьшей причиной того, что что-то не работает. Это ваш код, чувак. Это ваш код, который вам лучше начать отлаживать. –

+0

Не совсем Col. Я создал новый вопрос, который также описывает, почему я столкнулся с проблемой здесь - http://stackoverflow.com/questions/3740884/creating- new-tmp-folder-for-php-to-use – tzmatt7447

ответ

4

Взятые из http://devzone.zend.com/article/141

Есть несколько встроенных опций для хранения данных сессии. Обработчик сеанса устанавливается в php.ini в соответствии с директивой по имени

session.save_handler 

SQLite При желании, вы можете хранить данные сессии в базе данных SQLite. Для этого используйте такую ​​конфигурацию:

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

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

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

+0

Спасибо Codem - это было полезно.Я не смог найти их самостоятельно ... – tzmatt7447

+0

из комментариев этой страницы: 'Должно быть: session.save_handler = sqlite', который является логическим –

+0

исправить session.save_handler для sqlite, пожалуйста – diego2k

0

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

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

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

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

Смежные вопросы