<?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>站长天下</title>
	<atom:link href="http://www.7659.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.7659.net</link>
	<description>做站长，其乐无穷（7659）</description>
	<lastBuildDate>Tue, 07 Feb 2012 04:42:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>godaddy 2012年2月域名续费优惠码</title>
		<link>http://www.7659.net/godaddy-2012-02-domain-renew-coupon-code/</link>
		<comments>http://www.7659.net/godaddy-2012-02-domain-renew-coupon-code/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 04:42:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[域名优惠]]></category>
		<category><![CDATA[2012年2月]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[godaddy续费优惠码]]></category>
		<category><![CDATA[优惠码]]></category>
		<category><![CDATA[域名续费]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=198</guid>
		<description><![CDATA[godaddy com域名续费优惠码：OK412 7.48美元 Godaddy net域名续费优惠码: gdbb776 7.5 美元 Godaddy .org 续费优惠码：SCAM14 7.49美元 godaddy info续费优惠码：GDBBREN8 Info域名续费$6.99 有效期：未知]]></description>
			<content:encoded><![CDATA[<p>godaddy com域名续费优惠码：OK412 7.48美元</p>
<p>Godaddy net域名续费优惠码: gdbb776 7.5 美元</p>
<p>Godaddy .org 续费优惠码：SCAM14 7.49美元</p>
<p>godaddy info续费优惠码：GDBBREN8 Info域名续费$6.99 有效期：未知</p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/godaddy-2012-02-domain-renew-coupon-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>怎样在Linux里查找文件内容</title>
		<link>http://www.7659.net/linux-find-content-string/</link>
		<comments>http://www.7659.net/linux-find-content-string/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 06:03:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站运营]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux 中grep查找文件内容]]></category>
		<category><![CDATA[linux中find查找文件内容]]></category>
		<category><![CDATA[linux如何在文件中找字符串]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=193</guid>
		<description><![CDATA[Linux查找文件内容的常用命令方法。 从文件内容查找匹配指定字符串的行： $ grep “被查找的字符串” 文件名 从文件内容查找与正则表达式匹配的行： $ grep –e “正则表达式” 文件名 查找时不区分大小写： $ grep –i “被查找的字符串” 文件名 查找匹配的行数： $ &#8230; <a href="http://www.7659.net/linux-find-content-string/" class="more-link">了解更多</a>]]></description>
			<content:encoded><![CDATA[<p>Linux查找文件内容的常用命令方法。</p>
<div>从文件内容查找匹配指定字符串的行：</div>
<p>$ grep “被查找的字符串” 文件名</p>
<div>从文件内容查找与正则表达式匹配的行：</div>
<p>$ grep –e “正则表达式” 文件名</p>
<div>查找时不区分大小写：</div>
<p>$ grep –i “被查找的字符串” 文件名</p>
<div>查找匹配的行数：</div>
<p>$ grep -c “被查找的字符串” 文件名</p>
<div>从文件内容查找不匹配指定字符串的行：</div>
<p>$ grep –v “被查找的字符串” 文件名</p>
<div>从根目录开始查找所有扩展名为.log的文本文件，并找出包含”ERROR”的行</div>
<p>find / -type f -name “*.log” | xargs grep “ERROR”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/linux-find-content-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress添加自定义字段面板</title>
		<link>http://www.7659.net/wordpress%e6%b7%bb%e5%8a%a0%e8%87%aa%e5%ae%9a%e4%b9%89%e5%ad%97%e6%ae%b5%e9%9d%a2%e6%9d%bf/</link>
		<comments>http://www.7659.net/wordpress%e6%b7%bb%e5%8a%a0%e8%87%aa%e5%ae%9a%e4%b9%89%e5%ad%97%e6%ae%b5%e9%9d%a2%e6%9d%bf/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 07:13:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress教程]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[创建面板方法]]></category>
		<category><![CDATA[创新自定义字段]]></category>
		<category><![CDATA[自定义字段面板]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=190</guid>
		<description><![CDATA[我们在WordPress中编写文章的时候，经常会用到一些自定义字段，如网页描述description和关键词keywords这两个meta标签，关于这两个标签，可以看我之前写过的一篇文章：WordPress使用经验（一）独立的Description 和 Keywords 通常在添加自定义字段和其值的时候，我们都是手动去”自定义字段”模块下拉框中去选择相应的字段，然后再输入其值，最后还要提交等待一小 段时间，似乎有点麻烦。那么可不可以给这些常用的自定义字段创建一个单独的面板，直接在里面填内容就可以了呢？就像文章标签，直接添加标签即可，不需要单 独提交。答案是可以的，下面是效果图： 下面我将教你如何操作，以下所有代码放到当前主题的functions.php中即可 一、创建需要的字段信息 这里将以添加两个自定义字段，名称分别为description_value和keywords_value，你可以给下面数组添加多个元素，实现添加多个自定义字段的目的。 数组第一个元素name为自定义字段的名称，在本代码中自定义字段的名称为name值加_value，以防止与其他代码发生冲突，如 description_value；std为自定义字段的默认值，当你发表文章时该自定义字段没填任何值，那么将取默认值；title为自定义字段模块 的标题，如文章编辑页的”摘要”、”分类”和”标签”，这些都是模块名称。 1 2 3 4 5 6 7 8 &#8230; <a href="http://www.7659.net/wordpress%e6%b7%bb%e5%8a%a0%e8%87%aa%e5%ae%9a%e4%b9%89%e5%ad%97%e6%ae%b5%e9%9d%a2%e6%9d%bf/" class="more-link">了解更多</a>]]></description>
			<content:encoded><![CDATA[<p>我们在WordPress中编写文章的时候，经常会用到一些自定义字段，如网页描述description和关键词keywords这两个meta标签，关于这两个标签，可以看我之前写过的一篇文章：<a href="http://www.ludou.org/wordpress-exp-1.html" target="_blank">WordPress使用经验（一）独立的Description 和 Keywords</a></p>
<p>通常在添加自定义字段和其值的时候，我们都是手动去”自定义字段”模块下拉框中去选择相应的字段，然后再输入其值，最后还要提交等待一小 段时间，似乎有点麻烦。那么可不可以给这些常用的自定义字段创建一个单独的面板，直接在里面填内容就可以了呢？就像文章标签，直接添加标签即可，不需要单 独提交。答案是可以的，下面是效果图：</p>
<div>
<p><img src="http://www.ludou.org/blog/wp-content/uploads/2010/07/add-panel.jpg" alt="文章编辑页添加模块" width="503" height="310" /></p>
</div>
<p>下面我将教你如何操作，以下所有代码放到当前主题的functions.php中即可</p>
<h4 id="title-0">一、创建需要的字段信息</h4>
<p>这里将以添加两个自定义字段，名称分别为description_value和keywords_value，你可以给下面数组添加多个元素，实现添加多个自定义字段的目的。</p>
<p>数组第一个元素name为自定义字段的名称，在本代码中自定义字段的名称为name值加_value，以防止与其他代码发生冲突，如 description_value；std为自定义字段的默认值，当你发表文章时该自定义字段没填任何值，那么将取默认值；title为自定义字段模块 的标题，如文章编辑页的”摘要”、”分类”和”标签”，这些都是模块名称。</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12</div>
</td>
<td>
<div>$new_meta_boxes =<br />
<a href="http://www.php.net/array">array</a>(<br />
“description” =&gt; <a href="http://www.php.net/array">array</a>(<br />
“name” =&gt; “description”,<br />
“std” =&gt; “这里填默认的网页描述”,<br />
“title” =&gt; “网页描述:”),</p>
<p>“keywords” =&gt; <a href="http://www.php.net/array">array</a>(<br />
“name” =&gt; “keywords”,<br />
“std” =&gt; “这里填默认的网页关键字”,<br />
“title” =&gt; “关键字:”)<br />
);</div>
</td>
</tr>
</tbody>
</table>
</div>
<h4 id="title-1">二、创建自定义字段输入框</h4>
<p>以下代码将用于创建自定义域以及输入框，照写就是了</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18</div>
</td>
<td>
<div>function new_meta_boxes() {<br />
global $post, $new_meta_boxes;</p>
<p>foreach($new_meta_boxes as $meta_box) {<br />
$meta_box_value = get_post_meta($post-&gt;ID, $meta_box['name'].&#8217;_value&#8217;, true);</p>
<p>if($meta_box_value == “”)<br />
$meta_box_value = $meta_box['std'];</p>
<p>echo&#8217;&lt;input type=”hidden” name=”&#8216;.$meta_box['name'].&#8217;_noncename” id=”&#8216;.$meta_box['name'].&#8217;_noncename” value=”&#8216;.wp_create_nonce( plugin_basename(__FILE__) ).&#8217;” /&gt;&#8217;;</p>
<p>// 自定义字段标题<br />
echo&#8217;&lt;h4&gt;&#8217;.$meta_box['title'].&#8217;&lt;/h4&gt;&#8217;;</p>
<p>// 自定义字段输入框<br />
echo &#8216;&lt;textarea cols=”60&#8243; rows=”3&#8243; name=”&#8216;.$meta_box['name'].&#8217;_value”&gt;&#8217;.$meta_box_value.&#8217;&lt;/textarea&gt;&lt;br /&gt;&#8217;;<br />
}<br />
}</p></div>
</td>
</tr>
</tbody>
</table>
</div>
<h4 id="title-2">三、创建自定义字段模块</h4>
<p>下面代码将在文章编辑页添加自定义字段模块，这其中这用了WordPress的添加模块函数<a href="http://codex.wordpress.org/Function_Reference/add_meta_box" target="_blank">add_meta_box</a>。这与之前的文章<a href="http://www.ludou.org/wordpress-hiding-post-fields.html" target="_blank">WordPress文章编辑页删除相关模块</a>所做的工作恰好相反。</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7</div>
</td>
<td>
<div>function create_meta_box() {<br />
global $theme_name;</p>
<p>if ( <a href="http://www.php.net/function_exists">function_exists</a>(&#8216;add_meta_box&#8217;) ) {<br />
add_meta_box( &#8216;new-meta-boxes&#8217;, &#8216;自定义模块&#8217;, &#8216;new_meta_boxes&#8217;, &#8216;post&#8217;, &#8216;normal&#8217;, &#8216;high&#8217; );<br />
}<br />
}</div>
</td>
</tr>
</tbody>
</table>
</div>
<h4 id="title-3">四、保存文章数据</h4>
<p>之前所有准备都做好了，最重要的还是保存我们的自定义字段中的信息。</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27</div>
</td>
<td>
<div>function save_postdata( $post_id ) {<br />
global $post, $new_meta_boxes;</p>
<p>foreach($new_meta_boxes as $meta_box) {<br />
if ( !wp_verify_nonce( $_POST[$meta_box['name'].&#8217;_noncename&#8217;], plugin_basename(__FILE__) ))  {<br />
return $post_id;<br />
}</p>
<p>if ( &#8216;page&#8217; == $_POST['post_type'] ) {<br />
if ( !current_user_can( &#8216;edit_page&#8217;, $post_id ))<br />
return $post_id;<br />
}<br />
else {<br />
if ( !current_user_can( &#8216;edit_post&#8217;, $post_id ))<br />
return $post_id;<br />
}</p>
<p>$data = $_POST[$meta_box['name'].&#8217;_value&#8217;];</p>
<p>if(get_post_meta($post_id, $meta_box['name'].&#8217;_value&#8217;) == “”)<br />
add_post_meta($post_id, $meta_box['name'].&#8217;_value&#8217;, $data, true);<br />
elseif($data != get_post_meta($post_id, $meta_box['name'].&#8217;_value&#8217;, true))<br />
update_post_meta($post_id, $meta_box['name'].&#8217;_value&#8217;, $data);<br />
elseif($data == “”)<br />
delete_post_meta($post_id, $meta_box['name'].&#8217;_value&#8217;, get_post_meta($post_id, $meta_box['name'].&#8217;_value&#8217;, true));<br />
}<br />
}</p></div>
</td>
</tr>
</tbody>
</table>
</div>
<h4 id="title-4">五、将函数连接到指定action（动作）</h4>
<p>这是最后一步，也是最重要的一步，我们要做的是将函数连接到指定action（动作），以让WordPress程序执行我们之前编写的函数：</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2</div>
</td>
<td>
<div>add_action(&#8216;admin_menu&#8217;, &#8216;create_meta_box&#8217;);<br />
add_action(&#8216;save_post&#8217;, &#8216;save_postdata&#8217;);</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>好了，我们要做的就是这些了，现在你可以在你的主题中调用这两个自定义字段了，用文本编辑器打开主题目录下的header.php，将以 下代码复制到&lt;/head&gt;之前，就可以给你的网页自定义description和keywords标签了，更具体的操作请使用搜索引擎：</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14</div>
</td>
<td>
<div>&lt;?php<br />
if (is_single())<br />
{<br />
// 自定义字段名称为 description_value<br />
$description = get_post_meta($post-&gt;ID, “description_value”, true);<br />
// 自定义字段名称为 keywords_value<br />
$keywords = get_post_meta($post-&gt;ID, “keywords_value”, true);<br />
}<br />
// 去除不必要的空格和HTML标签<br />
$description = <a href="http://www.php.net/trim">trim</a>(<a href="http://www.php.net/strip_tags">strip_tags</a>($description));<br />
$keywords = <a href="http://www.php.net/trim">trim</a>(<a href="http://www.php.net/strip_tags">strip_tags</a>($keywords));<br />
?&gt;<br />
&lt;meta name=”description” content=”&lt;?php echo $description; ?&gt;” /&gt;<br />
&lt;meta name=”keywords” content=”&lt;?php echo $keywords; ?&gt;” /&gt;</div>
</td>
</tr>
</tbody>
</table>
</div>
<h4 id="title-5">原文：http://www.ludou.org/creating-custom-write-panels-in-wordpress.html</h4>
<h4>参考文章</h4>
<ul>
<li><a href="http://wefunction.com/2008/10/tutorial-creating-custom-write-panels-in-wordpress/" target="_blank">Tutorial: Creating Custom Write Panels in WordPress</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/wordpress%e6%b7%bb%e5%8a%a0%e8%87%aa%e5%ae%9a%e4%b9%89%e5%ad%97%e6%ae%b5%e9%9d%a2%e6%9d%bf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 缓存插件对比</title>
		<link>http://www.7659.net/wordpress-cache/</link>
		<comments>http://www.7659.net/wordpress-cache/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 08:42:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress教程]]></category>
		<category><![CDATA[cos-html-cache]]></category>
		<category><![CDATA[Hyper Cache]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[对比]]></category>
		<category><![CDATA[缓存插件]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=188</guid>
		<description><![CDATA[WordPress 本身动态生成页面的特性导致其性能一直为人诟病，表现为速度慢、服务器负载重等，于是大家想出一系列的办法来修正这个问题，我见过的思路有以下几种： 1. 缓存数据库查询，减轻 SQL 查询负担 2. 缓存页面，减轻 PHP 解释负担 3. 生成真正的静态化页面，把 SQL 查询减少至 0，PHP 解释减少至 0 或接近 0 上面分得不一定严谨准确，我只是粗略划分一下（另外，本篇文章可能含有错误，发现并指正有奖）。 &#8230; <a href="http://www.7659.net/wordpress-cache/" class="more-link">了解更多</a>]]></description>
			<content:encoded><![CDATA[<p>WordPress 本身动态生成页面的特性导致其性能一直为人诟病，表现为速度慢、服务器负载重等，于是大家想出一系列的办法来修正这个问题，我见过的思路有以下几种：</p>
<p>1. 缓存数据库查询，减轻 SQL 查询负担<br />
2. 缓存页面，减轻 PHP 解释负担<br />
3. 生成真正的静态化页面，把 SQL 查询减少至 0，PHP 解释减少至 0 或接近 0</p>
<p>上面分得不一定严谨准确，我只是粗略划分一下（另外，本篇文章可能含有错误，发现并指正有奖）。</p>
<p>第一种思路的代表是 WP  Cache，这是我用过最早的缓存插件，效果非常一般。我觉得这个思路本身就是矛盾的，缓存更新比较快的数据，打个比方说评论吧，缓存了可能会导致查询最 新评论结果不准确，不缓存吧查询频率还比较高。貌似 WP Cache 有后续版本？不好意思没关注过。</p>
<p>第二种思路的代表是 WP Super Cache，不过我觉得这么说可能不太准确，它应该也结合了第一种思路，貌似大家对 WP Super Cache 评价还比较高，但是我的看法是：不过如此。</p>
<p>第三种思路的代表是 cos-html-cache，在看过 Hyper Cache  的源代码之后，我把它也归进这第三种思路中，但这二者又有差异。cos-html-cache 的机制是生成真正静态的 HTML  文件，所以这个插件也要求把 WordPress 的永久链接格式改为 .html 结尾，它的优势非常明显：缓存机制彻底绕过了  WordPress，完全没有 PHP 和 SQL 消耗。在发生第一次访问请求时，生成页面缓存，缓存生成之后，所有访问请求到的页面都是一个真正的  HTML 网页，显然优化程度已经达到了极限。</p>
<p>与之相比，Hyper Cache 并没有完全脱离 WordPress，虽然它也会生成静态的页面（不是 HTML  网页，而是序列化后的二进制数据），但为了保证插件适用范围更广，Hyper Cache 仍然依赖于 WordPress  的插件机制，当有访问请求时，Hyper Cache  首先会检查是否生成了缓存，如果缓存存在，把二进制缓存数据反序列化并返回，否则生成缓存。（包括生成方式在内，Hyper Cache  更新缓存的方式跟 cos-html-cache 也无二致，都会在有新评论、有新日志产生的时候更新相应的部分缓存。）</p>
<p>由此可见，有人说“Hyper Cache 轻松打败 WP Super Cache”是有道理的，但与 cos-html-cache  的优化效果相比，还是存在一定的差距。不过 Hyper Cache 仍然称得上是一款优秀的 WordPress  缓存插件，良好的缓存性能、对永久链接格式没有苛刻的要求、支持 gzip 压缩另外还有易用的配置界面（实话说我只看过这个页面的源代码），都足以让  Hyper Cache 代替 WP Super Cache 成为非 geek WordPress 用户的选择。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/wordpress-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL的Grant命令</title>
		<link>http://www.7659.net/mysql-grant/</link>
		<comments>http://www.7659.net/mysql-grant/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 08:07:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[VPS建站]]></category>
		<category><![CDATA[Grant]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql允许公网访问]]></category>
		<category><![CDATA[常用命令]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=183</guid>
		<description><![CDATA[本文实例，运行于 MySQL 5.0 及以上版本。 MySQL 赋予用户权限命令的简单格式可概括为： grant 权限 on 数据库对象 to 用户 一、grant 普通数据用户，查询、插入、更新、删除 数据库中所有表数据的权利。 grant select on testdb.* to &#8230; <a href="http://www.7659.net/mysql-grant/" class="more-link">了解更多</a>]]></description>
			<content:encoded><![CDATA[<p><strong>本文实例，运行于 MySQL 5.0 及以上版本。 </strong></p>
<p>MySQL 赋予用户权限命令的简单格式可概括为：</p>
<div>
<pre>
<div>grant 权限 on 数据库对象 to 用户</div>
</pre>
</div>
<p>一、grant 普通数据用户，查询、插入、更新、删除 数据库中所有表数据的权利。</p>
<div>
<pre>
<div>grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'</div>
</pre>
</div>
<p>或者，用一条 MySQL 命令来替代：</p>
<div>
<pre>
<div>grant select, insert, update, delete on testdb.* to common_user@'%'</div>
</pre>
</div>
<p>二、grant 数据库开发人员，创建表、索引、视图、存储过程、函数。。。等权限。</p>
<p>grant 创建、修改、删除 MySQL 数据表结构权限。</p>
<div>
<pre>
<div>grant create on testdb.* to developer@'192.168.0.%';
grant alter  on testdb.* to developer@'192.168.0.%';
grant drop   on testdb.* to developer@'192.168.0.%';</div>
</pre>
</div>
<p>grant 操作 MySQL 外键权限。</p>
<div>
<pre>
<div>grant references on testdb.* to developer@'192.168.0.%';</div>
</pre>
</div>
<p>grant 操作 MySQL 临时表权限。</p>
<div>
<pre>
<div>grant create temporary tables on testdb.* to developer@'192.168.0.%';</div>
</pre>
</div>
<p>grant 操作 MySQL 索引权限。</p>
<div>
<pre>
<div>grant index on testdb.* to developer@'192.168.0.%';</div>
</pre>
</div>
<p>grant 操作 MySQL 视图、查看视图源代码 权限。</p>
<div>
<pre>
<div>grant create view on testdb.* to developer@'192.168.0.%';
grant show   view on testdb.* to developer@'192.168.0.%';</div>
</pre>
</div>
<p>grant 操作 MySQL 存储过程、函数 权限。</p>
<div>
<pre>
<div>grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter  routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute        on testdb.* to developer@'192.168.0.%';</div>
</pre>
</div>
<p>三、grant 普通 DBA 管理某个 MySQL 数据库的权限。</p>
<div>
<pre>
<div>grant all privileges on testdb to dba@'localhost'</div>
</pre>
</div>
<p>其中，关键字 “privileges” 可以省略。<br />
四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。</p>
<div>
<pre>
<div>grant all on *.* to dba@'localhost'</div>
</pre>
</div>
<p>五、MySQL grant 权限，分别可以作用在多个层次上。</p>
<p>1. grant 作用在整个 MySQL 服务器上：</p>
<div>
<pre>
<div>grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。
grant all    on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库</div>
</pre>
</div>
<p>2. grant 作用在单个数据库上：</p>
<div>
<pre>
<div>grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。</div>
</pre>
</div>
<p>3. grant 作用在单个数据表上：</p>
<div>
<pre>
<div>grant select, insert, update, delete on testdb.orders to dba@localhost;</div>
</pre>
</div>
<p>这里在给一个用户授权多张表时，可以多次执行以上语句。例如：</p>
<div>
<pre>
<div>grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';
grant select on smp.mo_sms to mo_user@'%' identified by '123345';</div>
</pre>
</div>
<p>4. grant 作用在表中的列上：</p>
<div>
<pre>
<div>grant select(id, se, rank) on testdb.apache_log to dba@localhost;</div>
</pre>
</div>
<p>5. grant 作用在存储过程、函数上：</p>
<div>
<pre>
<div>grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba'@'localhost'</div>
</pre>
</div>
<p>六、查看 MySQL 用户权限</p>
<p>查看当前用户（自己）权限：</p>
<div>
<pre>
<div>show grants;</div>
</pre>
</div>
<p>查看其他 MySQL 用户权限：</p>
<div>
<pre>
<div>show grants for dba@localhost;</div>
</pre>
</div>
<p>七、撤销已经赋予给 MySQL 用户权限的权限。</p>
<p>revoke 跟 grant 的语法差不多，只需要把关键字 “to” 换成 “from” 即可：</p>
<div>
<pre>
<div>grant  all on *.* to   dba@localhost;
revoke all on *.* from dba@localhost;</div>
</pre>
</div>
<p>八、MySQL grant、revoke 用户权限注意事项</p>
<p>1. grant, revoke 用户权限后，该用户只有重新连接 MySQL 数据库，权限才能生效。</p>
<p>2. 如果想让授权的用户，也可以将这些权限 grant 给其他用户，需要选项 “grant option“</p>
<div>
<pre>
<div>grant select on testdb.* to dba@localhost with grant option;</div>
</pre>
</div>
<p>这个特性一般用不到。实际中，数据库权限最好由 DBA 来统一管理。</p>
<p>*************************************************************************************************</p>
<p>遇到 SELECT command denied to user &#8216;用户名&#8217;@'主机名&#8217; for table &#8216;表名&#8217; 这种错误，解决方法是需要把吧后面的表名授权，即是要你授权核心数据库也要。</p>
<p>我遇到的是SELECT command denied to user &#8216;my&#8217;@'%&#8217; for table  &#8216;proc&#8217;，是调用存储过程的时候出现，原以为只要把指定的数据库授权就行了，什么存储过程、函数等都不用再管了，谁知道也要把数据库mysql的 proc表授权</p>
<p>*************************************************************************************************</p>
<p>参考：<a href="http://zhidao.baidu.com/question/19633785.html">http://zhidao.baidu.com/question/19633785.html</a></p>
<p>mysql授权表共有5个表：user、db、host、tables_priv和columns_priv。</p>
<p>授权表的内容有如下用途：<br />
<strong>user表</strong><br />
user表列出可以连接服务器的用户及其口令，并且它指定他们有哪种全局（超级用户）权限。在user表启用的任何权限均是全局权限，并适用于所有数据库。例如，如果你启用了DELETE权限，在这里列出的用户可以从任何表中删除记录，所以在你这样做之前要认真考虑。</p>
<p><strong>db表</strong><br />
db表列出数据库，而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。</p>
<p><strong>host表</strong><br />
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限，这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响，所以，你可能发觉你根本不是用它。</p>
<p><strong>tables_priv表</strong><br />
tables_priv表指定表级权限，在这里指定的一个权限适用于一个表的所有列。</p>
<p><strong>columns_priv表</strong><br />
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列。</p>
<p>我的命令备注：</p>
<p>GRANT ALL PRIVILEGES ON *.* TO &#8216;pc&#8217;@&#8217;219.10.125.130&#8242; IDENTIFIED BY &#8216;pcpwd&#8217;  WITH GRANT OPTION;</p>
<p>flush privileges;</p>
<p>grant select on pctest.* to &#8216;pc&#8217;@&#8217;220.194.146.111&#8242; IDENTIFIED BY &#8216;pcpwd&#8217; with grant option;</p>
<p>grant select on pctest.* to &#8216;pc&#8217;@&#8217;219.125.143.123&#8242; IDENTIFIED BY &#8216;pcpwd&#8217; with grant option;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/mysql-grant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>完美摘要输出之wordpress插件Limit Posts</title>
		<link>http://www.7659.net/wordpress-limit-posts/</link>
		<comments>http://www.7659.net/wordpress-limit-posts/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 03:15:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress教程]]></category>
		<category><![CDATA[Limit Posts]]></category>
		<category><![CDATA[WordPress插件]]></category>
		<category><![CDATA[完美摘要]]></category>
		<category><![CDATA[自动摘要]]></category>
		<category><![CDATA[输出]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=180</guid>
		<description><![CDATA[这几天修改主题，为打造完美摘要输出，查阅了不少资料。原Limit Posts插件不知何故早已停止更新，而且其输出不能处理中文乱码问题，不是很满意。 别和我说用the_excerpt，the_excerpt只是除掉了文中的html代码。我试过将the_excerpt截断，效率似乎不高。 偶然在一个主题看到了一个函数，大受启发。 将这几个东西结合了一下，演绎出了这个插件，摘要输出非常完美：中文不出现乱码，也可以灵活控制摘要长度，而且效率不错。 用法很简单，下载该插件上传到plugins目录，后台激活，将主题中archive.php（tag.php、index.php或任何打算摘要显示的文件）中the_content() 替换为the_content_limit(”,TRUE,”,555)。 其实，你也可以直接修改 wordpress 系统目录下 wp-includes 文件夹里的 feed.php 包含的 the_content_rss 函数，也就是用这个插件的函数the_content_limit取代the_content_rss。 Limit Posts插件下载地址]]></description>
			<content:encoded><![CDATA[<p>这几天修改主题，为打造完美摘要输出，查阅了不少资料。原Limit Posts插件不知何故早已停止更新，而且其输出不能处理中文乱码问题，不是很满意。<br />
别和我说用the_excerpt，the_excerpt只是除掉了文中的html代码。我试过将the_excerpt截断，效率似乎不高。</p>
<p>偶然在一个主题看到了一个函数，大受启发。</p>
<p>将这几个东西结合了一下，演绎出了这个插件，摘要输出非常完美：中文不出现乱码，也可以灵活控制摘要长度，而且效率不错。</p>
<p>用法很简单，下载该插件上传到plugins目录，后台激活，将主题中archive.php（tag.php、index.php或任何打算摘要显示的文件）中the_content() 替换为the_content_limit(”,TRUE,”,555)。</p>
<p>其实，你也可以直接修改 wordpress 系统目录下 wp-includes 文件夹里的 feed.php 包含的 the_content_rss 函数，也就是用这个插件的函数the_content_limit取代the_content_rss。</p>
<p><a href="www.7659.net/wp-content/uploads/2011/06/limit-post.rar">Limit Posts插件下载地址</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/wordpress-limit-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql-bin.000001文件的来源及处理方法</title>
		<link>http://www.7659.net/mysql-bin-000001-delete/</link>
		<comments>http://www.7659.net/mysql-bin-000001-delete/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 11:23:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[VPS建站]]></category>
		<category><![CDATA[mysql-bin]]></category>
		<category><![CDATA[mysql数据恢复]]></category>
		<category><![CDATA[mysql日志关闭方法]]></category>
		<category><![CDATA[VPS空间被msyql占满]]></category>
		<category><![CDATA[主从服务器之间同步数据]]></category>
		<category><![CDATA[主从服务器同步]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=176</guid>
		<description><![CDATA[用ports安装了mysql以后，过一段时间发现/var空间不足了，查一下，会发现是mysql-bin.000001、mysql- bin.000002等文件占用了空间，那么这些文件是干吗的？这是数据库的操作日志，例如UPDATE一个表，或者DELETE一些数据，即使该语句没 有匹配的数据，这个命令也会存储到日志文件中，还包括每个语句执行的时间，也会记录进去的。 这样做主要有以下两个目的： 1：数据恢复 如果你的数据库出问题了，而你之前有过备份，那么可以看日志文件，找出是哪个命令导致你的数据库出问题了，想办法挽回损失。 2：主从服务器之间同步数据 主服务器上所有的操作都在记录日志中，从服务器可以根据该日志来进行，以确保两个同步。 处理方法分两种情况： 1：只有一个mysql服务器，那么可以简单的注释掉这个选项就行了。 vi /etc/my.cnf把里面的log-bin这一行注释掉，重启mysql服务即可。 2：如果你的环境是主从服务器，那么就需要做以下操作了。 A：在每个从属服务器上，使用SHOW SLAVE STATUS来检查它正在读取哪个日志。 B：使用SHOW MASTER LOGS获得主服务器上的一系列日志。 C：在所有的从属服务器中判定最早的日志，这个是目标日志，如果所有的从属服务器是更新的，就是清单上的最后一个日志。 &#8230; <a href="http://www.7659.net/mysql-bin-000001-delete/" class="more-link">了解更多</a>]]></description>
			<content:encoded><![CDATA[<p>用ports安装了mysql以后，过一段时间发现/var空间不足了，查一下，会发现是mysql-bin.000001、mysql- bin.000002等文件占用了空间，那么这些文件是干吗的？这是数据库的操作日志，例如UPDATE一个表，或者DELETE一些数据，即使该语句没 有匹配的数据，这个命令也会存储到日志文件中，还包括每个语句执行的时间，也会记录进去的。</p>
<p>这样做主要有以下两个目的：<br />
1：数据恢复<br />
如果你的数据库出问题了，而你之前有过备份，那么可以看日志文件，找出是哪个命令导致你的数据库出问题了，想办法挽回损失。<br />
2：主从服务器之间同步数据<br />
主服务器上所有的操作都在记录日志中，从服务器可以根据该日志来进行，以确保两个同步。</p>
<p>处理方法分两种情况：<br />
1：只有一个mysql服务器，那么可以简单的注释掉这个选项就行了。<br />
vi /etc/my.cnf把里面的log-bin这一行注释掉，重启mysql服务即可。<br />
2：如果你的环境是主从服务器，那么就需要做以下操作了。<br />
A：在每个从属服务器上，使用SHOW SLAVE STATUS来检查它正在读取哪个日志。<br />
B：使用SHOW MASTER LOGS获得主服务器上的一系列日志。<br />
C：在所有的从属服务器中判定最早的日志，这个是目标日志，如果所有的从属服务器是更新的，就是清单上的最后一个日志。<br />
D：清理所有的日志，但是不包括目标日志，因为从服务器还要跟它同步。<br />
清理日志方法为：<br />
PURGE MASTER LOGS TO &#8216;mysql-bin.010&#8242;;<br />
PURGE MASTER LOGS BEFORE &#8217;2008-12-19 21:00:00&#8242;;</p>
<p>如果你确定从服务器已经同步过了，跟主服务器一样了，那么可以直接RESET MASTER将这些文件删除。</p>
<p>======================================</p>
<p>之前发现自己10G的服务器空间大小,用了几天就剩下5G了,自己上传的文件才仅仅几百M而已,到底是什么东西占用了这么大空间呢?今天有时间彻底来查了一下:</p>
<p><a title="mysql-log" rel="lightbox" href="http://pic.jiucool.com/2009/MySql_C81A/mysqllog.jpg"><img title="mysql-log" src="http://pic.jiucool.com/2009/MySql_C81A/mysqllog_thumb.jpg" border="0" alt="mysql-log" width="381" height="320" /></a></p>
<p>看下上面的目录web根目录是放在/home 里面的,所有文件加起来才不到300M,而服务器上已经占用了近5G空间,恐怖吧,最后经我一步一步查询得知,原来是这个文件夹占了非常多的空间资源:</p>
<p><a title="mysql-log" rel="lightbox" href="http://pic.jiucool.com/2009/MySql_C81A/mysqllog1.jpg"><img title="mysql-log1" src="http://pic.jiucool.com/2009/MySql_C81A/mysqllog1_thumb.jpg" border="0" alt="mysql-log1" width="422" height="171" /></a></p>
<p>原来如此,是mysql文件夹下的var目录占用空间最大,那里面是啥 内容呢?我们来看下:</p>
<p><a title="mysql-log" rel="lightbox" href="http://pic.jiucool.com/2009/MySql_C81A/mysqllog2.jpg"><img title="mysql-log2" src="http://pic.jiucool.com/2009/MySql_C81A/mysqllog2_thumb.jpg" border="0" alt="mysql-log2" width="527" height="245" /></a></p>
<p>发现了如此多的 mysql-bin.0000X文件,这是什么东西呢?原来这是mysql的操作日志文件.我才几十M的数据库,操作日志居然快3G大小了.</p>
<h2>如何删除mysql-bin.0000X 日志文件呢?</h2>
<p>红色表示输入的命令.</p>
<p>[root@jiucool var]# /usr/local/mysql/bin/mysql -u root -p<br />
Enter password:  (输入密码)<br />
Welcome to the MySQL monitor.  Commands end with ; or \g.<br />
Your MySQL connection id is 264001<br />
Server version: 5.1.35-log Source distribution</p>
<p>Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.</p>
<p>mysql&gt; reset master; (清除日志文件)<br />
Query OK, 0 rows affected (8.51 sec)</p>
<p>mysql&gt;</p>
<p>好了,我们再来查看下mysql文件夹占用多少空间?</p>
<p>[root@jiucool var]# du -h –max-depth=1 /usr/local/mysql/<br />
37M     /usr/local/mysql/var<br />
70M     /usr/local/mysql/mysql-test<br />
15M     /usr/local/mysql/lib<br />
448K    /usr/local/mysql/include<br />
2.9M    /usr/local/mysql/share<br />
7.6M    /usr/local/mysql/libexec<br />
17M     /usr/local/mysql/bin<br />
11M     /usr/local/mysql/docs<br />
2.9M    /usr/local/mysql/sql-bench<br />
163M    /usr/local/mysql/</p>
<p>好了,看一下,整个mysql 目录才占用163M大小!OK,没问题,既然mysql-bin.0000X日志文件占用这么大空间,存在的意义又不是特别大,那么我们就不让它生成吧.</p>
<p>[root@jiucool var]# find / -name my.cnf</p>
<p>找到了my.cnf 即mysql配置文件,我们将log-bin=mysql-bin 这条注释掉即可.</p>
<p># Replication Master Server (default)<br />
# binary logging is required for replication<br />
#log-bin=mysql-bin</p>
<p>重启下mysql吧.</p>
<p>OK,至此,操作完成. 以后再不会因为就几十M的数据库大小生成N个G的日志文件啦.</p>
<p>这些个日志文件太恐怖了,我搬到这新VPS来才二十天左右,还不到一个月日志文件居然就近3个G大小,如果一两个月我不清除日志文件这还得了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/mysql-bin-000001-delete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress中添加Google Adsense</title>
		<link>http://www.7659.net/wordpress-add-google-adsense/</link>
		<comments>http://www.7659.net/wordpress-add-google-adsense/#comments</comments>
		<pubDate>Thu, 26 May 2011 08:04:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress教程]]></category>
		<category><![CDATA[Google Adsense]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[模板文件]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=173</guid>
		<description><![CDATA[wordpress有不少的插件可以用来添加广告，不过插件多了会影响网站的性能，且大多插件都要一篇一篇文章的去加广告，甚是麻烦。 本人觉得修改博客的模板文件是一个一劳永逸的办法，并且位置相对比较灵活。 1.WordPress日志内容页面添加环绕广告 进入你的博客后台–&#62;外观–&#62;编辑 –&#62; 打开 文章页面模板 (single.php) 或者直接下载 文章页面模板 (single.php)  文件，然后打开 找到这段代码 &#60;?php the_content 在这段代码之前插入以下代码 &#60;div style=”float:right; padding-bottom:10px;padding-top:10px;”&#62; google &#8230; <a href="http://www.7659.net/wordpress-add-google-adsense/" class="more-link">了解更多</a>]]></description>
			<content:encoded><![CDATA[<p>wordpress有不少的插件可以用来添加广告，不过插件多了会影响网站的性能，且大多插件都要一篇一篇文章的去加广告，甚是麻烦。<br />
本人觉得修改博客的模板文件是一个一劳永逸的办法，并且位置相对比较灵活。</p>
<p>1.WordPress日志内容页面添加环绕广告<br />
进入你的博客后台–&gt;外观–&gt;编辑 –&gt; 打开 文章页面模板 (single.php)<br />
或者直接下载 文章页面模板 (single.php)  文件，然后打开<br />
找到这段代码 &lt;?php the_content 在这段代码之前插入以下代码<br />
&lt;div style=”float:right; padding-bottom:10px;padding-top:10px;”&gt;<br />
google adsense  广告代码<br />
&lt;/div&gt;<br />
实现的关键是float:right<br />
2.WordPress日志内容页面底部添加广告</p>
<p>继续往下找到这段代码 &lt;?php comments_template(); ?&gt; 将以下代码放到这段代码的前面</p>
<p>&lt;div style=”float:right; padding-bottom:10px;padding-top:10px;”&gt;<br />
google adsense  广告代码<br />
&lt;/div&gt;<br />
3.在WordPress日志内容顶部加广告<br />
打开single.php，找到&lt;?php the_content(); ?&gt;</p>
<p>在 &lt;?php the_content(); ?&gt; 上面加上广告代码即可：</p>
<p>&lt;div style=”padding-bottom:10px;padding-top:10px;”&gt;<br />
广告代码<br />
&lt;/div&gt;<br />
&lt;?php the_content(); ?&gt;</p>
<p>4.博客的首页第一篇文章下面放置google adsense的广告</p>
<p>可以在当前使用的主题文件夹下面找到index.php文件，打开</p>
<p>找到如下代码 &lt;?php the_content(); ?&gt;</p>
<p>在这段代码前面插入代码</p>
<p>&lt;?php if ($wp_query-&gt;current_post == 0) : ?&gt;<br />
&lt;div style=”float:right; padding-bottom:10px;padding-top:10px;”&gt;<br />
google adsense  广告代码<br />
&lt;/div&gt;<br />
&lt;?php endif; ?&gt;<br />
在&lt;?php the_content(); ?&gt;这段代码的后面插入</p>
<p>&lt;?php if ($wp_query-&gt;current_post == 0) : ?&gt;<br />
&lt;div style=”padding-top:10px;text-align:center;”&gt;<br />
336*280Adsense代码<br />
&lt;/div&gt;<br />
&lt;?php endif; ?&gt;</p>
<p>5.</p>
<p>在WordPress侧栏放置广告：<br />
这个最简单也最常见，打开使用中的主题文件夹找到“sidebar.php”，加入下面的代码</p>
<p>把widget改成你主题侧栏使用的样式，活者自定义一个：</p>
<p>&lt;div&gt;<br />
&lt;h3&gt;Ad – Google&lt;/h3&gt;<br />
这里是广告代码<br />
&lt;/script&gt;<br />
&lt;/div&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/wordpress-add-google-adsense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为DEDECMS自动添加内链方法</title>
		<link>http://www.7659.net/dedecms-local-links/</link>
		<comments>http://www.7659.net/dedecms-local-links/#comments</comments>
		<pubDate>Thu, 19 May 2011 02:14:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DedeCms]]></category>
		<category><![CDATA[dedecms自动内链]]></category>
		<category><![CDATA[内链方法]]></category>
		<category><![CDATA[自动添加]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=169</guid>
		<description><![CDATA[dedeCMS程序是开源建站程序中非常优秀的一款，利用它建站的朋友非常之多。小编也有几个站是用dede建站的，今天突然想到当时建站碰到的一个问题，就直接写一下吧。我们都知道内部链接对于SEO来说很重要，DEDE自带有个文档关键词批量维护的功能， 可以在设置好关键词及链接地址后，在文章内容中自动加上该关键词的链接，就是只有在文章关键词标签中添加了此关键词后，才会在内容中加上相应的链接。 织梦(dedecms)官方默认规则是： 1. 添加关键词和关键词的链接地址(设置步骤：进入后台 核心-&#62;批量维护-&#62;文档关键词维护) 2. 文章内容出现该关键词 3. 文章的关键词出现这个词（就是这里&#60;meta name=”keywords” content=”” /&#62;） //这个是在发布文章的时候填写的 我想大家看了就会知道假如去掉第三条就完美了，SEO的角度来说，当前文章的KEYWORD标签只是一两个关于这篇文章的关键词，想做好内链，那得把 首页及其他相关页的关键词都能自动加上链接，这样程序默认就实现不了了，当时为了实现这个功能，小编搜索了一下，经历过一遍又一遍的失败代码，终于找到可 行的了，非原创，拿出来共享下！ 其实也很简单，就是修改这个文件：/include/arc.archives.class.php，找到以下代码： foreach($kws as &#8230; <a href="http://www.7659.net/dedecms-local-links/" class="more-link">了解更多</a>]]></description>
			<content:encoded><![CDATA[<p><span style="color: black;">dedeCMS程序是开源建站程序中非常优秀的一款，利用它建站的朋友非常之多。小编也有几个站是用dede建站的，今天突然想到当时建站碰到的一个问题，就直接写一下吧。我们都知道内部链接对于SEO来说很重要，DEDE自带有个文档</span><span style="color: black;">关键词</span><span style="color: black;">批量维护的功能， 可以在设置好关键词及链接地址后，在文章内容中自动加上该关键词的链接，就是只有在文章关键词标签中添加了此关键词后，才会在内容中加上相应的链接。</span></p>
<p>织梦(dedecms)官方默认规则是：</p>
<p>1. 添加关键词和关键词的链接地址(设置步骤：进入后台 核心-&gt;批量维护-&gt;文档关键词维护)<br />
2. 文章内容出现该关键词<br />
3. 文章的关键词出现这个词（就是这里&lt;meta name=”keywords” content=”” /&gt;） //这个是在发布文章的时候填写的</p>
<p>我想大家看了就会知道假如去掉第三条就完美了，SEO的角度来说，当前文章的KEYWORD标签只是一两个关于这篇文章的关键词，想做好内链，那得把 首页及其他相关页的关键词都能自动加上链接，这样程序默认就实现不了了，当时为了实现这个功能，小编搜索了一下，经历过一遍又一遍的失败代码，终于找到可 行的了，非原创，拿出来共享下！</p>
<p>其实也很简单，就是修改这个文件：/include/arc.archives.class.php，找到以下代码：</p>
<p><span style="color: black;"><span style="color: #ff0000;"> foreach($kws as $k)<br />
{<br />
$k = trim($k);<br />
if($k!=”")<br />
{<br />
if($i &gt; $maxkey)<br />
{<br />
break;<br />
}<br />
$myrow = $this-&gt;dsql-&gt;GetOne(“select * from #@__keywords where keyword=&#8217;$k&#8217; And rpurl&lt;&gt;” “);<br />
if(is_array($myrow))<br />
{<br />
$karr[] = $k;<br />
$GLOBALS['replaced'][$k] = 0;<br />
$kaarr[] = “&lt;a href=&#8217;{$myrow['rpurl']}&#8217;&gt;&lt;u&gt;$k&lt;/u&gt;&lt;/a&gt;”;<br />
}<br />
$i++;<br />
}<br />
}</span></span></p>
<p>把这段内容替换成：</p>
<p><span style="color: black;"><span style="color: #ff0000;"> global $dsql;<br />
$query=”SELECT * FROM dede_keywords WHERE rpurl&lt;&gt;” ORDER BY rank DESC”;<br />
$dsql-&gt;SetQuery($query);<br />
$dsql-&gt;Execute();<br />
while($row = $dsql-&gt;GetArray())<br />
{<br />
$key = trim($row['keyword']);<br />
$key_url=trim($row['rpurl']);<br />
$karr[] = $key;<br />
$kaarr[] = “&lt;a href=&#8217;$key_url&#8217; target=&#8217;_blank&#8217;&gt;&lt;u&gt;$key&lt;/u&gt;&lt;/a&gt;”;<br />
}</span></span></p>
<p>在后台系统设置中 添加新变量 变量名为 cfg_replace_num 并且设置成你所希望的数字型数量。cfg_replace_num的解释为：文档内容同一关键词替换次数(0为全部替换)：</p>
<p>OK这样就好了，然后再到批量关键词维护里设置关键词及链接地址，系统设置里可以设置每个关键词的替换次数，<span style="color: black;">建议设置为一次就可以。假如替换太多，可能是会被K站的哦！</span></p>
<p><span style="color: black;">演示地址：<a href="http://www.52g3.com" target="_blank">android软件</a><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/dedecms-local-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS PPTPD VPN一键安装包</title>
		<link>http://www.7659.net/centos-pptpd-vpn-akey-install/</link>
		<comments>http://www.7659.net/centos-pptpd-vpn-akey-install/#comments</comments>
		<pubDate>Thu, 19 May 2011 00:03:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[VPS建站]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[PPTPD]]></category>
		<category><![CDATA[pptpd vpn]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[一键安装包]]></category>

		<guid isPermaLink="false">http://www.7659.net/?p=165</guid>
		<description><![CDATA[系统要求：CentOS 5 32bit/64bit。若VPS安装需要Xen虚拟化技术支持或者最新的OpenVZ技术支持。 本方法已经在如下VPS上测试成功：VPSyou的Xen；BuyVM的OpenVZ；Yardvps的xen。 安装方法，登陆SSH后输入以下命令： wget http://www.diahosting.com/dload/pptpd.sh sh pptpd.sh 安装完成后会提示vpn用户名和密码。 VPN用户管理： 直接编辑/etc/ppp/chap-secrets文件，按照相同格式添加用户名和密码即可。 原文链接：http://blog.diahosting.com/linux-tutorial/pptpd/]]></description>
			<content:encoded><![CDATA[<p>系统要求：CentOS 5 32bit/64bit。若VPS安装需要Xen虚拟化技术支持或者最新的OpenVZ技术支持。</p>
<p>本方法已经在如下VPS上测试成功：VPSyou的Xen；BuyVM的OpenVZ；Yardvps的xen。</p>
<p>安装方法，登陆SSH后输入以下命令：</p>
<blockquote><p>wget http://www.diahosting.com/dload/pptpd.sh</p></blockquote>
<blockquote><p>sh pptpd.sh</p></blockquote>
<p>安装完成后会提示vpn用户名和密码。</p>
<p>VPN用户管理：<br />
直接编辑/etc/ppp/chap-secrets文件，按照相同格式添加用户名和密码即可。</p>
<p>原文链接：http://blog.diahosting.com/linux-tutorial/pptpd/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.7659.net/centos-pptpd-vpn-akey-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

