April 19, 2011
4.1 静态方法和属性-深入PHP面向对象.模式与实践
"\u003cp\u003e摘自: \u003ca href=\"http://www.verycd.com/topics/2830432/\"\u003e深入PHP面向对象.模式与实践\u003c/a\u003e 第四章 高级特性\n\u003cstrong\u003e4.1 静态方法和属性\u003c/strong\u003e\n第2章的所有例子使用的都是对象.我们把类当作生成对象的模板,把对象作为活动组件,对象的方法可以被调用,对象的属性可以被访问.之前的例子也暗示了,面向对象编程中的实际操都是通过类的实例(而不是类本身)完成的.毕竟类仅仅是对象的模板.\u003c/p\u003e\n\u003cp\u003e事实并非如此简单.我们不仅可以通过对象访问方法和属性,还可以通过类来访问它们.这样的方法和属性属性是”静态的”(static),必须用static关键字来声明.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eclass StaticExample{\nstatic public $sNum = 0;\nstatic public function sayHello) {\nprint “hello”;\n}\n}\u003c/p\u003e\u003c/blockquote\u003e\n\u003ch1 id=\"注解static关键字是在php5中引入的在php4程序中不能使用\"\u003e==========================================\n注解:static关键字是在php5中引入的,在php4程序中不能使用.\u003c/h1\u003e\n\u003cp\u003e静态方法是以类作为作用域的函数.静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性.如果修改了一个静态属性,那么这个类的所有实例都能 …\u003c/p\u003e"
April 18, 2011
自定义jquery validate 插件的默认提示语
"\u003cp\u003e\u003cstrong\u003e法一:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e一、默认校验规则\n(1)required:true 必输字段\n(2)remote:”check.php” 使用ajax方法调用check.php验证输入值\n(3)email:true 必须输入正确格式的电子邮件\n(4)url:true 必须输入正确格式的网址\n(5)date:true 必须输入正确格式的日期\n(6)dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性\n(7)number:true 必须输入合法的数字(负数,小数)\n(8)digits:true 必须输入整数\n(9)creditcard: 必须输入合法的信用卡号\n(10)equalTo:”#field” 输入值必须和#field相同\n(11)accept: 输入拥有合法后缀名的字符串(上传文件的后缀)\n(12)maxlength:5 输入长度最多是5的字符串(汉字算一个字符)\n(13)minlength:10 输入长度最小是10的字符串(汉字算一个字符)\n(14)rangelength:[5,10] 输入长度必须介于 5 和 10 之 …\u003c/p\u003e"
April 18, 2011
jquery Form 验证 validate插件使用
"\u003cp\u003e不过我们还要在需要验证的INPUT里面class加入required说明是必填项,其他的就是验证相关数据比如email就是验证email的数据结构\u003c/p\u003e\n\u003cp\u003e以下列出validate自带的默认验证\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003erequired: “必选字段”,\u003c/p\u003e\n\u003cp\u003eremote: check.php “使用ajax方法调用check.php验证输入值段”,\u003c/p\u003e\n\u003cp\u003eemail: “请输入正确格式的电子邮件”,\u003c/p\u003e\n\u003cp\u003eurl: “请输入合法的网址”,\u003c/p\u003e\n\u003cp\u003edate: “请输入合法的日期”,\u003c/p\u003e\n\u003cp\u003edateISO: “请输入合法的日期 (ISO).”,\u003c/p\u003e\n\u003cp\u003enumber: “请输入合法的数字”,\u003c/p\u003e\n\u003cp\u003edigits: “只能输入整数”,\u003c/p\u003e\n\u003cp\u003ecreditcard: “请输入合法的信用卡号”,\u003c/p\u003e\n\u003cp\u003eequalTo: “请再次输入相同的值”,\u003c/p\u003e\n\u003cp\u003eaccept: “请输入拥有合法后缀名的字符串”,\u003c/p\u003e\n\u003cp\u003emaxlength: jQuery.format(“请输入一个长度最多是 {0} 的字符串”),\u003c/p\u003e\n\u003cp\u003eminlength: jQuery.format(“请输入一个长度最少是 {0} 的字符串”),\u003c/p\u003e\n\u003cp\u003erangelength: jQuery.format(“请输入一个长度介于 {0} …\u003c/p\u003e\u003c/blockquote\u003e"
April 17, 2011
ipfw:getsockopt(IP_FW_GET):Protocol not available
"\u003cp\u003e本想通过防火墙限制一下,谁知输入出现下面的错误:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[root@Aaronwang ~]# ipfw show\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003eipfw: getsockopt(IP_FW_GET): Protocol not available\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e看来是我在编译内核的时候没有把IPFW编译进来,如果确信编译过了,那一定是没有reboot的问题了,我就是当时忘记reboot,才出现这个问题的.看来又要再编译一次内核了!上次内核编译是00:59:01,这次又是在半夜,看来我还真是个夜猫子!呵呵!\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[root@Aaronwang ~]# uname -a\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003eFreeBSD Aaronwang 7.2-RELEASE-p6 FreeBSD 7.2-RELEASE-p6 #5: Thu Jan 14 00:59:01 CST 2010 root@Aaron wang:/usr/obj/usr/src/sys/Aaron.wang i386\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e编译ipfw要在/root/Aaron.wang里面加入下列内容:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eoptions IPFIREWALL\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e这个选项将 IPFW 作为内核的一部分来启用。\u003c/p\u003e\n\u003cp\u003eoptions …\u003c/p\u003e"
April 17, 2011
FreeBSD IPFW 防火墙的安装和设置
"\u003cp\u003eIPFW本身是FreeBSD内置的,要使用IPFW设置防火墙需要重新编译FreeBSD内核。注意,因为在编译后IPFW默认拒绝所有网络服务,包括对系统本身都会拒绝,所以在配置过程中一定要小心谨慎。\u003c/p\u003e\n\u003cp\u003e内核编译方法请参考:\u003cstrong\u003eStep 1,对IPFW的一些基本参数进行配置:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e#cd /sys/i386/conf\u003c/strong\u003e//如果没有这个目录,说明你的系统没有安装Ports服务,要记得装上。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e#cp GENERIC ./kernel_IPFW\u003c/strong\u003e用 vi 打开kernel_IPFW文件,在文件未尾加入以下个行:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eoptions IPFIREWALL\u003c/strong\u003e//将包过滤部分代码编译进内核。\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003eoptions IPFIREWALL_VERBOSE\u003c/strong\u003e//启用通过Syslogd记录日志;如果没有指定这个选项,即使你在过滤规则中指定了记录包,也不会真的记录它们。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eoptions IPFIREWALL_VERBOSE_LIMIT=10\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e//限制通过Syslogd记录的每项包规则的记录条数。如果你受到了大量的攻击,想记录防火墙的活动,但又不想由于Syslog洪水一般的记录将你淹没,那么这个选项将会很有用。当使用了这条规则,当规则链中 …\u003c/p\u003e"
April 16, 2011
nginx下关于PHP-FPM在高负载下的优化配置
"\u003cp\u003e今天调整了服务器的PHP-FPM配置,其中有几个参数可以在网站在高并发下,保持服务器的稳定.不会挂掉.请看下面的内容.\u003c/p\u003e\n\u003cp\u003e代码:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\n \u0026lt;value name=\u0026#34;max_children\u0026#34;\u0026gt;5\u0026lt;/value\u0026gt;\n\n Settings group for \u0026#39;apache-like\u0026#39; pm style\n \u0026lt;value name=\u0026#34;apache_like\u0026#34;\u0026gt;\n\n Sets the number of server processes created on startup.\n Used only when \u0026#39;apache-like\u0026#39; pm_style is selected\n \u0026lt;value name=\u0026#34;StartServers\u0026#34;\u0026gt;20\u0026lt;/value\u0026gt;\n\n Sets the desired minimum number of idle server …\u003c/code\u003e\u003c/pre\u003e"
April 16, 2011
如何安装cacti监控nginx插件
"\u003cp\u003eScripts and templates for nginx.\u003c/p\u003e\n\u003cp\u003eNginx –\u003c/p\u003e\n\u003cp\u003eProvide graphing nginx clients statistics (active, reading, writing, waiting) and nginx socket statistics (accepts, handled, requests). It’s a formal devision used only for graphs usability.\u003c/p\u003e\n\u003cp\u003eFor use do next steps:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eEnable nginx http_stub_status_module at configure stage (if requared).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable stub status. Add to nginx.conf (in any server context):\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003elocation /nginx_status {\u003c/p\u003e\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003estub_status on;\u003c/p\u003e\u003c/blockquote\u003e\n\u003ch1 id=\"disable-access_log-if-requared\"\u003edisable access_log if requared\u003c/h1\u003e\n\u003cp\u003eaccess_log off;\u003c/p\u003e\n\u003cp\u003e#allow …\u003c/p\u003e"
April 16, 2011
nginx php-fpm性能优化设置
"\u003cp\u003eWhen you running a highload website with PHP-FPM via FastCGI, the following tips may be useful to you : )\n如果您高负载网站使用PHP-FPM管 理FastCGI,这些技巧也许对您有用:)\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eCompile PHP’s modules as less as possible, the simple the best (fast);\n1.尽量少安装PHP模块,最简单是最好(快)的\u003c/li\u003e\n\u003cli\u003eIncreas PHP FastCGI child number to 100 and even more. Sometime, 200 is OK! ( On 4GB memory server);\n2.把您的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e注:我的1g测试机,开64个是最好的,建议使用压力测试获取最佳值\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/04/nginx_php-fpm.png\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/04/nginx_php-fpm.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003col start=\"3\"\u003e\n\u003cli\u003e\n\u003cp\u003eUsing SOCKET PHP FastCGI, and put into /dev/shm on Linux;\n3.使用socket连 …\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e"
April 16, 2011
cacti 监控nginx 出现 no (LWP::UserAgent not found)的解决办法
"\u003cp\u003e在上一篇\u0026laquo; \u003ca href=\"http://blog.haohtml.com/archives/9288\"\u003e如何安装cacti监控nginx的插件\u003c/a\u003e \u0026raquo;文章里我们介绍了如何安装,但在最后发现执行\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eget_nginx_clients_status.pl \u003ca href=\"http://nginx.server.tld/nginx\"\u003ehttp://nginx.server.tld/nginx\u003c/a\u003e_status\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e的时候,提示 no (LWP::UserAgent not found) 错误的原因是该系统 perl 缺少了相关组建,解决办法:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[shell]yum -y install perl-libwww-perl[/shell]\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e如果还不行,再按下面的方法解决:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[shell]#perl -MCPAN -e shell 一直回车,知道出现cpan\u0026amp;amp;gt;\u0026amp;nbsp; 提示符开始。\n\ncpan\u0026amp;gt; install LWP::UserAgent\ncpan\u0026amp;gt; exit\n[/shell]\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e如果perl相关组件安装成功,就能正常显示了。\u003c/p\u003e\n\u003cp\u003e[root@localhost scripts]# ./get_nginx_clients_status.pl\nnginx_active:149 …\u003c/p\u003e"
April 16, 2011
[教程]Centos 5.5 快速安装cacti
"\u003cp\u003e\u003cstrong\u003e一、准备工作\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e环境:Centos 5.4 x86_64\n所需软件:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ehttp\nPhp\nPhp-mysql\nPhp-snmp\nMysql\nPerl-DBD-MySQL\nPhp-pdo\nrrdtool\nNet-snmp\nNet-snmp-libs\nNet-snmp-utils\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e#下载相关软件\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ecd /usr/local/src/\u003c/p\u003e\n\u003cp\u003ewget \u003ca href=\"http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz\"\u003ehttp://www.cacti.net/downloads/cacti-0.8.7e.tar.gz\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e二、环境介绍\u003c/strong\u003e\n主监控机是Centos 5.4 x86_64\n主监控机IP=10.0.0.52\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e三、安装配置\u003c/strong\u003e\n(1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,不再赘述,本处方便起见用yum装了\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eyum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e(2)在主监控机上安装rrdtool,rrdtool依赖的包过多,所以选择增加源,然后用yum安装\n#增 …\u003c/p\u003e"
April 13, 2011
20个Nginx Web服务器最佳安全实践
"\u003cp\u003eNginx是一个轻量级,高性能的Web服务器/反向代理和电子邮件代理(IMAP/POP3),它可以运行在UNIX,GNU/Linux,BSD变种,MAC OS X,Solaris和Microsoft Windows上。根据Netcraft的调查数据显示,互联网上6%的域名都使用了Nginx Web服务器。Nginx是解决C10K问题的服务器之一,与传统服务器不一样,Nginx不依赖于线程处理请求,相反,它使用了一个更具扩展性的事件驱动(异步)架构。Nginx在很多高流量网站上得到了应用,如WordPress,Hulu,Github和SourceForge。\u003c/p\u003e\n\u003cp\u003e本文的主要目是介绍如何提高运行在Linux或UNIX类操作系统上的Nginx Web服务器的安全性。\u003c/p\u003e\n\u003cp\u003eNginx默认配置文件和默认端口\u003c/p\u003e\n\u003cp\u003e◆ /usr/local/nginx/conf/ – Nginx服务器配置目录,/usr/local/nginx/conf/nginx.conf 是主配置文件\u003c/p\u003e\n\u003cp\u003e◆ /usr/local/nginx/html/ – 默认文档位置\u003c/p\u003e\n\u003cp\u003e◆ /usr/local/nginx/logs/ – …\u003c/p\u003e"
April 13, 2011
PHP.INI配置:Session配置详细说明教程
"\u003cp\u003e网上有很多PHP.INI文件配置的中文说明,但是对于PHP初学者来说在进行PHP运行环境搭建配置时还是容易一头雾水,今天换一种角度来分享如何进行php.ini配置,以求达到解决实际问题的效果,开篇以\u003ca href=\"http://www.leapsoul.cn/\"\u003ePHP教程\u003c/a\u003e方式详细介绍如何通过php.ini来配置Session,以实现基本的Session应用。\u003c/p\u003e\n\u003cp\u003e我们知道在利用PHP进行购物车、用户登录等交互式网站开发时,Session是一种很好的解决方法,如果采用\u003ca href=\"http://www.leapsoul.cn/?p=275\"\u003eXAMPP\u003c/a\u003e,\u003ca href=\"http://www.leapsoul.cn/?p=292\"\u003eAppServ\u003c/a\u003e等PHP安装包,一般情况下,PHP Session设置系统都会配置如果采用手动配置PHP运行环境,就需要我们通过php.ini来对Session进行配置,下面详细介绍如何进行Session配置。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePHP运行环境说明\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e我采用的是DedeAMPZ,PHP版本5.2.4,如果你是手动安装PHP运行环境,你需要将php.ini-dist或者php.ini-recommended重命名为php.ini,并将其复制在windows目录下。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ephp.ini中的session配置说明\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e下面介绍能让session运行的必要配置步骤\u003c/p\u003e\n\u003cp\u003e手动配置PHP运行环境时,最容易遗忘的一项是服务器 …\u003c/p\u003e"
April 11, 2011
linux CentOS中top命令参数说明
"\u003cp\u003e先来一些CentOS(Linux)的基础知识:用top命令查看CPU使用率\u003c/p\u003e\n\u003cp\u003eCentOS 是 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在 RHEL 的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。\u003c/p\u003e\n\u003cp\u003e在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 — 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。\u003c/p\u003e\n\u003cp\u003e在命令行中输入 “top” 即可启动 top ,运行后如下图所示:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/04/centos_top.gif\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/04/centos_top.gif\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e如上图所示,top 的全屏对话模式可分为3部分:\u003cstrong\u003e系统信息栏\u003c/strong\u003e、\u003cstrong\u003e命令输入栏\u003c/strong\u003e、\u003cstrong\u003e进程列表栏\u003c/strong\u003e。\u003c/p\u003e\n\u003cp\u003e第一部分 — 最上部的 系统信息栏 :\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e第一行(top):\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e“00:11:04”为系统当前时刻;\u003c/p\u003e\n\u003cp\u003e“3:35”为系统启动后到现在的运作时间;\u003c/p\u003e\n\u003cp\u003e“2 users”为当前登录到系统的用户,更确切的说是登录到用户 …\u003c/p\u003e"
April 11, 2011
CentOS系统如何查看cpu
"\u003cp\u003e在使用一个系统的时候,我们肯定要看看系统配置,而CentOS系统下看配置,可没有windows那么直观。你只能一个一个查看。如何查看CentOS系统的CPU也就让很多人不知所措了。\u003c/p\u003e\n\u003cp\u003e下面,我们就来学习一下如何在CentOS系统中查看CPU吧。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一:CentOS系统cpu\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[root@srv /]# more /proc/cpuinfo | grep “model name”\u003c/p\u003e\n\u003cp\u003emodel name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz\u003c/p\u003e\n\u003cp\u003emodel name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz\u003c/p\u003e\n\u003cp\u003emodel name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz\u003c/p\u003e\n\u003cp\u003emodel name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz\u003c/p\u003e\n\u003cp\u003e[root@srv /]# grep “model name” /proc/cpuinfo\u003c/p\u003e\n\u003cp\u003emodel name : …\u003c/p\u003e"
April 11, 2011
libiconv.so.2: cannot open shared object file解决办法
"\u003cp\u003e\u003cstrong\u003e解决办法如下:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1.在/etc/ld.so.conf中加一行/usr/local/lib,\u003c/p\u003e\n\u003cp\u003e2.然后运行/sbin/ldconfig,文件解决,没有报错了~~\u003c/p\u003e"