相关疑难解决方法(0)

session_start挂起

因为几次我们的服务器在你每次执行session_start时挂起.

出于测试目的,我创建了一个如下所示的脚本:

<?php
session_start();
?>
Run Code Online (Sandbox Code Playgroud)

从控制台调用它会挂起,甚至无法使用ctrl-c停止,只有kill -9可以正常工作.通过Apache调用它也是一样的./var/lib/php/session/保持空白但权限绝对正常,www可以写入并且还具有所有父文件夹的读取权限.

根据管理员的说法,服务器上没有进行任何更改,也没有为会话注册特殊代码.服务器是CentOS 4或5,昨天一切都运行良好.我们重新启动了服务器并更新了PHP,但没有任何改变.

我已经没想完了,有什么建议吗?

UPDATE

我们通过将项目移动到另一台服务器来解决了这个问题,所以当问题仍然存在于一台服务器上时,不再需要解决方案了.我将保持这个问题的开放,以防万一有人对将来遇到类似问题的人有所了解.

php session

26
推荐指数
2
解决办法
2万
查看次数

session_start如何在PHP中锁定?

最初,我只想验证会话中的session_start锁定.所以,我创建了一个PHP文件,如下所示.基本上,如果网页浏览是偶数,页面会休眠10秒; 如果网页浏览是奇数,则不是.并且,session_start用于获取$ _SESSION中的页面视图.

我尝试在一个浏览器的两个选项卡中访问该页面.因为我明确地让它睡了所以第一个标签需要10秒就不足为奇了.第二个选项卡不会休眠,但应该被sessiont_start阻止.这按预期工作.

令我惊讶的是,第二页的输出显示session_start几乎没有时间.实际上,整个页面似乎没有时间加载.但是,页面确实需要10秒才能在浏览器中显示.

obtained lock
Cost time: 0.00016689300537109
Start 1269739162.1997
End 1269739162.1998
allover time elpased : 0.00032305717468262
The page views: 101
Run Code Online (Sandbox Code Playgroud)

PHP是否从PHP页面中提取session_start并在其他PHP语句之前执行它?

这是代码.

<?php

function float_time()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float)$sec + (float)$usec;
}

$allover_start_time = float_time();

$start_time = float_time();

session_start();

echo "obtained lock<br/>";
$end_time = float_time();

$elapsed_time = $end_time - $start_time;
echo "Cost time: $elapsed_time <br>";
echo "Start $start_time<br/>";
echo "End …
Run Code Online (Sandbox Code Playgroud)

php session

7
推荐指数
1
解决办法
5022
查看次数

当一个脚本使用curl调用另一个脚本时,为什么session_start会导致超时

我有两个PHP脚本,都通过调用使用相同的会话session_name('MySessID').

当第一个脚本使用curl调用第二个脚本时,第二个脚本在session_start()调用时挂起.

为什么会发生这种情况?

php post curl timeout

5
推荐指数
2
解决办法
6289
查看次数

标签 统计

php ×3

session ×2

curl ×1

post ×1

timeout ×1