Я отказался от этого вопроса, так как подозреваю, что что-то испортило мои настройки, вызвавшие проблемы, и с тех пор создал новый сервер. Я решил, что найти проблему потребует больше времени, чем запуск нового сервера и настройка его. Тем не менее, мне все еще интересно узнать, что вызвало это, поскольку он отлично работал в течение 3 месяцев и только начал показывать эти симптомы в течение выходных. **PHP сессия не работает
=========================================================================================================================================================== ====================================
У меня проблема с новичком , вероятно, потому, что я работал на других языках в течение последних месяцев, и я просто не могу понять, почему это не работает. Я сделал очень простой скрипт, чтобы проверить это, который идет следующим образом:
<?php session_start();
print_r($_SESSION);
if(isset($_SESSION['views'])){
$_SESSION['views'] = $_SESSION['views']+ 1;
}
else{
$_SESSION['views'] = 1;
}
echo "views = ". $_SESSION['views'];
echo '<p><a href="">Refresh</a></p>';
# for testing
var_dump($_SESSION);
?>
Что происходит, что var_dump показывает, что сеанс создается с помощью ключа взглядов и значение 1. Однако при обновлении страницы не обнаружен активный сеанс, а ключ вида снова установлен на 1.
Теперь странная вещь для меня в том, что есть идентификатор сеанса, созданный под PHPSESSID. Я попытался проверить, доступен ли путь для хранения сессий, и он есть. Заголовки, возвращаемые страницы следующим образом:
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public
Connection close
Content-Encoding gzip
Content-Length 68
Content-Type text/html; charset=utf-8
Date Wed, 18 Jan 2012 13:03:34 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Pragma no-cache
Server Apache
Vary Accept-Encoding
X-UA-Compatible IE=Edge,chrome=1
И в заголовке запроса сеанса куки отправить следующим образом:
Cookie PHPSESSID=0e1416r7pun3pamvc7cp8mjat3
Я не уверен, если есть что-нибудь там. Я запускаю это на Amazon EC2 linux AMI.
Я также включают в phpinfo():
PHP Version 5.3.6
System Linux ip-**-**-**-** *.*.**.**-**.**.amzn1.x86_64 #1 SMP Sat Feb 19 23:42:04 UTC 2011 x86_64
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly On 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 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php/session /var/lib/php/session
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0
Любая помощь будет высоко оценена как я проводил весь день, чтобы решить эту проблему, но не могу найти решение. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Подтвердите, что ваш каталог сеансов должен быть доступен для записи .. – Rikesh
1. Вы можете увидеть файл сеанса в/tmp? 2. Каков ваш клиент/браузер? – Teson
Я вижу файл сеанса в каталоге «/ var/lib/php/session» в виде «sess _» + id. Я тестировал это во всех браузерах, кроме IE и Opera, а также на моем iphone, как через Wi-Fi, так и через мобильную связь. Все с тем же результатом PS. Я просто попытался открыть файл сеанса с помощью vim (не знаю, должно ли это быть возможно), но это пустой файл. –