Конфигурация PHP для включения сессий - PullRequest
5 голосов
/ 18 сентября 2010

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

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

Ответы [ 2 ]

5 голосов
/ 18 сентября 2010

взято с http://devzone.zend.com/article/141

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

session.save_handler

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

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

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

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

0 голосов
/ 18 сентября 2010

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

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

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

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

...