jquery Form 验证 validate插件使用

不过我们还要在需要验证的INPUT里面class加入required说明是必填项,其他的就是验证相关数据比如email就是验证email的数据结构

以下列出validate自带的默认验证

required: "必选字段",

remote: check.php "使用ajax方法调用check.php验证输入值段",

email: "请输入正确格式的电子邮件",

url: "请输入合法的网址",

date: "请输入合法的日期",

dateISO: "请输入合法的日期 (ISO).",

number: "请输入合法的数字",

digits: "只能输入整数",

creditcard: "请输入合法的信用卡号",

equalTo: "请再次输入相同的值",

accept: "请输入拥有合法后缀名的字符串",

maxlength: jQuery.format("请输入一个长度最多是 {0} 的字符串"),

minlength: jQuery.format("请输入一个长度最少是 {0} 的字符串"),

rangelength: jQuery.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),

range: jQuery.format("请输入一个介于 {0} 和 {1} 之间的值"),

max: jQuery.format("请输入一个最大为 {0} 的值"),

min: jQuery.format("请输入一个最小为 {0} 的值")

 

Continue reading

ipfw:getsockopt(IP_FW_GET):Protocol not available

本想通过防火墙限制一下,谁知输入出现下面的错误:

[root@Aaronwang ~]# ipfw show
ipfw: getsockopt(IP_FW_GET): Protocol not available

看来是我在编译内核的时候没有把IPFW编译进来,如果确信编译过了,那一定是没有reboot的问题了,我就是当时忘记reboot,才出现这个问题的.看来又要再编译一次内核了!上次内核编译是00:59:01,这次又是在半夜,看来我还真是个夜猫子!呵呵!

[root@Aaronwang ~]# uname -a
FreeBSD 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

编译ipfw要在/root/Aaron.wang里面加入下列内容: Continue reading

FreeBSD IPFW 防火墙的安装和设置

IPFW本身是FreeBSD内置的,要使用IPFW设置防火墙需要重新编译FreeBSD内核。注意,因为在编译后IPFW默认拒绝所有网络服务,包括对系统本身都会拒绝,所以在配置过程中一定要小心谨慎。

内核编译方法请参考:http://docs.haohtml.com/FreeBSD-Manual/kernelconfig-building.html

Step 1,对IPFW的一些基本参数进行配置:
#cd /sys/i386/conf
//如果没有这个目录,说明你的系统没有安装Ports服务,要记得装上。
#cp GENERIC ./kernel_IPFW

用 vi 打开kernel_IPFW文件,在文件未尾加入以下个行:

options IPFIREWALL //将包过滤部分代码编译进内核。

options IPFIREWALL_VERBOSE
//启用通过Syslogd记录日志;如果没有指定这个选项,即使你在过滤规则中指定了记录包,也不会真的记录它们。
options IPFIREWALL_VERBOSE_LIMIT=10
//限制通过Syslogd记录的每项包规则的记录条数。如果你受到了大量的攻击,想记录防火墙的活动,但又不想由于Syslog洪水一般的记录将你淹没,那么这个选项将会很有用。当使用了这条规则,当规则链中的某一项达到限制数值时,它所对应的日志将不再记录下来。
options IPFIREWALL_DEFAULT_TO_ACCEPT
//注意,关键地方了,本句把默认的规则动作从“deny”改成“allow”了,作用是在默认状态下IPFW将会接受任何的数据。

输入完成后,保存,并退出。

Step 2,编译系统内核:

#/usr/sbin/config kernel_IPFW
#cd ../compile/kernel_IPFW

//注意,FreeBSD 4.X版本是../../compile/kernel_IPFW,而FreeBSD 5.X版本却是../compile/kernel_IPFW。
#make
#make install //开始编译内核。

Step 3,编辑/etc/rc.conf
加入如下参数:

firewall_enable=“YES“
//激活Firewall防火墙
firewall_script=“/etc/ipfw.conf“
//Firewall防火墙的默认脚本
firewall_type=“open“
//Firewall 自定义脚本
firewall_quiet=“NO“
//启用脚本时是否显示规则信息;假如你不再修改防火墙脚本,那么可以把这里设成“YES“。
firewall_logging_enable=“YES“

编辑/etc/syslog.conf 文件,在文件最后加入:

!ipfw
*.* /var/log/ipfw.log
//这行的作用是将IPFW的日志写到/var/log/ipfw.log/文件里。你可以为日志文件指定其它路径。

最后,重启服务器。

重启之后,你就可以用SSH登录你的服务器了,之后你可以在/etc/ipfw.conf中添加过滤规则来防止入侵了。

#options IPFIREWALL_DEFAULT_TO_ACCEPT(编译内核)

这样的设置,防火墙会处于全封闭状态,需要自定义打开端口来实现功能。

# ee /etc/ipfw.conf
增加下面内容:

#!/bin/sh

# DNS服务器与客户端的通讯端口都是udp的53号端口,因此我们只有开放自己与DNS服务器之间的53号端口进行通信即可,如果你知道自己的DNS服务器的ip地址可以把下面的any改成你的DNS地址。

# DNS
ipfw add allow udp from me to any 53 out
ipfw add allow udp from any 53 to me in

# DHCP的服务器与客户端的通讯端口是udp 67、68端口,其工作原理这里不多做介绍,如果你知道自己的DHCP服务器地址可以把其中的any改成你的DHCP服务器地址,前面两条是正常情况下的规则,如果你的DHCP服务器不是很可靠,你可以加上下面注释掉的两条,当然一般情况下这两条可以不加。

# DHCP
ipfw add allow udp from me 68 to any 67 out
ipfw add allow udp from any 67 to me 68 in
# ipfw add allow udp from any 68 to 255.255.255.255 67 out
# ipfw add allow udp from any 67 to 255.255.255.255 68 in

# 在创建与ICMP有关的规则时,只能指定ICMP数据包的type而不能指定它的code。
# 允许接受一些ICMP types (不支持codes)

# 允许双向的path-mtu
ipfw add allow icmp from any to any icmptypes 3
ipfw add allow icmp from any to any icmptypes 4

我需要考虑是否需要ping我的网络之外的主机或运行traceroute命令,由于二者都需要,并希望收到相应的应答,但我并不希望互联网上的所有用户都可以对我运行ping 或traceroute命令,因此,我需要添加下面的规则:

# 允许我对外部的主机运行ping命令,并得到相应的应答
ipfw add allow icmp from me to any icmptypes 8 out
ipfw add allow icmp from any to me icmptypes 0 in

# 允许我运行traceroute命令
ipfw add allow icmp from any to any icmptypes 11 in

# ICMP type 8是一个查询请求,ICMP type 0是对查询请求的应答。由于我只允许反复地发出请求并接受应答,从而我可以ping别人而别人不能ping我。

如果想让别人也能ping自己的话,则需要把上面的规则反一下
ipfw add allow icmp from any to me icmptype 8 in
ipfw add allow icmp from me to nay icmptype 0 out

# 在运行traceroute命令时,就会向外发出UDP数据包。如果希望能够获得所有应答信息,我还必须允许系统接受所有的CMP type 11数据包。

# TCP类型服务
# 只允许向外发送信息包
ipfw add check-state
ipfw add deny tcp from any to any in established
ipfw add allow tcp from any to any out setup keep-state

 

# 允许ssh等tcp端口的服务
ipfw add allow tcp from any to me 21,22,80,3306 in
ipfw add allow tcp from me 22 to any out
# 由于web服务通过80端口进来,但是出去的数据是随机的,所以还得再加一条:
ipfw add allow tcp from me to any out

options IPFIREWALL_DEFAULT_TO_ACCEPT(编译内核)

这样的设置 ,防火墙处于全开放状态,需要自定义关闭端口来实现功能。

编辑/etc/ipfw.conf配置文件

封闭mysql数据库端口3306

ipfw add deny tcp from any to me 3360 in

######### TCP ##########
ipfw add 00001 deny log ip from any to any ipopt rr
ipfw add 00002 deny log ip from any to any ipopt ts
ipfw add 00003 deny log ip from any to any ipopt ssrr
ipfw add 00004 deny log ip from any to any ipopt lsrr
ipfw add 00005 deny tcp from any to any in tcpflags syn,fin
# 这5行是过滤各种扫描包

 

ipfw add 10001 allow tcp from any to 10.10.10.1 80 in # 向整个Internet开放http服务。
ipfw add 10002 allow tcp from any to 10.10.10.1 21 in
# 向整个Internet开放ftp服务。
ipfw add 10000 allow tcp from 1.2.3.4 to 10.10.10.1 22 in
# 向Internet的xx.xx.xx.xx这个IP开放SSH服务。也就是只信任这个IP的SSH登陆。
# 如果你登陆服务器的IP不固定,那么就要设为:

add 10000 allow tcp from any to 10.10.10.1 22 in

 

add 19997 check-state
add 19998 allow tcp from any to any out keep-state setup
add 19999 allow tcp from any to any out

#这三个组合起来是允许内部网络访问出去,如果想服务器自己不和Internet进行tcp连接出去,可以把19997和19998去掉。(不影响Internet对服务器的访问)

 

########## UDP ##########
add 20001 allow udp from any 53 to 10.10.10.1

# 允许其他DNS服务器的信息进入该服务器,因为自己要进行DNS解析嘛~
add 29999 allow udp from any to any out

# 允许自己的UDP包往外发送。

########## ICMP #########
add 30000 allow icmp from any to any icmptypes 3
add 30001 allow icmp from any to any icmptypes 4
add 30002 allow icmp from any to any icmptypes 8 out
add 30003 allow icmp from any to any icmptypes 0 in
add 30004 allow icmp from any to any icmptypes 11 in
#允许自己ping别人的服务器。也允许内部网络用router命令进行路由跟踪

FreeBSD下IPFW防火墙的开启与关闭:http://blog.haohtml.com/archives/5549

php-fpm文档中文翻译[转]

原文链接:http://php-fpm.anight.org/
wiki:http://www.php-fpm.com/

什么是 FastCGI

FastCGI 是一个可伸缩、高速的在web server和脚本语言间通迅的接口。关于FastCGI技术的更多信息可以在官方网站Wikipedia看到。

FastCGI 被许多脚本语言所支持,包括 php,如果用 --enable-fastcgi 选项编译的话。

多数流行的web server都支持 FastCGI。包括Apache(mod_fastcgi和mod_fcgid),Zeusnginxlighttpd

FastCGI 的主要优点是把动态语言和 web server 分离开来。这种技术允许 web server 和动态语言运行在不同的主机上。这可以改进可扩展性和安全性而没有大的效率损失。

php-fpm 可以和任何支持外部 FastCGI 技术的 web server 一起使用。 Continue reading

nginx下关于PHP-FPM在高负载下的优化配置

今天调整了服务器的PHP-FPM配置,其中有几个参数可以在网站在高并发下,保持服务器的稳定.不会挂掉.请看下面的内容.

代码:
       
        <value name="max_children">5</value>

        Settings group for 'apache-like' pm style
        <value name="apache_like">

          Sets the number of server processes created on startup.
          Used only when 'apache-like' pm_style is selected
          <value name="StartServers">20</value>

          Sets the desired minimum number of idle server processes.
          Used only when 'apache-like' pm_style is selected
          <value name="MinSpareServers">5</value>

          Sets the desired maximum number of idle server processes.
          Used only when 'apache-like' pm_style is selected
          <value name="MaxSpareServers">35</value>  

<value name="rlimit_files">65535</value>

<value name="max_requests">1024</value> Continue reading 

如何安装cacti监控nginx插件

Scripts and templates for nginx.

Nginx - http://nginx.net/

Provide 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.

For use do next steps:

1. Enable nginx http_stub_status_module at configure stage (if requared).

2. Enable stub status. Add to nginx.conf (in any server context):

location /nginx_status {
stub_status on;
# disable access_log if requared
access_log   off;
#allow XX.YY.AA.ZZ;
#allow YY.ZZ.JJ.CC;
#deny all;
}

Restart nginx. Continue reading

nginx下php-fpm详解

php-fpm详解

原文链接:http://php-fpm.anight.org/
wiki:http://www.php-fpm.com/
翻译:http://syre.blogbus.com/logs/20092011.html

什么是 FastCGI

FastCGI 是一个可伸缩、高速的在web server和脚本语言间通迅的接口。关于FastCGI技术的更多信息可以在官方网站Wikipedia看到。

FastCGI 被许多脚本语言所支持,包括 php,如果用 --enable-fastcgi 选项编译的话。

多数流行的web server都支持 FastCGI。包括Apache(mod_fastcgi和mod_fcgid),ZeusnginxlighttpdContinue reading

nginx php-fpm性能优化设置

When you running a highload website with PHP-FPM via FastCGI, the following tips may be useful to you : )
如果您高负载网站使用PHP-FPM管 理FastCGI,这些技巧也许对您有用:)
1. Compile PHP’s modules as less as possible, the simple the best (fast);
1.尽量少安装PHP模块,最简单是最好(快)的
2. Increas PHP FastCGI child number to 100 and even more. Sometime, 200 is OK! ( On 4GB memory server);
2.把您的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以 Continue reading

再次优化NGINX+php-fpm上传

上次写了一篇nginx+php-fpm优化上传,一位博友留言介绍了,第三方nginx upload module

http://www.grid.net.ru/nginx/upload.en.html

看了一下,功能蛮强大的,所以就记录下来·基本没什么变化,在原有的例子上稍加了下修改,加了一个限速功能。在 0.8.X 版本上编译出出错,他官方也有写:

For nginx versions other than 0.7.44-51

但是我在最新版本 nginx-0.7.67.tar.gz 编译也没问题。 下载nginx:wget http://www.nginx.org/download/nginx-0.7.67.tar.gz 下载模块:wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.tar.gz 1.下载编译安装nginx_upload_module Continue reading

化NGINX+php-fpm上传

hp-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本。在5.2.x的版本中,php-fpm.conf使用的是xml格式,而在新的5.3.x版本中,则是和php.ini一样的配置风格。

在5.2.x版本中,php-fpm.conf中对于进程管理号称是有两种风格,一种是静态(static)的,一种是类似于apache风格(apache-like)的。

复制内容到剪贴板

代码:

68       Process manager settings
69       <value name=”pm”>
70
71         Sets style of controling worker process count.
72         Valid values are ’static’ and ‘apache-like’
73         <value name=”style”>static</value>

按照文档的说明,如果pm的style采用apache-like,启动的进程数应该是和StartServers指定的一样。不过经过数次的尝试,我们会发现,实际上在这里将pn的style配置成apache-like没有起任何作用。也就是说,这里的apache-like并没有被实现。

不过,在最新的5.3.x的配套php-fpm中,apache风格的进程管理已经被实现了。

复制内容到剪贴板

代码:

98 ; Choose the process manager which control how processes are managed

99 ; Two choices:

100 ; – static  : a fixed number (pm.max_children) of child processes

101 ; – dynamic : The number of child processes are set up dynamically depending on the following directives

102 ;             – pm.max_children      : the maximum number of children that can be alive at the same time

103 ;             – pm.start_servers     : the number of children created on startup

104 ;             – pm.min_spare_servers : the minimum number of children in ‘idle’ state (waiting to precess).

105 ;                                      If the number of ‘idle’ processes is less than this number,

106 ;                                      some children will be created.

107 ;             – pm.max_spare_servers : the maximum number of children in ‘idle’ state (waiting to precess).

108 ;                                      If the number of ‘idle’ processes is greater than this number,

109 ;                                      some children will be killed;

110 ; It’s mandatory

111 pm = dynamic

 

由上面一段文字可知,对于进程的管理存在两种风格——static和dynamic。
和之前的版本的进程管理其实还是一样的,只是将apache-like改成了dynamic,这样更容易理解。
如果设置成static,进程数自始至终都是pm.max_children指定的数量。
如果设置成dynamic,则进程数是动态的,最开始是pm.start_servers指定的数量,如果请求较多,则会自动增加,保证空闲的进程数不小于pm.min_spare_servers,如果进程数较多,也会进行相应清理,保证多余的进程数不多于pm.max_spare_servers。

当php-fpm启动后,一个php-cgi进程约战3M内存,但是当它们处理过一些请求后,有些内存是释放不掉的,占用的内存能达到20M-30M不等。对于内存大的服务器(比如说4G)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制。
比如我们指定为100个,那么php-fpm耗费的内存就能控制在 2G的样子,用2G来处理别的事情也应该足够了。如果内存稍微小点,比如1G,那么指定静态的进程数量应该更加有利于服务器的稳定。这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。对于更小的内存来说,比如128M的内存,即使按照20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。

===============================================