Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: tzmatt7447Ответов: 2

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

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

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

phpsessionphpinfo

Ответы

Ответ 1 · рейтинг 7 · Codemwnci

Взято с 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.

Ответ 2 · PureForm

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

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы