0-家人
0-新酷应用
startups
友情链接
同事
日历
2010 九月 一 二 三 四 五 六 日 « 八 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -
最近文章
搜索
近期评论
- Think In LAMP Blog » Blog Archive » PHP每月通讯(2010年9月) 在 PHP中的一些language construct 上的评论
- Think In LAMP Blog » Blog Archive » PHP每月通讯(2010年9月) 在 稍显寒酸的一个PHP框架:supermin 上的评论
- Tokyo Cabinet乱贴(未整理,仅供自己做笔记) « LAMP架构网站开发指南|Kenneth@Beijing2010 在 Tokyo Cabinet:另一个DBM实现 上的评论
- Anders 在 cloudapi 悄然上线,欢迎各方人士拍砖 上的评论
- key 在 新博开张 上的评论
- 怎么样 在 新博开张 上的评论
- timberland boots uk 在 新博开张 上的评论
- 小宝 在 稍显寒酸的一个PHP框架:supermin 上的评论
- fengfeng 在 稍显寒酸的一个PHP框架:supermin 上的评论
- deli 在 好色的程序员:怎么加上彩色显示 上的评论
分类目录归档:php技术
nginx在fastcgi模块中转发真实的后端IP
网上流传着一份nginx fastcgi_params,大家在nginx下用fastcgi跑PHP大多用的是这个版本,但是这个版本有2个问题,1是默认的buffersize太小,php一旦输出比较多的error_log就挂了,2是没有转发HTTP_X_FORWARD_FOR和HTTP_CLIENT_IP这两个变量.我的服务器是在lighttpd后面跑的nginx+php,wordpress收不到正确的IP,于是垃圾评论无法正常工作.现在我改了一份更合用的版本,提供出来. fastcgi_buffers 8 128k; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI … 继续阅读
稍显寒酸的一个PHP框架:supermin
我曾经很长时间不搞什么PHP框架(框架神马的最讨人厌鸟) 我身边很多哥们,都是PHP大牛,所以,每人都写了自己的PHP框架,所以,其实我用不管谁的框架看上去都挺得罪人的,嗯,于是我只能是啥框架也不用了. 不过前一阵团队某个人自己引入了一个框架,然后做完了一个项目,接下来就拍拍屁股走人鸟~~ 于是我总结了几个规律,我称之为徐氏定律: 如果一个项目只有一个人全盘负责,这个人一定会离职; 如果一个项目你不盯着,一定会出问题; 如果让一个人自己负责一个东西,不搞个需求评审过一下,他肯定会假想一堆需求; 如果一个程序员去设计一个框架,他肯定想着跨平台,多引擎支持,肯定想着做到老少咸宜男女通吃. 于是我决定写一个真正够用的好用的框架,在公司内部强行推介一下,你可以不用框架,但是如果你要用的话必须用我的框架;没有经过一大堆同事的评审和我的许可,你不可以使用自己写的框架,尤其是,我们基本没有工夫让谁写个牛B的框架…. 嗯,于是回家我就开始搞,用了两个晚上,加起来一共不到20个小时的时间,我的超小精框架出厂了,我一向猥琐,嗯,也给起了个猥琐的名字:SM.嗯,全称是:supermini. 几百行代码而已,但是我觉得已经够用了,主要封装两个东西,一个是数据库访问,可以帮您连数据库和拼凑sql语句,另一个东西是一个Form表单生成工具. 这是一个很有特色的框架,嗯,其实连框架都称不上,就一个600来行的小lib而已,都还没有在生产环境上进行过实验,所以暂时不放代码出来.不过这个小框架包含了我对PHP的理解,嗯,每一种框架都是作者的程序哲学的体现.先来个PPT介绍一下基本逻辑.这个PPT是HTML5做的,请用chrome观看. 详情请参见:”迷你PHP框架supermini简介”. 本文由蝌蚪安尼友情赞助.相关文章CakePHP入门…译文,请勿转载.开源项目寻求协助:今天很开心什么样的Ajax框架是一个好框架?google排名内部优化攻略动网论坛的影响和事物的连锁效应为什么我认为每个穷网站开发程序员都应该用Linux[工具篇]跟覃总聊了好久php高手之路之—返樸归真web开发中几个你可能不曾想到的要点:
检测文本正文是否包含有特定词的PHP扩展
acfilter 用于实现查询某段文本中是否含有指定的词(当前禁词越来越多的情况下,
是有必要开发一个扩展来干这个了):在词库够大的情况下,能实现一定的分词的功能; 继续阅读
PHP版的slow-query
slowphp是由本人开发的一个简单的PHP扩展。目的在于记录web server上执行时间过长的php脚本。用法和mysql上的slow query极为相似。 代码地址:http://github.com/xurenlu/slowphp/.本周内即可完成全部功能。 版本: 1.0 示例:在php.ini中加入: extension=slowphp.so [slowphp] slowphp.long_query_time=3 slowphp.long_query_log="/var/log/php_long_query.log" 然后重启yapache,运行一段时间后即可查看/var/log/php_long_query.php中记录下了慢脚本的启动时间,消耗时间和脚本路径。 下一步功能: 为了方便调试,下一步将在ini中多加这样两项配置: slowphp.long_query_log_probability=0.0001 slowphp.long_query_lock_file="/tmp/open_long_query" 功能分别为: 1.有0.0001的概率记录当前脚本执行时间。 2.有/tmp/open_long_query文件存在时才记录脚本运行文件。 这样一来能极大地方便线上脚本运行效率的监控。 本文由蝌蚪安尼友情赞助.相关文章缓慢的drop table 操作请大家悄悄地推一份工作,谢谢~outlook express/foxmail 邮件转入evolution的方法为什么我认为每个穷网站开发程序员都应该用Linux[工具篇]通过XOOPS模块整合Mu.wordpress的完整方案(一)Perl常见错误小钱包网站上新版了更改字符集设置[译文]珍爱生命,远离IT之-艾滋病
PHP注释查看器
今天用着pydoc用的特爽,特希望能够找到一个php下的查看注释的工具。php生成文档倒是有一个phpdocument,另外还有一个给c/c++生成文档的doxygen也能用来给php生成文档。可是就是都太麻烦。于是我的用py写了一个查看php的注释的,能够逐行读入php代码,区分用/*来给出的注释。目前只能查看phpdocument方式的注释,另外,类里面的函数不能正确给出类名。不过在很多情况下够用了。关键是小巧。 请在http://xurenlu.googlecode.com/files/phpcomment.py 这里下载。使用很简单。用 phpcomment.py < phpfile 或 phpcomment.py phpfile即可。 本文由蝌蚪安尼友情赞助.相关文章php高手之路之—屠龙宝刀Bug,又见Bug…Fedora 8显卡相关技巧小技术团队的成长php-APC介绍专业的与非专业的对比:金山的下载器做前端工程师的一点儿总结PHP版的slow-query项目进度
动态域名方案之:phppod
2010.03.31:请最近这几天使用phppod有问题的升级到1.0.6版本; 最新更新:到http://github.com/xurenlu/phppod/downloads 去下载1.05的 然后运行 /usr/share/podclient/initconf.php -u **** -p **** 初始化一份配置文件,存到 /etc/podclientd.conf 中,手动修改必须的参数,再启动之. phppod是我开发的一套unix/linux/mac下的动态域名方案。这是一个dnspod.com的API的客端.用户只需要配置/etc /podclientd.conf这个配置文件,即可随时更新dnspod上的ip信息.[这个项目一没有高性能,二也不功能强大...,就是方便实用吧.] 项目托管在http://code.google.com/p/phppod/. 项目的新主页: http://github.com/xurenlu/phppod/ 这是一个花生壳的替代方案。花生壳的特点是各种客户端等都很齐全,不少路由器也内置了花生壳的方案。但缺点也很明显,不能使有花生壳来绑定顶级域名,个数也有限制。而dnspod.com的服务却可以让你添加n个顶级域名,每个顶级域名下可添加数个子域名。另外,dnspod.com的服务可以依据线路选择解析到不同的IP上。 DNSPOD已经管理着数十万个站点的dns,是一个可靠的目前[至少到目前为止]. 使用方法: 1.先通过dnspod.com的网站注册,将您的域名的dns解析转移给dnspod.com; 2.在您的机器上安装phppod. 如果是ubuntu/debian系列,请从项目主页下载deb包: dpkg -i phppod-*.deb 如果是其他linux/unix版本,请从项目主页下载src包,按照README的说明来安装。: <pre> $cd phppod-1.0.0 $cd pkg $sudo make install </pre> 来安装. 3.配置: 请修改/etc/podclientd.conf文件. 4.运行: … 继续阅读
发表在 my projects, php技术
28 条评论
用fastCGI协议进行RPC调用
近来由于业务量急剧增长,业务种类越来越多,RPC混乱问题就凸现出来. 具体表现是: a1,a2,a3,a4 为一组服务器,为用户提供A服务. b1,b2,b3为一组服务器,为用户提供B服务. c1,c2,c3为一组服务器,为用户提供C服务. 最初各服务器各自服务是不太相关的.随着业务拓展,用户提出新的需求,我们需要 在A服务中调用B组服务器的API接口. …. 最后我们发现这样一个现象: 用户请求a1 提供服务.a1发现他需要知道另一些数据,于是调用b2的rpc服务.但是b2 上这个数据又需要c3的RPC.结果c3又需要a2来提供一些数据…. 我们的远程调用调来调去,最后把自己调晕了. 于是我开始考虑一种解决方案。 首先当然是:对远程调用加以控制和规范,避免不必要的远程调用。 接着我注意到,我们利用CURL来通过http通道进行远程调用其实是没必要的。我可以在做远程调用时,走FastCGI协议。 说干就干: 第一步:建立一个fastCGI:spawn-php #!/bin/bash ## ABSOLUTE path to the spawn-fcgi binary SPAWNFCGI="/home/y/opt/lighttpd/bin/spawn-fcgi" ## ABSOLUTE path to the PHP binary FCGIPROGRAM="/home/y/opt/php/bin/php-cgi" ## … 继续阅读
用ab来做性能测评好像不公平吧?
我的师兄,从某种程度上说也是我php方面的师父,和他的同事做了测评,分别是针对php4,php5的性能对比和function,class的性能对比的。 这里是师兄的对比结果 师兄的同事做的测评 但是我不认为用ab来做出的测试是合理的.理由:用ab来测试时,结果好像总似是在跳舞一样.做为证据,我将我的notebook依文本方式重启,用ab来测lighttpd的表现. 具体环境: Haier H40S Notebook RAM:1.5G CPU:CY 1.6GHz 硬盘:60G,(具体型号什么的不清楚,列个60G表示不是SCSI硬盘) OS:Fedora Core 7.0(Moonshine) web server:lighttpd 1.4.15 测试工具:ab X环境:未运行X server 命令:ab -n 10000 -c 50 http://localhost:8181/ 第一份结果: This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam … 继续阅读
老覃的性能测试
老覃同学做了一个测试,来比较PHP5下利用function,class来编程时的效率差异。 我一向喜欢钻牛角尖: 有两个疑问: 1.ab本身的文档说了,ab自身是需要CPU资源的,有时候要注意你可能不是在测apache的性能,而是在测ab这个软件的性能。老覃同志如何去除ab的影响? 2.php编译时也是花费CPU时间的。我做了另一组测试: //t1.php function signin() { echo “signin”; } signin(); ?> ab -n 10000 -c 50 的结果是: 1534.15 [#/sec] Time per request: 32.591 [ms] (mean) ,再另外一个: function signin() { echo “signin”; } //signin(); ?> ab -n 10000 … 继续阅读
聪明人的算法
两段代码,都是用来1到100之前计算三次方的. 同样的代码,第一个其实只需要一行(当然要考虑美观,分成了四行); 第二个估计要用上100来行;但是哪个更快呢?…. 读者说哪个程序更好? function getPower($n) { return $n*$n*$n; } global $data; $data=array( 1=>1, 2=>8, 3=>27, 4=>64, 5=>125… ); function getPower($n) { global $n; return $data[$n]; } 本文由蝌蚪安尼友情赞助.相关文章一个有意思的题当当的“特别推荐“是怎么算出来的?常用于web spider中URL排重的Bloom Filter算法学习…Alexa作弊大解密歌颂一下流氓php高手之路之—返樸归真转型中…Spread 简介(试译)看过”Google 发现的十大真理 “和高春辉参加站长大会的感想整理了一份招PHP高级工程师的面试题