【发布时间】:2012-02-13 05:00:33
【问题描述】:
我已经放弃了这个问题,因为我怀疑我的设置损坏了导致问题,并从那时起创建了一个新服务器。我认为找到问题比启动新服务器并设置它需要更多时间。但是,我仍然有兴趣找出导致此问题的原因,因为它完美运行了 3 个月,并且直到周末才开始出现这些症状。 **
================================================ ==================================
我遇到了一些初学者问题,可能是因为过去几个月我一直在使用其他语言工作,但我似乎无法找出为什么这不起作用。 我制作了一个非常简单的脚本来测试它,如下所示:
<?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 下创建了一个会话 ID。我试图检查存储会话的路径是否可写,并且是。页面返回的headers如下:
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 发送如下:
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
任何帮助将不胜感激,因为我整天都在解决这个问题,但似乎找不到解决方案。如果您需要更多信息,请告诉我。
【问题讨论】:
-
确认你的会话目录必须是可写的..
-
1.你能在 /tmp 下看到你的会话文件吗? 2. 你的客户端/浏览器是什么?
-
可以看到“/var/lib/php/session”目录下的session文件,形式为“sess_”+id。我已经在除 IE 和 Opera 之外的所有浏览器以及我的 iphone 上通过 WiFi 和移动连接进行了测试。都具有相同的结果 PS。我刚刚尝试用vim打开会话文件(不知道这是否可能),但它是一个空文件。
-
试试这个链接:stackoverflow.com/questions/155920/…>
-
我检查了所有答案,但它们似乎对我不起作用,我也将该问题用于我的问题中显示的简单示例。
标签: php session amazon-ec2