有很多原因,这里有几个:
A.会话文件可以专门打开。
当文件锁由于任何原因而不能正常释放时,会导致session_start()无限期地挂载在任何将来的脚本执行中。
解决方法:使用session_set_save_handler()并确保写入函数使用fopen($ file,’w’)而不是fopen($ file,’x’)
B.不要在你的php.ini文件中使用以下内容(entropie文件到“/ dev / random”),这将导致你的session_start()挂起:
ini_set("session.entropy_file", "/dev/random");
ini_set("session.entropy_length", "512");
?>
C。
session_start()需要一个写入的目录。
您可以在普通用户帐户中获取Apache + PHP。那么Apache当然必须要听80以外的其他端口(例如8080)。
一定要做以下事情:
– 创建临时目录PREFIX / tmp
– 把php.ini放在PREFIX / lib中
– 编辑php.ini并将session.save_path设置为刚创建的目录
否则,您的脚本似乎在session_start()上挂起。