Проблема в том, что очень часто страница, которая пишет в сеанс, заставляет apache зависать навсегда для определенного сеанса. Как только эта ошибка возникает для одного пользователя, любые дальнейшие изменения любого сеанса любого пользователя приведут к зависанию веб-сайта для этого пользователя.
Эта проблема была моей единственной целью в течение нескольких дней. У меня есть VPS для разработки под управлением Windows 2003 и последняя версия XAMPP по умолчанию, использующая стандартный обработчик сеансов PHP. На самом деле рассматриваемый код работает на двух других машинах совершенно нормально, поэтому, если верить здравому смыслу, это проблема конфигурации веб-сервера, но сейчас я готов попробовать что угодно.
При дальнейшем расследовании нет ошибок в журнале событий Apache, PHP или System. Ресурсов много, и не существует «AJAX shit storm» или больше, чем пара записывает в сеанс на страницу. Я также реализовал session_write_close () везде, где это возможно, чтобы попытаться помочь решить проблему.
Я проверил каталог сеанса, для которого установлено значение «C: \ windows \ Temp», и обнаружил, что как только пользователь входит в эту фазу зависания, соответствующий файл сеанса блокируется исключительно и единственный способ решить эту проблему - остановить Apache и подождите несколько минут, чтобы файлы разблокировались, и удалите их. Мне не интересно, требуется ли удаление.
Сеансы сами содержат только 4 бита информации. ShoppingCartID, UserID, UserLevel и URL-адрес ссылки и являются буквенно-цифровыми со случайной косой чертой.
Мой раздел сессии PHP.INI настроен так:
session.save_handler = files
session.save_path = "C:\WINDOWS\Temp"
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
Я перепробовал все, что мог придумать, и теперь эта проблема для меня неясна. Любые идеи будут оценены и спасибо за ваше время, читая это :)