phpwind8.7 突然发现Handler_read_rnd_next一天就跑了238G之巨
[ 2012-11-30 13:46:41 | 作者: admin ]
[color]im286: 排查之后认定受影响范围:除新装8.5之前升级上来的任何PW版本,有好奇心的可以去phpMyadmin查看一下自己MYSQL状态Handler_read_rnd_next部分,如果没人帮你排查过,你也中枪了……[/color]
故事背景:最近服务器老是不稳定,经查CPU有点离奇居高,以前平常也就10%以下,现在居然老会飙到20~40%不等,最主要的是Mysql占用的CPU线程一直高于40%~100%,虽然服务器是CPU*2 8核 内存8G还扛得住,但是总感觉论坛开始卡顿了,也没当回事,终于在前天mysql服务崩溃了,重启了之后开始关注这个问题,终于在phpMyadmin状态发现Handler_read_rnd_next一天不到就跑了 238G,之前没看这个数据,那不是n*T?!!!
不懂程序,不懂数据库,只好一边搜索一边排查,走了好多弯路:
1、优化my.cnf无效
...
阅读全文…
故事背景:最近服务器老是不稳定,经查CPU有点离奇居高,以前平常也就10%以下,现在居然老会飙到20~40%不等,最主要的是Mysql占用的CPU线程一直高于40%~100%,虽然服务器是CPU*2 8核 内存8G还扛得住,但是总感觉论坛开始卡顿了,也没当回事,终于在前天mysql服务崩溃了,重启了之后开始关注这个问题,终于在phpMyadmin状态发现Handler_read_rnd_next一天不到就跑了 238G,之前没看这个数据,那不是n*T?!!!
不懂程序,不懂数据库,只好一边搜索一边排查,走了好多弯路:
1、优化my.cnf无效
...
阅读全文…
PHP中strtr和str_replace比较
[ 2012-11-11 17:17:49 | 作者: admin ]
首先这2个函数都是具有替换字符功能的。但是strtr比str_replace性能上要块4倍。具体情况请看如下分解:
首先是strtr函数:
实例1:当被替换的值长度大于被替换目标的时候
实例2:当被替换的值长度小于被替换目标的时候
<?php
//这个时候输出的为laocai而不是lacai,因为str("pao")>strlen("la")
echo strtr("paocai!","pao","la");
?>
实例3:支持数组替换[code][/code]...
阅读全文…
首先是strtr函数:
实例1:当被替换的值长度大于被替换目标的时候
<?php
//这个时候输出的为baicai而不是bai123cai,因为str("pao")<strlen("bai123")
echo strtr("paocai!","pao","bai123");
?>
//这个时候输出的为baicai而不是bai123cai,因为str("pao")<strlen("bai123")
echo strtr("paocai!","pao","bai123");
?>
实例2:当被替换的值长度小于被替换目标的时候
<?php
//这个时候输出的为laocai而不是lacai,因为str("pao")>strlen("la")
echo strtr("paocai!","pao","la");
?>
实例3:支持数组替换[code][/code]...
阅读全文…
phpwind中pw_merge_posts建分表bug,造成个人空间主题回复数据不准确
[ 2012-11-01 20:03:54 | 作者: admin ]
p.s. 此bug存在于phpwind8.7正式版2011.11.11发布版本,目前(2012.11.1)下载版中还没有修复。
论坛一直有反馈说个人空间主题回复数不正确,每次重新分表之后能稍微消停下,稍微过点时间依旧出现强烈反馈
目前分表如下
pw_posts
pw_posts1
。。。
pw_posts9
对比发现 pw_posts9中的新数据,在合成表中pw_merge_posts不存在,也就是最后建立的表没有关联到pw_merge_posts,造成数据丢失。
导出pw_merge_posts结构,发现的确少了pw_posts9表,重建pw_merge_posts后问题解决
研究了下,发现/admin/bakup.php 中存在一个小问题
404行,新建回复分表时将最新回复表组合plist赋值给了tlist,造成更新Merge联合表的时候,少了最后建立的那个分表
阅读全文…
论坛一直有反馈说个人空间主题回复数不正确,每次重新分表之后能稍微消停下,稍微过点时间依旧出现强烈反馈
目前分表如下
pw_posts
pw_posts1
。。。
pw_posts9
对比发现 pw_posts9中的新数据,在合成表中pw_merge_posts不存在,也就是最后建立的表没有关联到pw_merge_posts,造成数据丢失。
导出pw_merge_posts结构,发现的确少了pw_posts9表,重建pw_merge_posts后问题解决
研究了下,发现/admin/bakup.php 中存在一个小问题
404行,新建回复分表时将最新回复表组合plist赋值给了tlist,造成更新Merge联合表的时候,少了最后建立的那个分表
$GLOBALS['db_tlist'] = $plist;
...阅读全文…
一个QQ登陆获取 access token 的问题
[ 2012-10-29 12:46:47 | 作者: admin ]
程序运行的结果是 access_token is empty
如果我将 token_url 直接在浏览器中输出 可以显示 access_token 为什么用 file_get_contents($token_url); 无法获取
阅读全文…
如果我将 token_url 直接在浏览器中输出 可以显示 access_token 为什么用 file_get_contents($token_url); 无法获取
$token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"
. "client_id=" .$qq_appid. "&redirect_uri=" . urlencode($login_allback)
. "&client_secret=" .$qq_appkey. "&code=" . $_REQUEST["code"];
//$response = get_url_contents($token_url);
$response
.... "client_id=" .$qq_appid. "&redirect_uri=" . urlencode($login_allback)
. "&client_secret=" .$qq_appkey. "&code=" . $_REQUEST["code"];
//$response = get_url_contents($token_url);
$response
阅读全文…
PHP“内存位置访问无效”
[ 2012-09-22 09:05:26 | 作者: admin ]
新配置的PHP环境,或者刚做过配置改动,比如新加载的DLL扩展,访问页面,可能会出现“内存位置访问无效。”的错误。主要原因是DLL扩展加载失败。
我们就需要找到是哪一个DLL文件加载出现了问题。排查方法是:
将php.ini中 display_startup_errors = Off 改为display_startup_errors = On 。
这时访问php页面,服务器上会弹出php错误的提示对话框,你就可以明确看到是哪一个dll文件加载失败,有时会有多个dll文件加载失败,需要你先分号(;)注释掉php.ini中提示那个dll后继续访问如此反复排查。
把出问题的dll都用分号(;)注释掉后,php就可以正常运行了。
上面是网上搜的方法,原理是对的,但是具体到我遇到的问题,不用那么麻烦,把IIS先暂停下,结束w3wp.exe进程,删除原来加载中的dll,重新添加新的dll,然后重新启动IIS即可以.
我们就需要找到是哪一个DLL文件加载出现了问题。排查方法是:
将php.ini中 display_startup_errors = Off 改为display_startup_errors = On 。
这时访问php页面,服务器上会弹出php错误的提示对话框,你就可以明确看到是哪一个dll文件加载失败,有时会有多个dll文件加载失败,需要你先分号(;)注释掉php.ini中提示那个dll后继续访问如此反复排查。
把出问题的dll都用分号(;)注释掉后,php就可以正常运行了。
上面是网上搜的方法,原理是对的,但是具体到我遇到的问题,不用那么麻烦,把IIS先暂停下,结束w3wp.exe进程,删除原来加载中的dll,重新添加新的dll,然后重新启动IIS即可以.
php FastCGI ISAPI win2003 iis6 20090214更新(精典)
[ 2012-09-19 09:56:13 | 作者: admin ]
【准备工作】
下载相关软件
PHP 5.2.6 zip package
http://www.php.net/releases/
Zend Optimizer v3.3.3
http://downloads.phpchina.com/zend/optimizer/
eAccelerator 0953 for PHP 5.2.6
http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds
ISAPI_Rewrite3_0058_manual.exe 手工安装
http://www.helicontech.com/download-isapi_rewrite3.htm
mysql5.0.67 Without installer (unzip in C:\)
http://dev.mysql.com/downloads/mysql/5.0.html
...
阅读全文…
下载相关软件
PHP 5.2.6 zip package
http://www.php.net/releases/
Zend Optimizer v3.3.3
http://downloads.phpchina.com/zend/optimizer/
eAccelerator 0953 for PHP 5.2.6
http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds
ISAPI_Rewrite3_0058_manual.exe 手工安装
http://www.helicontech.com/download-isapi_rewrite3.htm
mysql5.0.67 Without installer (unzip in C:\)
http://dev.mysql.com/downloads/mysql/5.0.html
...
阅读全文…
phpmyadmin导出mysql数据库时不能使用zip压缩,什么原因?
[ 2012-09-04 23:55:44 | 作者: admin ]
压缩后另存的文件不到1K,而且解压时提示“这个压缩文件格式未知或者数据已经被损坏”。
同样的mysql和phpmyadmin软件在本地电脑安装后是可以正常使用zip压缩导出的,可能是php设置的问题吧。
解决:
用记事本打开那个zip文件,可以看到详细错误提示
同样的mysql和phpmyadmin软件在本地电脑安装后是可以正常使用zip压缩导出的,可能是php设置的问题吧。
解决:
用记事本打开那个zip文件,可以看到详细错误提示
<br />
<b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tried to allocate 120627909 bytes) in <b>F:\webserver\virtual_host\5_host\www.52news.com.201004KBGT\apps\phpmyadmintianyang\libraries\zip.lib.php</b> on line <b>116</b><br />
<b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tried to allocate 120627909 bytes) in <b>F:\webserver\virtual_host\5_host\www.52news.com.201004KBGT\apps\phpmyadmintianyang\libraries\zip.lib.php</b> on line <b>116</b><br />
PHPSay-Microblog 单用户微博系统
[ 2012-07-26 21:15:58 | 作者: admin ]
p.s.以前使用过的一个单用户微博系统,今天又看到了,做个记录. 简洁漂亮.
PHPSay官方网站添加了微博的产品链接,这是一个单用户的开源微博系统,支持图片上传,支持同步到其它微博(比如Twitter,新浪微博,9911微博),程序部署在各自的空间里,与其他微博客系统不同之处在于,只要是这款微博客系统的用户,都可以实现相互关注的功能。
PHPSay开始还发布了一款贴吧产品,似乎都停止了更新.
PHPSay官方网站添加了微博的产品链接,这是一个单用户的开源微博系统,支持图片上传,支持同步到其它微博(比如Twitter,新浪微博,9911微博),程序部署在各自的空间里,与其他微博客系统不同之处在于,只要是这款微博客系统的用户,都可以实现相互关注的功能。
PHPSay开始还发布了一款贴吧产品,似乎都停止了更新.