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

最近老是发觉centos下的php出现各种各样的问题,先是smarty大点就中断执行,然后,运行速度好像变慢,到今晚。。。,终于罢工了--500内部错误。

查看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文件了,为什么?只能是请求这些资源时动了临时文件,而临时文件没有多余空间了。

运行

df -h

发觉果然如此

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

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

于是,查找大文件

find / -type f -size +300M

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

/tmp/profiler/cachegrind.out.1336
/tmp/profiler/cachegrind.out.1329
....

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

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

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

rm -rf /tmp/profilter
rm -rf /tmp/trace

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

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

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

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

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

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

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

一个星期定时清理一次。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

安装 Apache 出现 OS 10013 以一种访问权限不允许的方式做了一个访问套接字的尝试 如下截图: 提示: make_sock: could not bind to address 0.0.0.0:80 这个问题有由于计算机上安装了IIS7,80端口已占用。 打开Apache 的配置文件 Apache安装目录下的conf/htt
apache web服务器的站点,下载pptx,docx,xlsx文件,却被浏览器当作zip文件保存。 这不是浏览器的问题,而是apache不认docx,pptx,,xlsx等Microsoft Office 2007+的文件格式,而这些文件本身是zip压缩文件,所以被apache当作zip压缩文件发给浏览器了。 做个形
网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定。 我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/web。 我们首先设定网站目录和文件的所有者和所有组为centos,www,如下
Apache mod_ssl 配置多个虚拟主机支持SSL子站,以下配置适用于httpd 2.4+,对于不支持define指令的低版本Apache httpd Web Server,把SSLROOT换成所定义的路径即可。配置中的${WROOT}是httpd.conf中通过define指令定义的一个变量,值为D:/Web/www/ 在httpd.c
在apache的配置文件http.conf中最下面加入了这句,把这段注销掉或者去掉再重启apache就可以启动了! #Begin SafeDogSite-ApacheFilter edits - remove only on uninstall Include d:/wamp/bin/apache/apache2.4.4/conf/SafeDogSiteApacheFilter.Conf #End Sa
在windows和RH都碰到过,只要把主目录指到其他地方后就出现权限不够的403提示,郁闷了好久。