你打开网站后台突然看到”磁盘空间不足”的红色警告,上传图片转半天就是传不上去,数据库莫名其妙报错…这时候是不是特别想砸键盘?别慌!八成是你服务器的tmp目录在搞事情。这个平时不起眼的小文件夹,关键时刻掉链子真能把人逼疯。
先搞清楚tmp目录是干啥的
想象下你手机里有个”临时垃圾桶”,所有APP运行时产生的垃圾文件都往里丢。cPanel的tmp目录就是干这个的——网站程序运行时的缓存文件、用户上传的临时素材、数据库备份的临时包全堆在这儿。问题在于,这货默认只有2GB空间,等哪天你的网站访问量上来,分分钟就塞满给你看。
动手前必做的三件事
第一招:查查硬盘还剩多少粮 连上SSH输入df -h,重点看挂载点为/home的那行。要是使用率都90%以上了,光清tmp目录就是治标不治本。这时候得考虑升级服务器硬盘,或者把大文件迁移到其他分区。
第二招:揪出吃空间的元凶 运行du -sh /home/tmp/* | sort -rh | head -10,立马能看到tmp目录里体积排名前十的文件。上次我就见过有个客户的临时备份文件占了整整8GB,他自己都不知道什么时候生成的。
第三招:紧急瘦身大法 直接删文件太粗暴?试试find /home/tmp/ -type f -mtime +3 -delete。这个命令会清理三天前的临时文件,既能腾出空间又不会误删正在使用的文件。不过要注意,有些程序可能需要保留更久的临时文件,具体天数得看实际情况。
永久扩容的正确姿势
临时清空治标不治本,咱们得从根本上解决问题。登录WHM控制台,找到”调整分区大小”的选项。这里有个坑——扩容前必须保证有未分配的磁盘空间。如果服务器硬盘已经用满,得先联系主机商升级配置。
假设你现在有20GB空闲空间,建议给tmp目录分配5-10GB。改完别急着退出,顺手把php.ini里的upload_tmp_dir和session.save_path都指向新扩容的路径。改完配置不重启服务等于白干,记得用systemctl restart httpd重启web服务。
自问自答环节
Q:为啥不直接删光tmp目录? A:正在运行的程序可能还在调用里面的文件,全删了可能导致网站崩溃。就像你不能在别人吃饭时突然撤走盘子对吧?
Q:扩容后网站还是报错咋整? A:八成是权限问题。用chmod 1777 /home/tmp设置粘滞位,既保证程序能写入,又防止用户互相删除文件。再检查selinux状态,临时关掉试试看是不是它在作妖。
Q:有没有自动清理的方案? A:在crontab里加个定时任务:0 3 * * * find /home/tmp/ -type f -mtime +7 -exec rm -f {} \; 每天凌晨3点自动清理七天前的文件。怕误删的话,可以先改成-mtime +30试运行一个月。
小编踩过的坑
上次给客户扩容tmp目录,手滑少打了个斜杠,结果把整个home目录路径改乱了。吓得我连夜恢复备份,现在养成了改配置前必做快照的习惯。还有个客户死活不肯升级硬盘,非要我把tmp目录链到/home目录外,结果路径不兼容搞出无数404错误。所以啊,该花的钱还是得花,服务器配置跟不上,再好的运维也救不回来。
本站文章由SEO技术博客撰稿人原创,作者:阿君创作,如若转载请注明原文及出处:https://www.ainiseo.com/hosting/17368.html