【问题标题】:LAMP error: session_start() failed: No space left on device (28), butLAMP 错误:session_start() 失败:设备 (28) 上没有剩余空间,但是
【发布时间】:2012-01-26 10:31:03
【问题描述】:

Ubuntu 服务器 10.04、Apache 2.2.14、PHP 5.3.2、MySQL。 对于存储会话文件的驱动器:

df -h:

Filesystem            Size  Used Avail Use% Mounted on
/dev/md1              450G   86G  341G  21% /

df -ih:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/md1                116M    9.4M    107M    9% /

有什么想法吗?

【问题讨论】:

  • 也许您的 Apache 用户有配额?
  • 好主意,但未启用配额。
  • 奇怪。您可以在 php.ini 中验证保存会话的位置吗? (正如@alsotoes 下面建议的那样)
  • 已验证。只有一卷,还没满。

标签: php linux apache lamp


【解决方案1】:

只需检查存储会话文件的 php.ini 文件,然后检查可用空间,如果 100% 已使用,则更改 fstab 配置(如果是(重新)挂载目录)并重新启动服务器,或者更改路径并重新启动apache服务器。

就我而言:

evo ~ # locate php.ini
/etc/php/apache2-php5/php.ini
/etc/php/cli-php5/php.ini

evo ~ # grep -v ";" /etc/php/apache2-php5/php.ini | grep session | grep path
session.save_path = "/tmp"
session.cookie_path = /

evo ~ # grep -v ";" /etc/php/cli-php5/php.ini | grep session | grep path
session.save_path = "/tmp"
session.cookie_path = /

evo ~ # df -ha /tmp   
Filesystem            Size  Used Avail Use% Mounted on
/dev/root             230G   27G  203G  12% /

evo ~ # df -ha / 
Filesystem            Size  Used Avail Use% Mounted on
/dev/root             230G   27G  203G  12% /

【讨论】:

  • 是的,从谷歌也得到了这个建议,这就是我发布 df -h 输出的原因。需要明确的是,/dev/md1 是存储会话文件的卷。所以,全驱动不是问题。它也不是来自 iNotes。还有其他想法吗?
【解决方案2】:

Apache 无法在文件上注册锁定时会报告此错误(它假定这是因为 fs 已满)。下次发生尝试运行

ipcs -s

并查找 apache 进程拥有的大量注册锁。然后,您可以使用 ipcrm 删除它们,或者使用内核变量 (kernel.sem) 提高它们的限制,如 In this blog post 所述。

【讨论】:

    【解决方案3】:

    终于记得用解决方案来回答了!结果发现一个目录中有太多文件。必须开始将会话文件散列到子目录中。

    【讨论】:

    • 嗯,你有没有关于你是如何做到这一点的任何指针/指南?我想我可能遇到了同样的问题。
    猜你喜欢
    • 1970-01-01
    • 2022-07-03
    • 2021-10-13
    • 2017-12-28
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多