代码改变世界

随笔分类 -  PHP

如何安装nginx_lua_module模块

2012-03-27 15:01 by 轩脉刃, 37284 阅读, 收藏, 编辑
摘要: 摘要: 本文记录如何安装ngx_lua模块 nginx_lua_module是由淘宝的工程师清无(王晓哲)和春来(章亦春)所开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力 http://wiki.nginx.org/HttpLuaModule 正文: 1 下载luajit 2.0并安装 http://luajit.o... 阅读全文

munin-因为plugin而亮

2012-03-20 16:18 by 轩脉刃, 2808 阅读, 收藏, 编辑
摘要: Munin is a networked resource monitoring tool that can help analyze resource trends and "what just happened to kill our performance?" problems. It is designed to be very plug and play. A default insta... 阅读全文

一些工作小收藏

2012-03-18 20:24 by 轩脉刃, 756 阅读, 收藏, 编辑
摘要: 安装fastcgi: http://www.cyberciti.biz/faq/rhel-fedora-install-configure-nginx-php5/ 在自己的虚拟机上安装munin 如何安装http://blog.jploh.com/2007/06/14/how-to-install-munin-on-centos/ 命令:php -r 'ech... 阅读全文

干净的代码是改出来的

2012-03-15 23:56 by 轩脉刃, 6896 阅读, 收藏, 编辑
摘要: 对于程序员来说,最终的也是最基本的目标就是能写出一手好的代码。随着代码量的增长,自身对什么是好的代码的认识也渐渐有了不断的调整。 1 注释真的那么重要么? 最好的注释就是代码。这句话确实是没有错误的。如果一个函数占用了一屏的版面,原因是由于各种各样的注释和解释性的 // ** 等说明文档,确实是比较恼人的。与其花过多的时间花精力在注释和说明的编写上面,不如花时间在变量名的编写上面。 ... 阅读全文

Webdis内部解析

2012-03-13 13:56 by 轩脉刃, 2717 阅读, 收藏, 编辑
摘要: Webdis是redis的http代理,源代码在:git://github.com/nicolasff/webdis.git webdis.json是配置文件 webdis.c是入口程序 其中有三个比较重要的结构:struct server { int fd; struct event ev; struct event_base *base; //libevent的event事件 stru... 阅读全文

XSS-从weibo蠕虫事件学习

2012-03-08 13:25 by 轩脉刃, 4133 阅读, 收藏, 编辑
摘要: XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。 Xss的例子(以新浪微博的6.9的hellosamy蠕虫事件为例): sina的名人堂页面页面上存在这么个链接 <a href="http://weibo.com/pub/star/g/123">这个是xss</a> 其实在服务器端是这么写的(猜... 阅读全文

Redis持久化之大数据服务暂停问题

2012-03-06 22:40 by 轩脉刃, 9072 阅读, 收藏, 编辑
摘要: Redis持久化是有两种方式:RDB和AOF 对这两种方式的官方文档的翻译请看: http://latteye.com/2011/11/redis-persistence.html RDB就是快照存储,比如“每1个小时对redis进行快照存储”。那么, save这个参数就应该设置save 3600 1000 //前一次快照3600秒后,当有超过1000个key被改动的时候就进行一次快照更新RDB快照产生dump.rdb文件,当每到快照时间,更新文件。AOF是存储所有的写操作,分两个步骤:fsync和rewritefsync是把内存中的写操作写入aof文件中rewrite是将写操... 阅读全文

按需讲解之Supervisor

2012-03-05 15:51 by 轩脉刃, 44927 阅读, 收藏, 编辑
摘要: Supervisor是一个进程监控程序。 满足的需求是:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor 先弄懂两个命令: supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令 supervisorctl:启动supervisor的命令行窗口。 需求:redis-server这个进程是运行redis的服务。我们要求这个服务能在意外停止后自动重启。 安装(Centos): yum install py... 阅读全文

拿什么守护你-PHP程序级守护进程的实现与优化

2012-03-04 07:42 by 轩脉刃, 3810 阅读, 收藏, 编辑
摘要: 首先需要解释的是什么是守护进程。 守护进程就是在后台一直运行的进程。比如我们启动的httpd,mysqld等进程都是常驻内存内运行的程序。 针对需求进行分析: 需求:有一个常驻队列messageQueue(假设在redis内存中),这个队列会有可能有请求不定期的往队列中增加元素。同时我们要求在队列中有元素的时候,按照队列顺序将元素pop出来,并进行处理(假设这个处理只是echo ‘test’); 解决方法: 现在假设已经有了两个函数 function oPopMessageQueue(){ …} //获取队列最后一个元素; function vDealElement(... 阅读全文

一些命令小贴士

2012-03-03 08:50 by 轩脉刃, 427 阅读, 收藏, 编辑
摘要: Time php test.php 能显示这个程序的运行时间 Php -m 显示php 安装了哪些扩展 后台运行程序: nohup redis-server & Yum search zeromq 查找与zeromq匹配的程序 阅读全文

zeromq_传说中最快的消息队列

2012-03-03 08:42 by 轩脉刃, 20594 阅读, 收藏, 编辑
摘要: Zeromq的资源: Zeromq模式: http://blog.codingnow.com/2011/02/zeromq_message_patterns.html zeromq主页: http://www.zeromq.org/ Zeromq Guild: http://zguide.zeromq.org/page:all#Fixing-the-World Zerom... 阅读全文

git使用安装实战

2012-02-22 13:37 by 轩脉刃, 769 阅读, 收藏, 编辑
摘要: 安装环境:Windows 1 安装msysgit 进入到http://code.google.com/p/msysgit/ 下载Git-1.7.60preview20110708.exe版本 按默认安装 2 安装TotoiseGit http://code.google.com/p/tortoisegit/downloads/list 下载 最新版本,并安装 3 设置个人信息 开始--所有程序--TotoiseGet--Setting Git--config 填写UserInfo的Name和Email 4 基本的TotoiseGit使用和Tot... 阅读全文

redis的那些事

2012-02-21 18:32 by 轩脉刃, 3144 阅读, 收藏, 编辑
摘要: 持久化redis支持RDB和AOF两种持久化方式 The RDB persistence performs point-in-time snapshots of your dataset at specified intervals. RDB是一种即时快照的存储方式,定时对数据库进行snapshot RDB优点: 1 RDB对于数据备份非常容易。你可以设置1天或者30天对数据进行一次备份,这样当发生数据灾难的时候能很容易恢复 2 由于RDB对数据备份时redis只做备份操作,所以备份最大化的使用了redis的性能,同时也导致了对于大的数据集,RDB备份快于AOF RDB缺点... 阅读全文

redis搭建实战记录

2012-02-20 00:11 by 轩脉刃, 15248 阅读, 收藏, 编辑
摘要: Redis is an open source, advancedkey-value store. It is often referred to as adata structure serversince keys can containstrings,hashes,lists,setsandsorted sets. -- fromhttp://redis.io/redis是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注。他的特点是支持各种数据结构,stirng,hashes, list,set,和sorted setsclien 阅读全文

open-flash-chart + PHP + jQuery实例

2012-02-17 01:16 by 轩脉刃, 3763 阅读, 收藏, 编辑
摘要: 这个文章说一下open-flash-chart和PHP和jQuery的结合使用的例子 需求UI:解释下这个需求: 1 下方是一个flash的图表 2 上方有复选框,日活跃和周活跃用户 3 右方的一周和一月的span标签选择是显示x坐标轴的时间范围,有昨天起前一周和前一月两个选择4 点击左边的复选框和右边的span标签都会更新flash统计表实现步骤:1 下载open-flash-chart 2.0 这里使用的版本是: open-flash-chart-2-Lug-Wyrm-Charmer 2 将里面的js(json.js, swfobject.js)和php-ofc-li... 阅读全文

open-flash-chart 教程例子实现

2012-02-14 18:38 by 轩脉刃, 2749 阅读, 收藏, 编辑
摘要: 今天测试使用了一下open-flash-chart来制作图表1 首先明确是使用open-flash-chart 1.XX 还是 2.XX这点很重要,有一段时候就是在用2.XX的liberary在调1.XX的例子version 2的使用教程:http://teethgrinder.co.uk/open-flash-chart-2/tutorial.phpversion2下载版本是:open-flash-chart-2-Lug-Wyrm-Charmer2 走了一遍教程,附上教程的实现文章的代码有的路径有问题,稍微改一下就能对了可使用的代码:https://github.com/jianfengye 阅读全文

MySQL体系结构

2012-02-06 07:59 by 轩脉刃, 35306 阅读, 收藏, 编辑
摘要: 了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的1 Connectors指的是不同语言中与SQL的交互2 Management Serveices & Utilities: 系统管理和控制工具3 Connection Pool: 连接池。管理缓冲用户连接,线程处理等需要缓存的需求4 SQL Interface: SQL接口。接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface5 Parser: 解析器。SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YAC 阅读全文

PHP面试题集

2012-02-03 01:10 by 轩脉刃, 92953 阅读, 收藏, 编辑
摘要: 汗~~做了一下网络上的php题目,不知不觉做到现在.....把答案贴出来如果有问题请欢迎补充和指正 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)$a = date("Y-m-d H:i:s", strtotime("-1 day"));print_r($a); 2、echo(),print(),print_r()的区别(3分)echo 和print不是一个函数,是一个语言结构int print(string $arg), 只有一个参数echo $arg1,$arg2; 可以输出多个参数,返回voidecho和print 阅读全文

浏览器书签插件__51cto文章转帖到开心网

2012-01-27 23:55 by 轩脉刃, 387 阅读, 收藏, 编辑
摘要: 目标:将51cto中在浏览中的文章摘录作为开心网的转帖1 脚本javascript:var title = document.querySelectorAll(".font_1")[0].innerHTML;var mainContent = document.querySelectorAll(".zh_left_3_4")[0].innerHTML;var kxurl = "http://www.kaixin001.com/repaste/share.php?rurl="+ location.href + "&rt 阅读全文

PHP写UltraEdit插件脚本

2011-12-26 08:31 by 轩脉刃, 2499 阅读, 收藏, 编辑
摘要: 需求:1 svn上的代码在本地(编辑器UltraEdit)有一套,在开发机(centos)上有一套,需要本地的代码修改以后上传到开发机上2 不直接在开发机上修改和使用,原因是有多个人都使用同一个开发机,为了保留本地备份思路:1 写一个脚本作为UltraEdit的插件,使得代码修改后按下制定按键就能直接将代码本地保存后上传到centos上2 本地是windows,远程是linux,文件上传工具可以使用pscp.exe,脚本语言使用PHP或者Python3 本地必须安装PHP,不需要安装数据库和apache4 在PHP中起一个进程调用pscp.exe, 解析路径等逻辑放在php中步骤:1 Ulta 阅读全文