<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_azhai</title><subtitle type="text">try my Best!</subtitle><id>http://feed.cnblogs.com/blog/u/11566/rss</id><updated>2012-03-05T13:52:38Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/11566/rss"/><entry><id>http://www.cnblogs.com/azhai/archive/2011/03/30/1999596.html</id><title type="text">推荐一款UI设计软件Balsamiq Mockups</title><summary type="text">试了一下这个软件，感觉挺好这个是下载地址：http://balsamiq.com/</summary><published>2011-03-30T03:12:00Z</published><updated>2011-03-30T03:12:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2011/03/30/1999596.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2011/03/30/1999596.html"/><content type="html">&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/8091/2011033011091216.png" /&gt;&lt;/p&gt;&lt;p&gt;试了一下这个软件，感觉挺好&lt;/p&gt;&lt;p&gt;这个是下载地址：&lt;a href="http://balsamiq.com/"&gt;http://balsamiq.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1999596.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2011/03/30/1999596.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2011/03/02/1968605.html</id><title type="text">ubuntu 添加公钥</title><summary type="text">1、ssh-keygen -t rsa -b 40962、sudo apt-get install git-core</summary><published>2011-03-02T01:35:00Z</published><updated>2011-03-02T01:35:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2011/03/02/1968605.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2011/03/02/1968605.html"/><content type="html">1、&lt;br /&gt;ssh-keygen -t rsa -b 4096&lt;br /&gt;2、&lt;br /&gt;&lt;pre class="php"&gt;&lt;span style="color: #000000; background-color: #ccffff;"&gt;sudo apt&lt;span style="color: #cccccc;"&gt;-&lt;/span&gt;get install git&lt;span style="color: #cccccc;"&gt;-&lt;/span&gt;core&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1968605.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2011/03/02/1968605.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2011/02/28/1966883.html</id><title type="text">ubuntu 10.10 安装 redmine</title><summary type="text">1、Mysql安装# sudo apt-get install mysql-server-5.12、变更Mysql服务器设定# sudovi/etc/mysql/my.cnf[mysqld] 段下，加入default-character-set = utf83、Redmine安装#sudo apt-get install redmineredmine-mysql4、Apache安装及设定#sudo apt-get install apachelibapache-ruby1.8apache2-mpm-workerlibapache2-mod-passenger/etc/apache2/conf.</summary><published>2011-02-28T05:31:00Z</published><updated>2011-02-28T05:31:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2011/02/28/1966883.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2011/02/28/1966883.html"/><content type="html">&lt;meta http-equiv="content-type" content="text/html; charset=utf-8" /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div id="blog_text" class="cnt"&gt;&lt;p&gt;1、Mysql安装&lt;/p&gt;&lt;p&gt;# sudo apt-get &amp;nbsp;install mysql-server-5.1&lt;/p&gt;&lt;p&gt;2、变更Mysql服务器设定&lt;/p&gt;&lt;p&gt;# sudo&amp;nbsp;vi&amp;nbsp;/etc/mysql/my.cnf&lt;/p&gt;&lt;p&gt;[mysqld] 段下，加入&lt;/p&gt;&lt;p&gt;default-character-set = utf8&lt;/p&gt;&lt;p&gt;3、Redmine安装&lt;/p&gt;&lt;p&gt;#&amp;nbsp;sudo apt-get install redmine&amp;nbsp;redmine-mysql&lt;/p&gt;&lt;p&gt;4、Apache安装及设定&lt;/p&gt;&lt;p&gt;#&amp;nbsp;sudo apt-get install apache&amp;nbsp;libapache-ruby1.8&amp;nbsp;apache2-mpm-worker&amp;nbsp;libapache2-mod-passenger&lt;/p&gt;&lt;p&gt;/etc/apache2/conf.d 目录下，建立文件：&lt;/p&gt;&lt;p&gt;# sudo vi redmine.conf&lt;/p&gt;&lt;p&gt;RailsEnv production&lt;/p&gt;&lt;p&gt;RailsBaseURI /redmine&lt;/p&gt;&lt;div&gt;5、建立目录链接&lt;/div&gt;&lt;div&gt;#&amp;nbsp;&amp;nbsp;sudo ln -s /usr/share/redmine/public /var/www/redmine&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;6、重启Apache2服务&lt;/div&gt;&lt;div&gt;#&amp;nbsp;sudo service apache2 restart&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;完毕，采用 http://*.*.*.*/redmine 进行访问。&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;数据库不支持中文&lt;/p&gt;&lt;p&gt;删除后重建&lt;/p&gt;&lt;p&gt;sudo dpkg-reconfigure redmine&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1966883.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2011/02/28/1966883.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2011/01/16/1936791.html</id><title type="text">收藏常用正则表达式</title><summary type="text">"^\d+$"//非负整数（正整数 + 0） "^[0-9]*[1-9][0-9]*$"//正整数 "^((-\d+)|(0+))$"//非正整数（负整数 + 0） "^-[0-9]*[1-9][0-9]*$"//负整数 "^-?\d+$"//整数 "^\d+(\.\d+)?$"//非负浮点数（正浮点数 + 0） "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数 "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"//非正</summary><published>2011-01-16T10:01:00Z</published><updated>2011-01-16T10:01:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2011/01/16/1936791.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2011/01/16/1936791.html"/><content type="html">&lt;p&gt;"^\d+$"//非负整数（正整数 + 0） &lt;br /&gt;"^[0-9]*[1-9][0-9]*$"//正整数 &lt;br /&gt;"^((-\d+)|(0+))$"//非正整数（负整数 + 0） &lt;br /&gt;"^-[0-9]*[1-9][0-9]*$"//负整数 &lt;br id="__mce" /&gt;"^-?\d+$"//整数 &lt;br /&gt;"^\d+(\.\d+)?$"//非负浮点数（正浮点数 + 0） &lt;br /&gt;"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数 &lt;br /&gt;"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"//非正浮点数（负浮点数 + 0） &lt;br /&gt;"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"//负浮点数  &lt;/p&gt;&lt;div class="Lhx415"&gt;//开源代码OSPhP.COm.CN&lt;/div&gt;&lt;p&gt; &lt;br /&gt;"^(-?\d+)(\.\d+)?$"//浮点数 &lt;br /&gt;"^[A-Za-z]+$"//由26个英文字母组成的字符串 &lt;br /&gt;"^[A-Z]+$"//由26个英文字母的大写组成的字符串 &lt;br /&gt;"^[a-z]+$"//由26个英文字母的小写组成的字符串 &lt;br /&gt;"^[A-Za-z0-9]+$"//由数字和26个英文字母组成的字符串 &lt;br /&gt;"^\w+$"//由数字、26个英文字母或者下划线组成的字符串 &lt;br /&gt;"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"//email地址 &lt;br /&gt;"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"//url&lt;br /&gt;/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;年-月-日&lt;br /&gt;/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/&amp;nbsp;&amp;nbsp; // 月/日/年&lt;br /&gt;"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"&amp;nbsp;&amp;nbsp; //Emil &lt;/p&gt;&lt;p class="Lhx415"&gt;//oSPHP.COM.CN&lt;/p&gt;&lt;p&gt; &lt;br /&gt;/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //电话号码&lt;br /&gt;"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"&amp;nbsp;&amp;nbsp; //IP地址&lt;br /&gt;&lt;a name="entrymore"&gt;&lt;/a&gt;&lt;br /&gt;匹配中文字符的正则表达式： [\u4e00-\u9fa5]&lt;br /&gt;匹配双字节字符(包括汉字在内)：[^\x00-\xff]&lt;br /&gt;匹配空行的正则表达式：\n[\s| ]*\r&lt;br /&gt;匹配HTML标记的正则表达式：/&amp;lt;(.*)&amp;gt;.*&amp;lt;\/\1&amp;gt;|&amp;lt;(.*) \/&amp;gt;/&lt;br /&gt;匹配首尾空格的正则表达式：(^\s*)|(\s*$)&lt;br /&gt;匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&lt;br /&gt;匹配网址URL的正则表达式：^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$ &lt;/p&gt;&lt;p class="Lhx415"&gt;//OSPHP.com.CN&lt;/p&gt;&lt;p&gt; &lt;br /&gt;匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$&lt;br /&gt;匹配国内电话号码：(\d{3}-|\d{4}-)?(\d{8}|\d{7})?&lt;br /&gt;匹配腾讯QQ号：^[1-9]*[1-9][0-9]*$&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;元字符及其在正则表达式上下文中的行为： &lt;br /&gt;&lt;br /&gt;\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。&lt;br /&gt;&lt;br /&gt;^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性，^ 也匹配 &amp;rsquo;\n&amp;rsquo; 或 &amp;rsquo;\r&amp;rsquo; 之后的位置。 &lt;br /&gt;&lt;br /&gt;$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性，$ 也匹配 &amp;rsquo;\n&amp;rsquo; 或 &amp;rsquo;\r&amp;rsquo; 之前的位置。 &lt;br /&gt;&lt;br /&gt;* 匹配前面的子表达式零次或多次。 &lt;br /&gt;&lt;br /&gt;+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。 &lt;br /&gt;&lt;br /&gt;? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。  &lt;span class="Lhx415"&gt;//开源OSPhP.COM.CN&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;{n} n 是一个非负整数，匹配确定的n 次。&lt;br /&gt;&lt;br /&gt;{n,} n 是一个非负整数，至少匹配n 次。 &lt;br /&gt;&lt;br /&gt;{n,m} m 和 n 均为非负整数，其中n &amp;lt;= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。&lt;br /&gt;&lt;br /&gt;? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时，匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串，而默认的贪婪模式则尽可能多的匹配所搜索的字符串。 &lt;br /&gt;&lt;br /&gt;. 匹配除 "\n" 之外的任何单个字符。要匹配包括 &amp;rsquo;\n&amp;rsquo; 在内的任何字符，请使用象 &amp;rsquo;[.\n]&amp;rsquo; 的模式。 &lt;br /&gt;(pattern) 匹配pattern 并获取这一匹配。 &lt;br /&gt;&lt;br /&gt;(?:pattern) 匹配pattern 但不获取匹配结果，也就是说这是一个非获取匹配，不进行存储供以后使用。 &lt;br /&gt;&lt;br /&gt;(?=pattern) 正向预查，在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配，也就是说，该匹配不需要获取供以后使用。  &lt;/p&gt;&lt;p class="Lhx415"&gt;//OSPHP.COM.Cn开源&lt;/p&gt;&lt;p&gt; &lt;br /&gt;&lt;br /&gt;(?!pattern) 负向预查，与(?=pattern)作用相反 &lt;br /&gt;&lt;br /&gt;x|y 匹配 x 或 y。 &lt;br /&gt;&lt;br /&gt;[xyz] 字符集合。 &lt;br /&gt;&lt;br /&gt;[^xyz] 负值字符集合。 &lt;br /&gt;&lt;br /&gt;[a-z] 字符范围，匹配指定范围内的任意字符。 &lt;br /&gt;&lt;br /&gt;[^a-z] 负值字符范围，匹配任何不在指定范围内的任意字符。 &lt;br /&gt;&lt;br /&gt;\b 匹配一个单词边界，也就是指单词和空格间的位置。&lt;br /&gt;&lt;br /&gt;\B 匹配非单词边界。 &lt;br /&gt;&lt;br /&gt;\cx 匹配由x指明的控制字符。 &lt;br /&gt;&lt;br /&gt;\d 匹配一个数字字符。等价于 [0-9]。 &lt;br /&gt;&lt;br /&gt;\D 匹配一个非数字字符。等价于 [^0-9]。 &lt;br /&gt;&lt;br /&gt;\f 匹配一个换页符。等价于 \x0c 和 \cL。 &lt;br /&gt;&lt;br /&gt;\n 匹配一个换行符。等价于 \x0a 和 \cJ。 &lt;br /&gt;&lt;br /&gt;\r 匹配一个回车符。等价于 \x0d 和 \cM。 &lt;br /&gt;&lt;br /&gt;\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 &lt;br /&gt;&lt;br /&gt;\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。  &lt;/p&gt;&lt;div class="Lhx415"&gt;//开源代码OSPHP.COM.Cn&lt;/div&gt;&lt;p&gt; &lt;br /&gt;&lt;br /&gt;\t 匹配一个制表符。等价于 \x09 和 \cI。 &lt;br /&gt;&lt;br /&gt;\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。 &lt;br /&gt;&lt;br /&gt;\w 匹配包括下划线的任何单词字符。等价于&amp;rsquo;[A-Za-z0-9_]&amp;rsquo;。 &lt;br /&gt;&lt;br /&gt;\W 匹配任何非单词字符。等价于 &amp;rsquo;[^A-Za-z0-9_]&amp;rsquo;。 &lt;br /&gt;&lt;br /&gt;\xn 匹配 n，其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。&lt;br /&gt;&lt;br /&gt;\num 匹配 num，其中num是一个正整数。对所获取的匹配的引用。 &lt;br /&gt;&lt;br /&gt;\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式，则 n 为后向引用。否则，如果 n 为八进制数字 (0-7)，则 n 为一个八进制转义值。 &lt;br /&gt;&lt;br /&gt;\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式，则 nm 为后向引用。如果 \nm 之前至少有 n 个获取，则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足，若 n 和 m 均为八进制数字 (0-7)，则 \nm 将匹配八进制转义值 nm。  &lt;/p&gt;&lt;p class="Lhx415"&gt;//OsPHP.COM.CN&lt;/p&gt;&lt;p&gt; &lt;br /&gt;&lt;br /&gt;\nml 如果 n 为八进制数字 (0-3)，且 m 和 l 均为八进制数字 (0-7)，则匹配八进制转义值 nml。 &lt;br /&gt;&lt;br /&gt;\un 匹配 n，其中 n 是一个用四个十六进制数字表示的Unicode字符。&lt;br /&gt;&lt;br /&gt;匹配中文字符的正则表达式： [u4e00-u9fa5]&lt;br /&gt;&lt;br /&gt;匹配双字节字符(包括汉字在内)：[^x00-xff]&lt;br /&gt;&lt;br /&gt;匹配空行的正则表达式：n[s| ]*r&lt;br /&gt;&lt;br /&gt;匹配HTML标记的正则表达式：/&amp;lt;(.*)&amp;gt;.*|&amp;lt;(.*) /&amp;gt;/ &lt;br /&gt;&lt;br /&gt;匹配首尾空格的正则表达式：(^s*)|(s*$)&lt;br /&gt;&lt;br /&gt;匹配Email地址的正则表达式：w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*&lt;br /&gt;&lt;br /&gt;匹配网址URL的正则表达式：http://([w-]+.)+[w-]+(/[w- ./?%&amp;amp;=]*)?&lt;br /&gt;&lt;br /&gt;利用正则表达式限制网页表单里的文本框输入内容：&lt;br /&gt;&lt;br /&gt;用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"&lt;br /&gt;&lt;br /&gt;用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))" &lt;/p&gt;&lt;p class="Lhx415"&gt;//OSPHP.COm.CN&lt;/p&gt;&lt;p&gt; &lt;br /&gt;&lt;br /&gt;用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"&lt;br /&gt;&lt;br /&gt;用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"&lt;br /&gt;&lt;br /&gt;=========常用正则式&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;匹配中文字符的正则表达式： [\u4e00-\u9fa5]&lt;br /&gt;&lt;br /&gt;匹配双字节字符(包括汉字在内)：[^\x00-\xff]&lt;br /&gt;&lt;br /&gt;匹配空行的正则表达式：\n[\s| ]*\r&lt;br /&gt;&lt;br /&gt;匹配HTML标记的正则表达式：/&amp;lt;(.*)&amp;gt;.*&amp;lt;\/\1&amp;gt;|&amp;lt;(.*) \/&amp;gt;/ &lt;br /&gt;&lt;br /&gt;匹配首尾空格的正则表达式：(^\s*)|(\s*$)&lt;br /&gt;&lt;br /&gt;匹配IP地址的正则表达式：/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //&lt;br /&gt;&lt;br /&gt;匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* &lt;span style="color: #ffffff;" color="#ffffff"&gt;//oSPHP.COM.CN&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;匹配网址URL的正则表达式：http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&amp;amp;=]*)?&lt;br /&gt;&lt;br /&gt;sql语句：^(select|drop|delete|create|update|insert).*$&lt;br /&gt;&lt;br /&gt;1、非负整数：^\d+$ &lt;br /&gt;&lt;br /&gt;2、正整数：^[0-9]*[1-9][0-9]*$ &lt;br /&gt;&lt;br /&gt;3、非正整数：^((-\d+)|(0+))$ &lt;br /&gt;&lt;br /&gt;4、负整数：^-[0-9]*[1-9][0-9]*$ &lt;br /&gt;&lt;br /&gt;5、整数：^-?\d+$ &lt;br /&gt;&lt;br /&gt;6、非负浮点数：^\d+(\.\d+)?$ &lt;br /&gt;&lt;br /&gt;7、正浮点数：^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ &lt;br /&gt;&lt;br /&gt;8、非正浮点数：^((-\d+\.\d+)?)|(0+(\.0+)?))$ &lt;br /&gt;&lt;br /&gt;9、负浮点数：^(-((正浮点数正则式)))$ &lt;br /&gt;&lt;br /&gt;10、英文字符串：^[A-Za-z]+$ &lt;br /&gt;&lt;br /&gt;11、英文大写串：^[A-Z]+$ &lt;br /&gt;&lt;br /&gt;12、英文小写串：^[a-z]+$ &lt;br /&gt;&lt;br /&gt;13、英文字符数字串：^[A-Za-z0-9]+$ &lt;br /&gt;&lt;br /&gt;14、英数字加下划线串：^\w+$ &lt;br /&gt;&lt;br /&gt;15、E-mail地址：^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$  &lt;/p&gt;&lt;p class="Lhx415"&gt;//开源OSPhP.COM.CN&lt;/p&gt;&lt;p&gt; &lt;br /&gt;&lt;br /&gt;16、URL：^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ &lt;br /&gt;或：^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;amp;_~`@[\]\':+!]*([^&amp;lt;&amp;gt;\"\"])*$&lt;br /&gt;&lt;br /&gt;17、邮政编码：^[1-9]\d{5}$&lt;br /&gt;&lt;br /&gt;18、中文：^[\u0391-\uFFE5]+$&lt;br /&gt;&lt;br /&gt;19、电话号码：^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$&lt;br /&gt;&lt;br /&gt;20、手机号码：^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$&lt;br /&gt;&lt;br /&gt;21、双字节字符(包括汉字在内)：^\x00-\xff&lt;br /&gt;&lt;br /&gt;22、匹配首尾空格：(^\s*)|(\s*$)（像vbscript那样的trim函数）&lt;br /&gt;&lt;br /&gt;23、匹配HTML标记：&amp;lt;(.*)&amp;gt;.*&amp;lt;\/\1&amp;gt;|&amp;lt;(.*) \/&amp;gt; &lt;br /&gt;&lt;br /&gt;24、匹配空行：\n[\s| ]*\r&lt;br /&gt;&lt;br /&gt;25、提取信息中的网络链接：(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|&amp;gt;)? &lt;span class="Lhx415"&gt;//PHP开源代码&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;26、提取信息中的邮件地址：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&lt;br /&gt;&lt;br /&gt;27、提取信息中的图片链接：(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|&amp;gt;)?&lt;br /&gt;&lt;br /&gt;28、提取信息中的IP地址：(\d+)\.(\d+)\.(\d+)\.(\d+)&lt;br /&gt;&lt;br /&gt;29、提取信息中的中国手机号码：(86)*0*13\d{9}&lt;br /&gt;&lt;br /&gt;30、提取信息中的中国固定电话号码：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}&lt;br /&gt;&lt;br /&gt;31、提取信息中的中国电话号码（包括移动和固定电话）：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}&lt;br /&gt;&lt;br /&gt;32、提取信息中的中国邮政编码：[1-9]{1}(\d+){5}&lt;br /&gt;&lt;br /&gt;33、提取信息中的浮点数（即小数）：(-?\d*)\.?\d+&lt;br /&gt;&lt;br /&gt;34、提取信息中的任何数字 ：(-?\d*)(\.\d+)?  &lt;/p&gt;&lt;div class="Lhx415"&gt;//OSPHP.COM.Cn开源&lt;/div&gt;&lt;p&gt; &lt;br /&gt;&lt;br /&gt;35、IP：(\d+)\.(\d+)\.(\d+)\.(\d+)&lt;br /&gt;&lt;br /&gt;36、电话区号：/^0\d{2,3}$/&lt;br /&gt;&lt;br /&gt;37、腾讯QQ号：^[1-9]*[1-9][0-9]*$&lt;br /&gt;&lt;br /&gt;38、帐号(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$&lt;br /&gt;&lt;br /&gt;39、中文、英文、数字及下划线：^[\u4e00-\u9fa5_a-zA-Z0-9]+$&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1936791.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2011/01/16/1936791.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2011/01/16/1936591.html</id><title type="text">ubuntu 10.10 安装步骤</title><summary type="text">安装步骤如下第一步：用命令删除Openofficesudo apt-get purge "openoffice*.*"第二步：在Ubuntu 10.10 和10.04添加LibreOffice PPA sudo add-apt-repository ppa:libreoffice/ppasudo apt-get update第三步：接下来可以安装LibreOffice了sudo apt-get install libreoffice可以根据桌面Gnome还是KDE，使用下面的命令很有必要:KDE用户:sudo apt-get install libreoffice-kdeGnome用户:sud</summary><published>2011-01-16T03:02:00Z</published><updated>2011-01-16T03:02:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2011/01/16/1936591.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2011/01/16/1936591.html"/><content type="html">&lt;p&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8" /&gt;&lt;span style="font-family: arial, SimSun, 'Microsoft Yahei', sans-serif; line-height: 19px; font-size: 12px;"&gt;&lt;/span&gt;&lt;/p&gt;1、usb 引导2、&lt;span style="color: #000000; font-family: verdana, sans-serif; line-height: 21px; white-space: normal; font-size: 14px;"&gt;&lt;strong&gt;&lt;span style="line-height: 21px; color: #ff0000;"&gt;Ubuntu 10.10源列表&lt;/span&gt;&amp;nbsp;&lt;/strong&gt;&lt;span style="line-height: 21px; color: #ff0000;"&gt;：&lt;/span&gt;&lt;/span&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8" /&gt;&lt;span style="font-family: verdana, sans-serif; line-height: 21px; white-space: normal; font-size: 14px;"&gt;&lt;p&gt;&lt;strong&gt;台湾源&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;代码:&lt;br /&gt;deb http://tw.archive.ubuntu.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://tw.archive.ubuntu.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://tw.archive.ubuntu.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://tw.archive.ubuntu.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://tw.archive.ubuntu.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb-src http://tw.archive.ubuntu.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SRT Sources&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;代码:&lt;/p&gt;&lt;p&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick main restricted universe multiverse&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-security main restricted universe multiverse&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-updates main restricted universe multiverse&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-proposed main restricted universe multiverse&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-backports main restricted universe multiverse&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick main restricted universe multiverse&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-security main restricted universe multiverse&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-updates main restricted universe multiverse&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-proposed main restricted universe multiverse&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-backports main restricted universe multiverse&lt;/p&gt;&lt;p&gt;&lt;strong&gt;网易 Ubuntu 10.10 源&lt;/strong&gt;&amp;nbsp;（速度很快）&lt;br /&gt;代码:&lt;br /&gt;&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ubuntu 10.10 上海 源&lt;/strong&gt;&amp;nbsp;，提供 Kernel，Hiweed，ubuntu&lt;br /&gt;代码:&lt;/p&gt;&lt;p&gt;deb http://mirror.rootguide.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;搜狐 Ubuntu 10.10 源&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;代码:&lt;/p&gt;&lt;p&gt;deb http://mirrors.shlug.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;骨头源&lt;/strong&gt;&amp;nbsp;，骨头源是bones7456架设的一个Ubuntu源 ，提供ubuntu,deepin&lt;br /&gt;代码:&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://ubuntu.srt.cn/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://ubuntu.srt.cn/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;lupaworld 源&lt;/strong&gt;&amp;nbsp;，提供 ArchLinux，Everest，FreeBSD，Fedora，LFS，Magiclinux，Mandriva，OpenOffice，openSUSE，Puppy，Red Hat，Slitaz，Turbolinux，Ubuntu，中标普华&lt;/p&gt;&lt;p&gt;代码:&lt;/p&gt;&lt;p&gt;deb http://mirror.lupaworld.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://mirror.lupaworld.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://mirror.lupaworld.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.lupaworld.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://mirror.lupaworld.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://mirror.lupaworld.com/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.lupaworld.com/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://mirror.lupaworld.com/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.lupaworld.com/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.lupaworld.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;rootguide源&lt;/strong&gt;&amp;nbsp;，&lt;strong&gt;ubuntu官方上海源&lt;/strong&gt;&amp;nbsp;，提供 Kernel，Hiweed，ubuntu&lt;/p&gt;&lt;p&gt;代码:&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://mirror.rootguide.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirror.rootguide.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;网易开源镜像站&lt;/strong&gt;&amp;nbsp;,提供 FreeBSD，OpenBSD，archlinux，centos，cygwin，debian，fedora，gentoo，kernel，openSUSE，slackware，ubuntu&lt;/p&gt;&lt;p&gt;代码:&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://mirrors.163.com/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.163.com/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;p&gt;&lt;strong&gt;搜狐开源镜像站&lt;/strong&gt;&amp;nbsp;，提供 CPAN，FreeBSD，NetBSD，OpenBSD，apache，archlinux，centos，cygwin，dag，debian，fedora，gentoo，kernel，lfs，mysql，nginx，openSUSE，php，rpmfusion，slackware，ubuntu&lt;/p&gt;&lt;p&gt;代码:&lt;/p&gt;&lt;p&gt;deb http://mirrors.shlug.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick main universe restricted multiverse&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-security universe main multiverse restricted&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-proposed universe main multiverse restricted&lt;br /&gt;deb http://mirrors.shlug.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-backports universe main multiverse restricted&lt;br /&gt;deb-src http://mirrors.shlug.org/ubuntu/ maverick-updates universe main multiverse restricted&lt;/p&gt;&lt;/span&gt;&lt;span color="#333333" style="color: #333333;"&gt;3、sudo apt-get update&lt;/span&gt;&lt;span color="#333333" style="color: #333333;"&gt;4、sudo apt-get dist-upgrade&lt;/span&gt;&lt;span style="color: #333333;"&gt;5、安装LAMP &amp;nbsp;&lt;/span&gt;&lt;span style="color: #333333;"&gt;     sudo apt-get install tastsel&lt;/span&gt;&lt;span style="color: #333333;"&gt;     sudo tasksel&lt;/span&gt;&lt;span style="color: #333333;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span color="#333333" style="color: #333333;"&gt;6、安装phpmyadmin  &amp;nbsp;&lt;/span&gt;&lt;span color="#333333" style="color: #333333;"&gt;     sudo apt-get install phpmyadmin&lt;/span&gt;&lt;span color="#333333" style="color: #333333;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span color="#333333" style="color: #333333;"&gt;7、设置公匙 &lt;/span&gt;&lt;span color="#333333" style="color: #333333;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #333333;"&gt;  ssh-keygen -t rsa -C "youremail@domain.com"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;安装步骤如下&lt;br /&gt;&lt;strong&gt;第一步&lt;/strong&gt;：用命令删除Openoffice&lt;br /&gt;&lt;code&gt;sudo apt-get purge "openoffice*.*"&lt;/code&gt;&lt;br /&gt;&lt;strong&gt;第二步&lt;/strong&gt;：在Ubuntu 10.10 和10.04添加LibreOffice PPA&lt;/p&gt;&lt;p&gt; &lt;code&gt;sudo add-apt-repository ppa:libreoffice/ppasudo apt-get update&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第三步&lt;/strong&gt;：接下来可以安装LibreOffice了&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;sudo apt-get install libreoffice&lt;/span&gt;&lt;/p&gt;&lt;p&gt;可以根据桌面Gnome还是KDE，使用下面的命令很有必要:&lt;br /&gt;&lt;strong&gt;KDE用户:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;sudo apt-get install libreoffice-kde&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gnome用户:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;sudo apt-get install libreoffice-gnome&lt;/code&gt;&lt;/p&gt;&lt;span style="color: #333333;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #333333;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1936591.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2011/01/16/1936591.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2011/01/05/1926382.html</id><title type="text">ubuntu 搭建NAT、DHCP、VPN服务</title><summary type="text">3月1日，实验室的网关服务器莫名其妙被封了，检查了线路，重新做了水晶头，都无济于事。于是只好用实验室地板上的10M网口，那龟速真叫恐怖。今天他们才从计算中心打听到消息，原来是因为网关服务器中了病毒，才被封禁的。原来的网关服务器虽是新买的，但是仍然麻烦不断，时不时断网，这回还中了病毒，Windows确实不是做服务器的料，即使是2008 Server版仍然如此不堪一击。我终于忍无可忍，下决心重装系统，彻底迁移到Linux平台上。虽然实验室的那帮windows死忠对此抱怀疑态度，但是相信这之后他们一定会转变观点。毫无疑问选择ubuntu，前几天10.04出了alpha3版，虽然是不稳定的alpha，</summary><published>2011-01-05T07:16:00Z</published><updated>2011-01-05T07:16:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2011/01/05/1926382.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2011/01/05/1926382.html"/><content type="html">&lt;p&gt;3月1日，实验室的网关服务器莫名其妙被封了，检查了线路，重新做了水晶头，都无济于事。于是只好用实验室地板上的10M网口，那龟速真叫恐怖。&lt;/p&gt;&lt;p&gt;今天他们才从计算中心打听到消息，原来是因为网关服务器中了病毒，才被封禁的。原来的网关服务器虽是新买的，但是仍然麻烦不断，时不时断网，这回还中了病毒，Windows确实不是做服务器的料，即使是2008 Server版仍然如此不堪一击。&lt;/p&gt;&lt;p&gt;我终于忍无可忍，下决心重装系统，彻底迁移到Linux平台上。虽然实验室的那帮windows死忠对此抱怀疑态度，但是相信这之后他们一定会转变观点。&lt;/p&gt;&lt;p&gt;毫无疑问选择ubuntu，前几天10.04出了alpha3版，虽然是不稳定的alpha，但是考虑10.04将会是LTS版本，支持有效期长达5年，所以我还是决定冒个险，10.04 Desktop AMD64 alpha3版。&lt;/p&gt;&lt;p&gt;接下来介绍一下各种服务的配置方法：&lt;/p&gt;&lt;p&gt;[双网卡地址]&lt;br /&gt;修改/etc/network/interfaces&lt;br /&gt;&lt;code&gt;auto eth0&lt;br /&gt;iface eth0 inet static&lt;br /&gt;address 162.105.30.130&lt;br /&gt;netmask 255.255.255.0&lt;br /&gt;gateway 162.105.30.1&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;auto eth1&lt;br /&gt;iface eth1 inet static&lt;br /&gt;address 192.168.1.1&lt;br /&gt;netmask 255.255.255.0&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;[NAT]网关服务&lt;/p&gt;&lt;ol&gt;&lt;li&gt;修改/etc/sysctl.conf&lt;br /&gt;&lt;code&gt;net.ipv4.ip_forward=1&lt;br /&gt;net.ipv6.conf.all.forwarding=1&lt;br /&gt;&lt;/code&gt;&lt;/li&gt;&lt;li&gt;执行&lt;br /&gt;&lt;code&gt;sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE&lt;br /&gt;sudo iptables -A FORWARD -p tcp --syn -s 192.168.1.0/24 -j TCPMSS --set-mss 1156&lt;br /&gt;sudo iptables-save &amp;gt; iptables-rules&lt;br /&gt;sudo mv iptables-restore /etc/&lt;/code&gt;&lt;br /&gt;上面的第一条规则是把所有局域网的请求，都转发到外网&lt;br /&gt;第二条规则跟网关无关，是为VPN写的。&lt;/li&gt;&lt;li&gt;修改/etc/rc.local启动脚本，加入：&lt;br /&gt;&lt;code&gt;iptables-restore &amp;lt; /etc/iptables-rules&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;[DHCP]&lt;/p&gt;&lt;ol&gt;&lt;li&gt;安装软件包：&lt;br /&gt;&lt;code&gt;sudo apt-get install dhcp3-server&lt;/code&gt;&lt;/li&gt;&lt;li&gt;修改/etc/default/dhcp3-server配置文件&lt;br /&gt;&lt;code&gt;INTERFACES="eth1"&lt;/code&gt;&lt;/li&gt;&lt;li&gt;修改/etc/dhcp3/dhcpd.conf配置文件&lt;br /&gt;&lt;code&gt;option domain-name-servers 162.105.129.27, 162.105.129.26, 202.112.7.13;&lt;/code&gt;&lt;p&gt;&lt;code&gt;subnet 192.168.1.0 netmask 255.255.255.0{&lt;br /&gt;range 192.168.1.2 192.168.1.200;&lt;br /&gt;option subnet-mask 255.255.255.0;&lt;br /&gt;option routers 192.168.1.1;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;[VPN]&lt;/p&gt;&lt;ol&gt;&lt;li&gt;安装软件包&lt;br /&gt;&lt;code&gt;sudo apt-get install pptpd&lt;/code&gt;&lt;/li&gt;&lt;li&gt;修改/etc/pptpd.conf配置文件&lt;br /&gt;&lt;code&gt;localip 192.168.1.201&lt;br /&gt;remoteip 192.168.1.202-245&lt;/code&gt;&lt;/li&gt;&lt;li&gt;修改/etc/ppp/options配置文件&lt;br /&gt;&lt;code&gt;ms-dns 162.105.129.27&lt;br /&gt;ms-dns 162.105.129.26&lt;/code&gt;&lt;/li&gt;&lt;li&gt;修改/etc/ppp/chap-secrets文件，设置密码&lt;br /&gt;&lt;code&gt;username pptpd password *&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;自从实验室放了台 Linux 服务器后，可玩的东西就越来越多了。虽然这台服务器主要的工作是 Web Server，但鉴于我们那小站压力非常之小，服务器资源绝大多数还是浪费着，所以让它多干些活是个不错的选择。实验室的内部网络中有不少非常有用的资源，例如科研用的文献资料，个人的实验数据等等，这些内容一旦离开实验室就不那么容易访问到了。解决这个问题最好的办法就是 VPN。在 Ubuntu 上搭建 VPN 服务器的方法非常多，比较著名的有 PPTP, L2TP/IPSec 和 OpenVPN。这三种方式中后两者的安全性比较好，但配置较麻烦。其中 OpenVPN 在 Windows/Mac 平台上还需要额外的客户端。而 L2TP/IPSec 方式虽然比较好，但我配置后，虽然 Windows 和 Linux 用户没有问题，但 Mac/iPhone 却始终无法连上，所以暂时删掉了，日后搞清楚是什么问题再换到这种方式。&lt;/p&gt;&lt;p&gt;只剩下 PPTP 了。事实上 PPTP 是这三者中配置最容易的方式，而且由于 Windows/Mac 系统中都内建相应的客户端，使用起来非常方便。下面我就简单写写我的安装过程，希望对需要的朋友有用。当然如果您有什么高见，也欢迎您提出。&lt;/p&gt;&lt;p&gt;首先，我所有的操作都是在&lt;a href="http://blog.istef.info/2008/10/02/build-a-linux-light-server/"&gt;之前文章中介绍的 Ubuntu 8.04 Server 系统&lt;/a&gt;中操作的，如果您的系统和我的不一样，请参考之前的&lt;a href="http://blog.istef.info/2008/10/02/setup-ssh-server-on-ubuntu-server/"&gt;两篇文章&lt;/a&gt;。我的服务器环境是单网卡 eth0。&lt;/p&gt;&lt;p&gt;在 Ubuntu 中建立 pptp server 需要的软件包为 pptpd，用 apt-get 即可安装：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo apt-get &lt;abbr title="Thanks zz!"&gt;install&lt;/abbr&gt; pptpd&lt;/blockquote&gt;&lt;p&gt;系统会自动解决依赖关系，安装好后，需要进行一番设置。首先编辑 /etc/pptpd.conf&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo nano /etc/pptpd.conf&lt;/blockquote&gt;&lt;p&gt;去掉文件最末端的 localip 和 remoteip 两个参数的注释，并进行相应修改。这里，localip 是 VPN 连通后服务器的 ip 地址，而 remoteip 则是客户端的可分配 ip 地址。下面是我的配置：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;localip 10.100.0.1&lt;br/&gt;remoteip 10.100.0.2-10&lt;/blockquote&gt;&lt;p&gt;编辑好这个文件后，我们需要编辑 /etc/ppp/pptpd-options 文件，还是用 nano 编辑，命令这里就不写了。这里绝大多数参数只需维持原来的默认值即可，我们只需要改变其中的 ms-dns 选项，为 VPN 客户端指派 DNS 服务器地址：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;ms-dns 202.113.16.10&lt;br/&gt;ms-dns 208.67.222.222&lt;/blockquote&gt;&lt;p&gt;修改 /etc/ppp/chap-secrets 文件，这里面存放着 VPN 的用户名和密码，根据你的实际情况填写即可。如文件中注释所示，第一列是用户名，第二列是服务器名（默认写 pptpd 即可，如果在 pptpd-options 文件中更改过的话，注意这里保持一致），第三列是密码，第四列是 IP 限制（不做限制写 * 即可）。这里&lt;a href="http://blog.istef.info/"&gt;我&lt;/a&gt;就不贴我的配置了&amp;nbsp;&lt;img src="http://blog.istef.info/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /&gt;&lt;/p&gt;&lt;p&gt;全部搞定后，我们需要重启 pptpd 服务使新配置生效：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo /etc/init.d/pptpd restart&lt;/blockquote&gt;&lt;p&gt;找一台 Windows 电脑，新建个 VPN 链接，地址填服务器的 IP（或域名），用户名密码填刚才设置好的，域那项空着（如果你在 pptpd-options 中设置了，这里就保持一致），点连接就可以了。正常情况下您应该能够建立与服务器的 VPN 链接了。&lt;/p&gt;&lt;p&gt;建立连接之后，您会发现除了可以访问服务器的资源，其余内外和互联网的内容均无法访问。如果需要访问这些内容的话，我们还需要进一步设置：&lt;/p&gt;&lt;p&gt;首先，开启 ipv4 forward。方法是，修改 /etc/sysctl.conf，找到类似下面的行并取消它们的注释：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;net.ipv4.ip_forward=1&lt;/blockquote&gt;&lt;p&gt;然后使新配置生效：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo sysctl -p&lt;/blockquote&gt;&lt;p&gt;有些时候，经过这样设置，客户端机器就可以上网了（我在虚拟机上这样操作后就可以了）。但我在实验室的服务器上这样操作后仍然无法访问网络，这样我们就需要建立一个 NAT。这里我们使用强大的 iptables 来建立 NAT。首先，先安装 iptables：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo apt-get intall iptables&lt;/blockquote&gt;&lt;p&gt;装好后，我们向 nat 表中加入一条规则：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE&lt;/blockquote&gt;&lt;p&gt;这样操作后，客户端机器应该就可以上网了。&lt;/p&gt;&lt;p&gt;但是，只是这样，iptables 的规则会在下次重启时被清除，所以&lt;a href="http://yangliu.name/"&gt;我们&lt;/a&gt;还需要把它保存下来，方法是使用 iptables-save 命令：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo iptables-save &amp;gt; /etc/iptables-rules&lt;/blockquote&gt;&lt;p&gt;然后修改 /etc/network/interfaces 文件，找到 eth0 那一节，在对 eth0 的设置最末尾加上下面这句：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;pre-up iptables-restore &amp;lt; /etc/iptables-rules&lt;/blockquote&gt;&lt;p&gt;这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置。&lt;/p&gt;&lt;p&gt;到此，一个 VPN Server/Gateway 基本就算架设完毕。当然，也许你按照我的方法做了，还是无法成功，那么下面总结一些我碰到的问题和解决方案：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;无法建立 VPN 连接&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;安装好 pptpd 并设置后，客户端还是无法建立到服务器的连接。造成的原因可能有以下几种：&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;ol&gt;&lt;li&gt;服务器端的防火墙设置：PPTP 服务需要使用 1723(tcp) 端口和 gre 协议，因此请确保您的防火墙设置允许这两者通行。&lt;/li&gt;&lt;li&gt;如果服务器在路由器后面，请确保路由器上做好相应的设置和端口转发。&lt;/li&gt;&lt;li&gt;如果服务器在路由器后面，那么请确保你的服务器支持 VPN Passthrough。&lt;/li&gt;&lt;li&gt;如果客户端在路由器后面，那么客户端所使用的路由器也必须支持 VPN Passthrough。其实市面上稍微好点的路由器都是支持 VPN Passthrough 的，当然也不排除那些最最最便宜的便宜货确实不支持。当然，如果你的路由器可以刷 DD-Wrt 的话就刷上吧，DD-Wrt 是支持的。&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;&lt;strong&gt;能建立链接，但&amp;ldquo;几乎&amp;rdquo;无法访问互联网&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;这里我使用&amp;ldquo;&lt;a href="http://hi2.me/"&gt;几乎&lt;/a&gt;&amp;rdquo;这个词，是因为并不是完全不能访问互联网。症状为，打开 Google 搜索没问题，但其它网站均无法打开；SSH 可用，但 scp 不行；ftp 能握手，但传不了文件。我就遇到了这种情况，仔细 Google 后发现原来是 MTU 的问题，用 ping 探测了一下果然是包过大了。知道问题就好办了，我们可以通过 iptables 来修正这一问题。具体原理就不讲了，需要的自己 Google。这里只说解决方案，在 filter 表中添加下面的规则：&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;sudo iptables -A FORWARD -s 10.100.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN&lt;br/&gt;-j TCPMSS --set-mss 1200&lt;/blockquote&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;p&gt;上面规则中的 1200 可以根据你的实际情况修改，为了保证最好的网络性能，这个值应该不断修改，直至能保证网络正常使用情况下的最大值。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;好了，至此，一台单网卡 pptp-server 就算完成了。&lt;/p&gt;&lt;p&gt;ps，最近发现我的文章被大大小小无数网站抄袭，其中不乏一些&amp;ldquo;大站&amp;rdquo;。这里我用&amp;ldquo;抄袭&amp;rdquo;这个词，是因为你们的做法已经远远超出了正常的&amp;ldquo;转载&amp;rdquo;。我每篇文章后都会强调，&amp;ldquo;&lt;strong&gt;转载写明出处，商业网站使用请先获得授权&lt;/strong&gt;&amp;rdquo;，但不知道为什么对于这些小编们，发个邮件问我一下会这么难。这次我就不点名了，先警告一下。如果让我发现下次的话，那么别怪我，我会及时给您曝光的&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1926382.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2011/01/05/1926382.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2011/01/02/1923959.html</id><title type="text">ubuntu 10.10 网络连接消失问题解决办法</title><summary type="text">sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo service network-manager startsudo gedit /etc/NetworkManager/nm-system-settings.conf把false改成truesudo service network-manager restart</summary><published>2011-01-01T16:08:00Z</published><updated>2011-01-01T16:08:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2011/01/02/1923959.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2011/01/02/1923959.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;sudo service network-manager stop&lt;br /&gt;sudo rm /var/lib/NetworkManager/NetworkManager.state&lt;br /&gt;sudo service network-manager start&lt;br /&gt;sudo gedit /etc/NetworkManager/nm-system-settings.conf&lt;br /&gt;把false改成true&lt;br /&gt;sudo service network-manager restart&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1923959.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2011/01/02/1923959.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2010/12/30/1921344.html</id><title type="text">远程连接mysql超时的解决办法</title><summary type="text">远程连接mysql超时的解决办法PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一选项就能禁用DNS解析，连接速度会快很多。不过，这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。</summary><published>2010-12-30T01:18:00Z</published><updated>2010-12-30T01:18:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2010/12/30/1921344.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2010/12/30/1921344.html"/><content type="html">&lt;p&gt;远程连接mysql超时的解决办法PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一选项就能禁用DNS解析，连接速度会快很多。不过，这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1921344.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2010/12/30/1921344.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2010/12/05/1896771.html</id><title type="text">ubuntu apache2 的负载均衡和反向代理</title><summary type="text">apache功能其实很是强大，最近一段时间研究了下apache的反向代理和负载均衡，反向代理网协的外网出口和我的博客出口就是通过apache的反向代理实现的，总结一下，重点说说负载均衡的配置。首先说先实验环境吧操作系统：DEBIAN 5.03（Ubuntu也可以同理配置）一、安装apache加载模块apt-get install apache2然后进入到apache的配置目录cd /etc/apache2apache的反向代理和负载均衡其实利用的都是反向代理的原理，至于什么叫做反向代理可以点此http://baike.baidu.com/view/1165595.htm关键需要加载下面三个模块</summary><published>2010-12-05T01:56:00Z</published><updated>2010-12-05T01:56:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2010/12/05/1896771.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2010/12/05/1896771.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Arial;"&gt;apache功能其实很是强大，最近一段时间研究了下apache的反向代理和负载均衡，反向代理网协的外网出口和我的博客出口就是通过apache的反向代理实现的，总结一下，重点说说负载均衡的配置。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;首先说先实验环境吧&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;操作系统：DEBIAN 5.03（Ubuntu也可以同理配置）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;一、安装apache加载模块&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;apt-get install apache2&lt;br /&gt;然后进入到apache的配置目录&lt;br /&gt;cd /etc/apache2&lt;br /&gt;apache的反向代理和负载均衡其实利用的都是反向代理的原理，至于什么叫做反向代理可以点此http://baike.baidu.com/view/1165595.htm&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;关键需要加载下面三个模块&lt;br /&gt;LoadModule proxy_module modules/mod_proxy.so&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;LoadModule proxy_balancer_module modules/mod_proxy_balancer.so&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;LoadModule proxy_http_module modules/mod_proxy_http.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;由于Debian系统下apache所有的模块都是放在/usr/lib/apache2/modules/里面的，通过/etc/apache2/mods-available里面的*.load加载的，如果要模块的话需要在/etc/apache2/mods-enabled里面用ln建立链接，当然你也可以再/etc/apache2/apache2.conf里面直接把上面三句话写进入，但是不建议这样做。执行代码如下&lt;br /&gt;ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load&lt;br /&gt;ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load&lt;br /&gt;ln -s /etc/apache2/mods-available/proxy_balancer.load /etc/apache2/mods-enabled/proxy_banancer.load&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;做好上面几步之后我们重启下apache&lt;br /&gt;/etc/init.d/apache2 restart&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;二、配置反向代理功能&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;加载完模块后可以建立一个虚拟主机来作为反向代理&lt;br /&gt;vi /etc/apache2/sites_available/proxy&lt;br /&gt;配置如下&lt;br /&gt;Listen 202.xxx.xxx.xxx:80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (别人访问的IP和端口)&lt;br /&gt;&amp;lt;VirtualHost 202.xxx.xxx.xxx:80&amp;gt; (同上)&lt;br /&gt;ServerAdmin admin@bit.net&lt;br /&gt;ProxyRequests Off&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; （说明开启的是反向代理）&lt;br /&gt;ProxyMaxForwards 100&lt;br /&gt;ProxyPreserveHost On&lt;br /&gt;ProxyPass / http://10.x.xx.xxx/ （转发到url上的请求）&lt;br /&gt;ProxyPassReverse / http://10.x.xx.xxx/&lt;br /&gt;&amp;lt;Proxy *&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (这段是访问的控制)&lt;br /&gt;Order Deny,Allow&lt;br /&gt;Allow from all&lt;br /&gt;&amp;lt;/Proxy&amp;gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;然后再在/etc/apache2/sites_enabled/里面建立ln链接&lt;br /&gt;ln -s /etc/apache2/sites_available/proxy /etc/apache2/sites_enabled/proxy&lt;br /&gt;重启apache&lt;br /&gt;/etc/init.d/apache2 restart&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;然后反向代理就开启了&lt;br /&gt;当别人输入http://202.xxx.xxx.xxx时 就会通过反向代理转到http://10.x.xx.xxx上，这样简单的反向代理功能就开启了&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;三、apache负载均衡配置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;a、简单的负载均衡&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;然后接着讲apache的负载均衡模块吧&lt;br /&gt;同理建立一个虚拟主机来作为负载均衡&lt;br /&gt;vi /etc/apache2/sites_available/balancer&lt;br /&gt;配置如下&lt;br /&gt;Listen 202.x.xx.xxx:80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (别人访问的IP和端口)&lt;br /&gt;&amp;lt;VirtualHost 202.x.xx.xxx:80&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAdmin admin@bit.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProxyRequests Off&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Proxypass / balancer://proxy/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Proxy balancer://proxy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Order Deny,Allow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Proxy&amp;gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;从上面的 ProxyRequests Off 这条可以看出，实际上负载均衡器就是一个反向代理，只不过它的代理转发地址不是某台具体的服务器，而是一个 balancer://协议地址&lt;br /&gt;ProxyPass / balancer://proxy/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;协议地址可以随便定义。然后，在&amp;lt;Proxy&amp;gt;段中设置该balancer协议的内容即可。 BalancerMember指令可以添加负载均衡组中的真实服务器地址。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;然后再在/etc/apache2/sites_enabled/里面建立ln链接&lt;br /&gt;ln -s /etc/apache2/sites_available/balancer /etc/apache2/sites_enabled/balancer&lt;br /&gt;重启apache&lt;br /&gt;/etc/init.d/apache2 restart&lt;br /&gt;这样apache的负载均衡就配置好了&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;如果访问http://202.x.xx.xxx的时候会均匀地打开http://10.0.0.1和http://10.0.0.2,比如你两次打开http://202.x.xx.xxx会又一次打开http://10.0.0.1一次打开http://10.0.0.2这样就是两台服务器接受的请求平均了，达到了负载均衡的效果。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;b、负载比例分配&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;当然如果你发现你的两台服务器配置不一样，一台较好，一台较差，那么就要开始配置不同比例的负载均衡了。如果两台服务器你想配置负载分配比为3:1则配置文件如下&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;Listen 202.x.xx.xxx:80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (别人访问的IP和端口)&lt;br /&gt;&amp;lt;VirtualHost 202.x.xx.xxx:80&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAdmin admin@bit.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProxyRequests Off&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Proxypass / balancer://proxy/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Proxy balancer://proxy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Order Deny,Allow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.1&amp;nbsp;&amp;nbsp; loadfactor= 3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.2&amp;nbsp;&amp;nbsp; loadfactor= 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Proxy&amp;gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;c、负载分配算法&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;当然你可能想通过不同的算法实现负载均衡，比方说按照请求次数，或者按照流量均衡，这里用到的指令是lbmethod&lt;br /&gt;lbmethod可能的取值有：&amp;nbsp;&lt;br /&gt;lbmethod=byrequests 按照请求次数均衡(默认)&amp;nbsp;&lt;br /&gt;lbmethod=bytraffic 按照流量均衡&amp;nbsp;&lt;br /&gt;lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;按照流量的均衡配置如下&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;Listen 202.x.xx.xxx:80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (别人访问的IP和端口)&lt;br /&gt;&amp;lt;VirtualHost 202.x.xx.xxx:80&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAdmin admin@bit.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProxyRequests Off&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Proxypass / balancer://proxy/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProxySet lbmethod=bytraffic&amp;nbsp;&amp;nbsp; （加上这句）&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Proxy balancer://proxy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Order Deny,Allow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.1&amp;nbsp;&amp;nbsp; loadfactor= 3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.2&amp;nbsp;&amp;nbsp; loadfactor= 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Proxy&amp;gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;这样你的负载均衡就可以按照流量均衡了&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;d、热备份&lt;br /&gt;在最后讲一讲热备份吧，热备份的实现很简单，只需添加 status=+H 属性，就可以把某台服务器指定为备份服务器，配置文件如下&lt;br /&gt;Listen 202.x.xx.xxx:80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (别人访问的IP和端口)&lt;br /&gt;&amp;lt;VirtualHost 202.x.xx.xxx:80&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAdmin admin@bit.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProxyRequests Off&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Proxypass / balancer://proxy/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProxySet lbmethod=bytraffic&amp;nbsp;&amp;nbsp; （加上这句）&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Proxy balancer://proxy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Order Deny,Allow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BalancerMember http://10.0.0.2&amp;nbsp;&amp;nbsp; status=+H&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Proxy&amp;gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;从配置中可以看出请求总是流向http://10.0.0.1，一旦http://10.0.0.1挂掉， Apache会检测到错误并把请求分流给 http://10.0.0.2。Apache会每隔几分钟检测一下http://10.0.0.1的状况，如果http://10.0.0.1恢复，就继续使用http://10.0.0.1，这样就可以实现热备份了&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Arial;"&gt;好了总结完了，最近发现apache的功能确实是很强大，各种模块都有待发掘，一直在听说Nginx的并发比apache要好，有时间再发个两者的比较的文章吧。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1896771.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2010/12/05/1896771.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/azhai/archive/2010/11/02/1866787.html</id><title type="text">ubuntu 下的两个项目管理工具</title><summary type="text">1、redmine 项目管理工具 安装 sudo apt-get install redmine redmine-mysql A. sudo ruby /usr/share/redmine/server/script -e production http://127.0.0.1:3000/ B. sudo cp /etc/apache2/conf.d/phpmyadmin.conf /etc/ap...</summary><published>2010-11-01T22:38:00Z</published><updated>2010-11-01T22:38:00Z</updated><author><name>azhai</name><uri>http://www.cnblogs.com/azhai/</uri></author><link rel="alternate" href="http://www.cnblogs.com/azhai/archive/2010/11/02/1866787.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/azhai/archive/2010/11/02/1866787.html"/><content type="html">&lt;p&gt;1、redmine&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;项目管理工具&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;安装&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sudo apt-get install redmine redmine-mysql&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;A. sudo ruby /usr/share/redmine/server/script -e production&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;http://127.0.0.1:3000/&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;B. sudo cp /etc/apache2/conf.d/phpmyadmin.conf &amp;nbsp;/etc/apache2/conf.d/redmine&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;将路径改为&amp;nbsp;/usr/share/redmine/&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sudo /etc/init.d/apache2 restart&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;http://127.0.0.1/redmine&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;2, xmind&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;思维导图工具（脑图）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;sudo apt-get install xmind&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/azhai/aggbug/1866787.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/azhai/archive/2010/11/02/1866787.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
