AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 770957
Accepted
kinggs
kinggs
Asked: 2016-04-18 04:37:17 +0800 CST2016-04-18 04:37:17 +0800 CST 2016-04-18 04:37:17 +0800 CST

PHP会话目录已满?

  • 772

我希望有人能给我一些建议。我正在运行 CentOS 6 服务器,过去几天我的磁盘使用量从 60GB 变为 135GB(98% 已满)。我相信问题可能与 PHP 会话目录(/var/lib/php/session)有关,因为这似乎很大(我不能 ls 或 rm),这个目录中肯定有数百万个文件。

  1. 如何删除此目录?rm 在这里不起作用,我也尝试过 rsync 替换一个空目录,但这也需要永恒。

  2. 如果这是导致问题的原因 - 为什么 PHP 不会自动删除这些文件?

  3. 是否有任何日志记录可以将我指向漏洞利用、DDOS 或失败的方向?

谢谢

linux php session
  • 3 3 个回答
  • 10884 Views

3 个回答

  • Voted
  1. Alex
    2016-04-18T14:26:17+08:002016-04-18T14:26:17+08:00

    sudo find /var/lib/php/session -type f -delete会比因为大文件列表几乎不可能sudo rm /var/lib/php/session/*扩展而工作得更好。*

    • 2
  2. Matt O.
    2016-04-18T05:22:09+08:002016-04-18T05:22:09+08:00

    听起来您的应用程序正在创建会话,但从不破坏它们。这可能是糟糕的编程和糟糕的环境设置的混合。

    如果您想删除这些会话文件,您需要使用 sudo,因为它们可能不属于您的用户。

    sudo rm /var/lib/php/session/*
    

    我不会删除整个会话目录。

    另一件事是将 PHP Session 超时调整为更小的间隔。

    • 1
  3. Best Answer
    symcbean
    2016-04-18T15:38:27+08:002016-04-18T15:38:27+08:00

    Ubuntu 的默认配置是 PHP 不会使会话过期,但有一个 cron 作业会删除旧文件。对此进行全面讨论需要一些时间(恕我直言,这是一个非常糟糕的主意),但是我不知道 Redhat 采取了类似的方法。

    您尚未提供会话配置的任何详细信息。这种情况可能由于 session.gc_probability、session.gc_divisor 或 session.gc_maxlifetime 中的任何一个值而出现。一旦按照其他答案中的描述清除了文件,设置默认值 1、100 和 1440 应该可以确保合理的稳态系统。

    您还没有说您在系统上看到了多少并发会话、它们的平均大小,也没有说它们存储在哪个文件系统上。如果您预计超过 300 个会话(取决于文件系统),您应该考虑使用目录树而不是单个目录来存储文件;为 session.save_path 添加 1 或 2 前缀(假设这不是支持服务器集群的 NFS 服务器,在这种情况下,您应该迁移到不同的体系结构)。

    Matt 提到它可能是 selinux 配置。如果这允许创建文件但从不删除。虽然这是可能的,但这表明系统上的配置严重混乱。如果是这种情况(检查您的审核日志),那么您可能应该进行全新安装并在其上恢复您的应用程序。

    这不太可能与糟糕的编程有关。

    • 0

相关问题

  • mod_rewrite 不转发 GET 参数

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve