由Apache 500错误引出的临时文件问题分析解决

softyun3年前云服务器23

查看apache日志,发觉是mod_fcgid模块异常,提示"Connection reset by peer:mod_fcgid:error reading data from FastCGI server"、"Premature end of script headers:index.php"、"process /usr/... apache/cgi-bin exit(communication error, get unexpected signal 7",说白了就是php提前终止执行,没有返回header就退出。

我依据这些错误在网上搜索了很久,始终没有找到满意答案,甚至还被人误导,以为mod_fcgid模块配置的问题。

在没有找到解决方法之前,我一直在想,php最近虽然慢了点,但至少能运行,说明配置是没有问题;而且,如果现在执行phpinfo(),程序依然能够执行。我再次梳理出错规律,发觉include多的mvc框架就会提示500内部错误。其它简单的程序就能够运行。这说明什么?!说明php已经不能include文件了,为什么?只能是请求这些资源时动了临时文件,而临时文件没有多余空间了。

运行

?

1
df -h






发觉果然如此

?

1
2
3
Filesystem  Size  Used  Avail Use%  Mounted on
/dev/sda1  6.8G  6.5G  17M  100%  /
...






系统主目录/下已经爆掉了。

于是,查找大文件

?

1
find / -type f -size +300M






发觉php插件Xdebug产生了很多性能分析文件,而且都是以100M记。

?

1
2
3
/tmp/profiler/cachegrind.out.1336
/tmp/profiler/cachegrind.out.1329
....






于是修改php.ini,将分析文件存放在其它地方,或者干脆不保存。

?

1
2
# close xdebug profiler in php.ini
xdebug.profiler_enable = off






再删除xdebug性能分析目录和php var跟踪目录

?

1
2
rm -rf /tmp/profilter
rm -rf /tmp/trace






再次查看硬盘情况,发觉已使用为26%,剩余4.9G。

?

1
2
3
Filesystem  Size  Used  Avail Use%  Mounted on
/dev/sda1  6.8G  1.7G  4.9M  26%  /
...






甚至不用重启httpd服务器,刷新web,又正常运行了!!!

为免除后患,我们需要安装一个定时清理软件--tmpwatch,设置/etc/cron.daily/tmpwatch配置里面的定时时间

?

1
usr/sbin/tmpwatch "$flags" 30d /var/tmp






改为7d(必须以天为单位)

?

1
usr/sbin/tmpwatch "$flags" 7d /var/tmp






一个星期定时清理一次。

标签: 500错误
免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

宝塔面板安装PHP扩展出现500错误的处理方法

宝塔面板是我们常用的服务器管理软件之一,操作比较简单,它提供有Linux版和Windows版。例如我们购买了一台香港服务器(Windows系统),可通过安装宝塔Windows面板来搭建网站Web管理环...

美国服务器网站出现500错误的原因有哪些

美国服务器网站出现500错误的原因有:1、ASP语法使用不当;2、ACCESS数据库连接语句错误;3、系统文件引用与包含路径出错导致;4、网站程序中存在美国服务器不支持的组件。具体内容如下:1、美国服...

Apache上传文件500错误的解决方法

打开Apache的httpd.conf配置文件,在这个文件里增加下面的参数设置即可。 复制代码 代码如下:MaxRequestLen 10240000我这里设置为10M,比PHP上传默认最大值8M略大...