You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter 3网站/tmp目录满致写入失败问题求助

解决/tmp目录占满导致CodeIgniter Session写入失败的问题

临时应急:释放/tmp空间

  • 执行命令清理7天前的临时文件(安全且快速):
    find /tmp -type f -mtime +7 -delete
    
  • 若有cPanel文件管理器权限,可直接进入/tmp目录,手动删除大体积或明显过期的文件(注意避开正在被进程占用的文件)。

定位占用根源

  • 找出/tmp里占用空间最大的文件/目录:
    du -sh /tmp/*
    
  • 查看正在使用/tmp文件的进程,避免误删:
    lsof /tmp
    
  • 重点检查CodeIgniter的session文件(命名格式为ci_session_*),若大量堆积,说明session过期时间过长或垃圾回收机制失效。

优化CodeIgniter Session配置

修改application/config/config.php中的session相关参数:

  • 缩短session过期时间,根据业务需求调整,比如:
    $config['sess_expiration'] = 3600; // 1小时,默认7200秒
    
  • 启用session垃圾回收,调整触发概率:
    $config['sess_gc_probability'] = 1;
    $config['sess_gc_divisor'] = 100; // 每100次请求触发1次垃圾回收
    
  • 更换session存储路径到有剩余空间的目录,比如在网站根目录创建sessions文件夹(权限设为700),然后配置:
    $config['sess_save_path'] = '/home/your_cpanel_username/public_html/sessions';
    

服务器层面调整(需Root权限)

  • 扩容/tmp临时文件系统(针对独立VPS/服务器):
    1. 先卸载/tmp(确保无进程占用,否则先终止相关进程):
      umount /tmp
      
    2. 创建更大的临时镜像文件(示例为8G,按需调整):
      dd if=/dev/zero of=/tmp.img bs=1G count=8
      
    3. 格式化镜像:
      mkfs.ext4 /tmp.img
      
    4. 重新挂载:
      mount /tmp.img /tmp
      
    5. 设置开机自动挂载,编辑/etc/fstab添加:
      /tmp.img /tmp ext4 defaults,noatime 0 0
      
  • 若不需要单独/tmp分区,可将/tmp挂载到剩余空间充足的分区(如/home下的子目录),注意设置权限为1777(粘滞位)。

cPanel环境额外设置

  • 进入cPanel的PHP配置界面,确保php.ini中的session.gc_maxlifetime值与CodeIgniter的sess_expiration一致,避免回收机制冲突。
  • 开启cPanel的「临时文件清理」功能,配置定期清理规则,自动删除/tmp的过期文件。

内容的提问来源于stack exchange,提问作者ASHafizullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:55:15