- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在几个小时内,每次您执行 session_start 时,我们的服务器都会挂起。
出于测试目的,我创建了一个如下所示的脚本:
<?php
session_start();
?>
从控制台调用它会挂起,甚至不能用 ctrl-c 停止,只有 kill -9 有效。通过 Apache 调用它也是如此。 /var/lib/php/session/
保持为空,但权限绝对没问题,www 可以写入并且对所有父文件夹都有读取权限。
根据管理员的说法,服务器上没有进行任何更改,也没有为 session 注册特殊代码。服务器是 CentOS 4 或 5,昨天一切正常。我们重启了服务器并更新了 PHP,但没有任何改变。
我的想法已经用完了,有什么建议吗?
更新
我们通过将项目移动到另一台服务器解决了这个问题,因此虽然问题仍然存在于一台服务器上,但不再需要立即解决。不过,如果有人对将来遇到类似问题的其他人有想法,我会保持开放状态。
最佳答案
造成这种情况的原因有很多,以下是其中的一些:
A. session 文件可以以独占方式打开。当文件锁由于某种原因没有正确释放时,它会导致 session_start()
在任何 future 的脚本执行中无限挂起。解决方法:使用 session_set_save_handler()
并确保写入函数使用 fopen($file, 'w') 而不是 fopen($file, 'x')
B. 切勿在您的 php.ini 文件中使用以下内容(熵文件到“/dev/random
”),这将导致您的 session_start( )
挂起:
<?php
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()
上“挂起”。
关于php - session_start 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4333209/
我有一个顶部导航栏,位于外部 PHP 文件内,该文件通过包含“topnav.php”链接到主页上的适当位置;这样,当我需要更改 href=""时,我不需要浏览每个页面。我还用它来显示 -> 登录身份:
我正在尝试将 Sessions 与 PHP 一起使用,我在 index.php 的开头使用 session_start(); 启动它们,但收到以下错误消息: Warning: session_star
我开始一个新 session :session_start();然后我像这样设置一些 session 变量: $_SESSION['name']=$_POST['name']; 和一些其他变量。 在页
我已经环顾了这个问题 - 但似乎我能找到的只是那些在连接到本地数据库或其他东西时遇到问题的人(不太确定)。我在我的网站上遇到了问题(任何时候我对具有 session_start() 的文件进行 aja
我正在编写一个登录脚本,但是由于我没有对/tmp 文件夹的写权限,所以我又创建了一个并将 session.dave_path 设置为新文件夹。 我一直在终端上测试脚本,文件夹获得了一个新条目,但是当我
我应该在何时何地使用 PHP 中的 session_start()? 例如,假设我有一个登录脚本,它设置了一个 session 变量来判断用户是否登录。然后我必须将 session_start() 放
我有一个启动 session 的 php 文件,后面是一些 html。后来我使用 include "some_file.php" 包含另一个文件。 some_file.php 具有 php 和 mys
我目前正在尝试将我的网站从我机器上的本地主机移动到我的网络服务器。还有一个问题。 一切正常,除了用于管理的登录表单。 起初我以为是 not-saving-as-utf-8-without-BOM 问题
我应该在何时何地使用 PHP 中的 session_start()? 例如,假设我有一个登录脚本,它设置了一个 session 变量来判断用户是否登录。然后我必须将 session_start() 放
当我在代码中使用 session_start() 时,我的 session 设置正确,当我运行代码并登录时,它使我保持登录状态并且一切正常,但是当我在位于顶部的 PHP 代码下面添加 HTML 时页面
我的代码有问题。这是我按照教程制作的登录/注册脚本。 我遇到的问题是,我希望脚本仅在用户输入正确的登录详细信息时回显“已登录”,但即使我没有输入任何登录详细信息,它仍然会回显“已登录”。我检查了它,如
我使用 php 和 mysql 创建了一个登录表单, 这是登录后应该出现的页面: 我添加了此代码以在用户未登录时禁用对该页面的访问。我的问题是,添加此代码后,我无法使用以前可以登录的用户登录。我
我希望你做得很好,我显然正在用登录帐户制作这个网站,我已经在本地数据库和服务器数据库中注册了我的用户。我的 HTML/PHP 代码在运行时没有显示任何错误。我已经检查了我的数据库连接。这是正确的。该网
我正在尝试使用 php 启动 session ,但我总是收到此错误: Fatal error: Call to undefined function session_start() in /www/t
我对 session_start() 有一些问题; 我知道在 session_start() 之前不应该输出任何东西;声明 但是我在我的脚本中找不到问题 索引.php: 但我总是 g
我一直在经历一些 $_SESSION示例,我有点困惑,我应该使用 session_start()每次访问或设置之前 $_SESSION['variable']或者我应该只使用 session_star
请解释如何session_start()功能有效。 我不明白在 php 中启动 session 时的操作顺序。尝试解释。 HTTP 是一种客户端-服务器架构。这意味着浏览器发送请求,服务器处理请求并返
我正在寻找一种处理 session_start 错误的通用方法,而不是一种处理特定错误的方法。可能会发生许多错误,例如 session 目录已满,这会导致 fatal error 。我想要一种方法来捕
有点奇怪的问题,好的,这是我的设置... domain.com 调用从 sub.domain.com 上的 Iframe 读取数据 sub.domain.com 对 sub.domain.com/ca
我正尝试在我网站的标题页中开始 session 。但似乎可能存在某种错误,因为它失败并出现以下错误: Warning: session_start() [function.session-start]
我是一名优秀的程序员,十分优秀!