我调用session_start()脚本挂起,没有任何反应

时间:2010-05-25 06:53:49

标签: php session

我正在运行php5,但是只要我调用session_start()脚本 挂起,没有任何反应。是否有其他人遇到此问题,或 我做错了什么?

我在index.php上使用session_start(),有时候出于某种原因 它会失败。没有警告,没有错误,没有通知,甚至没有 前置error_reporting(E_ALL)和ini_set('display_errors',TRUE) 在session_start()之前我看到了什么,它只是简单的死。

1 个答案:

答案 0 :(得分:3)

有很多原因,这里有一些原因:

一个。会话文件可以独占打开。 当由于某种原因未正确释放文件锁定时,它会导致session_start()无限期地挂起以执行任何未来的脚本执行。 解决方法:使用session_set_save_handler()并确保write函数使用fopen($ file,'w')而不是fopen($ file,'x')

B中。切勿在php.ini文件中使用以下内容(entropie文件为“/ dev / random”),这会导致session_start()挂起:

<?php
ini_set("session.entropy_file", "/dev/random");
ini_set("session.entropy_length", "512");
?>

℃。 session_start()需要一个要写入的目录。

您可以在普通用户帐户中运行Apache plus PHP。然后,Apache当然必须侦听80以外的其他端口(例如,8080)。

请务必执行以下操作: - 创建一个临时目录PREFIX / tmp - 把php.ini放在PREFIX / lib中 - 编辑php.ini并将session.save_path设置为刚刚创建的目录

否则,您的脚本似乎会在session_start()上挂起。