У меня есть приложение, написанное на PHP с нуля. Я использую собственные обработчики обработчика PHP для обработки пользовательской аутентификации и настойчивости.
При тестировании на сервере разработки все гладко. Аутентификация, настойчивость и т. Д. Отлично работает.
Когда он установлен на рабочем сервере, все работает до тех пор, пока пользовательская аутентификация – когда приложение фактически записывает данные в объект сеанса, вдруг HTTP-запрос, который следует за ним, полностью зависает, когда выполняется session_start ().
Я подозревал, что временные файлы сеансов блокируются с помощью PHP и никогда не выпускались, поэтому я попытался отслеживать места, где приложение записывает объект сеанса с session_write_close()
, но это, похоже, не имеет никакого эффекта.
Это звучит как проблема с блокировкой файлов или это что-то еще? Я смущен тем, почему session_write_close, похоже, не заботится о проблеме с блокировкой файлов, если это так, поэтому мне интересно, может ли быть что-то другое в игре здесь.
Любые возможные мысли или идеи?
Ответ на большие предложения Пекки:
Linux wynn 2.6.18-164.9.1.el5PAE #1 SMP
Всего несколько идей – в дополнение к комментарию pygorex, чтобы сначала включить error_reporting, который определенно должен быть первым.
Наверное, нет, но есть три зависания, описанные в примечаниях пользователя к session_start:
При использовании / dev / random в качестве файла энтропии сеанса
Когда страница вызывает себя с той же сессией
В Windows
Можете ли вы прочитать cookie сеанса и проверить, существует ли файл сеанса с таким именем в вашем каталоге / tmp? Этот файл доступен для записи? Он содержит данные?
Если все остальное не удается, страница руководства на session_save_handler () имеет то, что кажется полной пользовательской заменой для функций обработки сессий по умолчанию. Подумайте о том, как использовать их для детальной отладки.