运行PHP,Apache2 …我们的login停止工作,并试图抓住会议数据。 昨天晚上七点,它全部停止工作。 我发现会议目录正在充满大量的会议每秒。 如果我删除所有的会议,它会迅速填补。 由于某种原因,访问日志已停止工作。 这听起来像是一个攻击…如果是这样,我能做些什么来阻止它?
这听起来像你用来closures会议的代码不工作,或不存在。 您需要使用以下内容销毁会话:
销毁所有会话:
<?php session_destroy(); ?>
或者用它来破坏个别部分:
<?php if(isset($_SESSION['views'])) unset($_SESSION['views']); ?>
采取从这里: W3Schools PHP会议
如果您的日志不能正常工作,那么您的磁盘空间似乎已经不足了。 错误日志中没有任何内容?
http://php.net/manual/en/session.configuration.php
检查你的会话生存期 – 如果它太高,也许服务器保持文件,直到磁盘填满。
此外,检查gc设置,概率,除数和生命周期,并尝试将它们设置为默认值,看看是否改善这种情况。 GC垃圾收集器以1%的请求运行,并清理旧的未使用的会话。 如果它不工作,或closures,那么你的磁盘将在某个时刻填满。
对于许多文件的另一个原因可能是session.auto_start设置为1; 在这种情况下,当你不需要它们时,你可能正在初始化会话 – 但是它们不会占用太多的空间。 或者,您可能会在每个请求中执行session_start,无论您是否需要它。
我会研究三个问题:
– 会话开始 :您是否只在需要时使用会话? 也许你正在开始不需要它们的部分的会话。 它会浪费资源,并放慢您的网站。
– 会话生命周期 :如果生命周期太长或是0,那么过时的会话将会占用您拥有的所有磁盘空间,给予足够的时间。 看看session.gc-maxlifetime来了解如何设置它。
– 会话终止 :当会话不再需要时,尝试使用session_destroy()销毁会话。
如果磁盘空间不足,将不会写入会话文件,也不会更新日志。 它会禁用你的login系统,你的用户将不断尝试进入,恶化的影响。
尝试释放一些磁盘空间并查看日志。 许多对罕见资源的请求可能表明您正在受到攻击。 如果你清理空间,并且thigs得到正常,你发现了这个问题。 如果会议数量不断增加,您可能会受到攻击。