Я пытался реплицировать производственную настройку на моем сервере разработки, но не могу заставить сеансы работать правильно.Session cookie не отправляется, когда PHP session.auto_start установлен true
После многих разочаровывающих часов я отследил проблему до того, что директива php.ini session.auto_start не запускает сеанс.
AFAIK, session.auto_start = 1 и session_start() в верхней части скрипта должны быть функционально идентичными.
Если я вызываю пустой скрипт PHP, используя curl, чтобы показывать только заголовки, я получаю следующее с session.auto_start = 1 (проверено на странице информации php, что оно действительно установлено в true).
[email protected]:~$ curl -I test.server.local
HTTP/1.1 200 OK
Date: Sat, 20 Feb 2010 05:18:05 GMT
Server: Apache
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM"
Content-Type: text/html
No Session cookie.
Единственное изменение, которое я делаю, это отключить session.auto_start, добавить session_start(); в скрипт и перезапустить apache.
[email protected]:~$ curl -I test.server.local
HTTP/1.1 200 OK
Date: Sat, 20 Feb 2010 05:18:11 GMT
Server: Apache
Set-Cookie: PHPSESSID=c7bdfb8eca47c12d97ff3ad86081d470; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM"
Content-Type: text/html
Теперь это работает.
Может кто-нибудь помочь мне понять, почему session.auto_start не отправляет сеансовый файл cookie.
Где вы изменили конфигурацию? – zneak
В файле php.ini – gacrux