怎么把做的网页放网站,合肥做兼职网站设计,从零开始制作 wordpress 主题,wordpress展示类主题转的网上的#xff0c;不过对PHP-CGI菜鸟的人#xff0c;还是有点帮助的。1. 一些php的扩展与php版本兼容存在问题#xff0c;实践证明 eAccelerater与某些php版本兼容存在问题#xff0c;具体表现时启动php-cgi进程后#xff0c;运行10多分钟#xff0c;奇慢无比#x…转的网上的不过对PHP-CGI菜鸟的人还是有点帮助的。1. 一些php的扩展与php版本兼容存在问题实践证明 eAccelerater与某些php版本兼容存在问题具体表现时启动php-cgi进程后运行10多分钟奇慢无比但静态资源访问很快服务器负载也很正常(说明nginx没有问题而是php-cgi进程的问题)解决办法就是从php.ini中禁止掉eAccelerater模块再重启php-cgi进程即可2. 程序中可能存在死循环导致服务器负载超高(使用top指令查看负载高达100), 需要借助Linux的proc虚拟文件系统找到具体的问题程序3. php程序不合理使用session , 这个发生在开源微博记事狗程序上具体表现是有少量php-cgi进程(不超过10个)的cpu使用率达98%以上 服务器负载在4-8之间这个问题的解决仍然需要借助Linux的proc文件系统找出原因。4. 程序中存在过度耗时且不可能完成的操作(还是程序的问题)例如discuz x 1.5的附件下载功能: source/module/forum/forum_attachement.php中的定义function getremotefile($file) {global $_G;set_time_limit(0);if(!readfile($_G[setting][ftp][attachurl].forum/.$file)) {$ftp ftpcmd(object);$tmpfile tempnam($_G[setting][attachdir], );if($ftp-ftp_get($tmpfile, forum/.$file, FTP_BINARY)) {readfile($tmpfile);unlink($tmpfile);} else {unlink($tmpfile);return FALSE;}}return TRUE;}没有对传入的参数作任何初步检查而且设置了永不超时并且使用readfile一次读取超大文件就可能存在以下问题A. 以http方式读取远程附件过度耗时B. FTP无法连接时如何及时反馈出错误C. readfile是一次性读取文件加载到内存中并输出当文件过大时内存消耗惊人根据实验发现采用readfile一次性读取内存消耗会明显增加但是CPU的利用率会下降较多。如果采用分段读取的方式内存消耗会稍微下降而CPU占用却会明显上升。对discuz x 1.5的这个bug较好解决方法就是后台重新正确设置远程附件参数。以下是我逐步整理的故障排除步骤1. 得到占用cpu资源过多的php-cgi进程的pid(进程id) 使用top命令即可如下图经过上图我们发现有两个php-cgi进程的cpu资源占用率过高pid分别是1005911570这一般都是程序优化不够造成如何定位问题的php程序位置2. 找出进程所使用的文件/proc/文件系统保存在内存中主要保存系统的状态关键配置等等而/proc/目录下有很多数字目录就是进程的相关信息如下图我们看看进程10059正在使用哪些文件显然使用了/home/tmp/sess_*文件这明显是PHP的session文件 我们查看这个session文件的内容为view_time|123333312412到这里我们已经可以怀疑是由于php程序写入一个叫view_time的session项而引起 那么剩余的事件就是检查包含view_time的所有php文件然后修改之(比如改用COOKIE)这实话 这个view_time并非敏感数据仅仅记录用户最后访问时间实在没必要使用代价巨大的session, 而应该使用cookie。3. 找出有问题的程序修改之使用vi编辑以下shell程序(假设网站程序位于/www目录下)#!/bin/bashfind /www/ -name *.php list.txtfcat ./list.txtfor n in $fdoregrep view_time $nif [ ! $r ] ; thenecho $nfidone运行这个shell程序将输出包含有view_time的文件 对记事狗微博系统产生的问题位于modules/topic.mod.class文件中