<?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>5JUN&#039;s Blog &#187; Apache</title>
	<atom:link href="http://5jun.com/tag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://5jun.com</link>
	<description>快乐生活！快乐工作！</description>
	<lastBuildDate>Wed, 01 Sep 2010 15:28:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>.htaccess实现301域名重定向</title>
		<link>http://5jun.com/121.html</link>
		<comments>http://5jun.com/121.html#comments</comments>
		<pubDate>Mon, 11 Jan 2010 08:59:11 +0000</pubDate>
		<dc:creator>JUN</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[301重定向]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.5jun.com/?p=121</guid>
		<description><![CDATA[　　最近发现博客的两个域名PR值有点混乱，博客绑定了两个米，之前其中一个以php代码301到一个主显www.5jun.com域名上，实现了重定向的效果，但是比较麻烦的是当我将wordpress进行自动升级的时候，原存放301代码的文件有可能被覆盖，需要修改添加，甚至有时忘记这件事，时间长的话对搜索引擎不太友好。 　　用php代码来实现301重定向也是因为之前用的空间是asp的，所谓的全能空间，所以没有采用.htaccess的方式。虽然换用apche空间有段时间了，但是一直没有修改，代码被覆盖也没发现。今天想起来就修改用.htaccess来实现了。 　　首先你的主机需要要支持.htaccess，以我的博客为例，我的主机是apache server，博客程序是wordpress，博客程序放在根目录，原本根目录无.htaccess文件，可以自己创建，先在本地电脑上新建TXT文档，输入内容，命名为htaccess.txt，FTP上传至根目录后，重命名htaccess.txt为.htaccess即可。 Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^***.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.***.com [NC,OR] RewriteCond %{HTTP_HOST} ^5jun.com [NC] RewriteRule ^(.*)$ http://www.5jun.com/$1 [L,R=301] 　　其中***.com和www.***.com为需要301转向的域名，http://www.5jun.com修改为你的目标主显域名，如果有更多域名301转向，复制第3、4行添加就OK. 　　顺便记录下.htaccess做404页面代码： RewriteEngine On ErrorDocument 404 /404.html # 404页面路径自行修改 　　之前用的301转向php代码：（如果是wordpress程序，可以放在根目录wp-blog-header.php文件中。） //301转向 if (strtolower($_SERVER['SERVER_NAME'])!='www.5jun.com') { $URIRedirect=$_SERVER['REQUEST_URI']; if(strtolower($URIRedirect)=="/index.php") { $URIRedirect="/"; } header('HTTP/1.1 301 Moved Permanently'); header('Location:http://www.5jun.com'.$URIRedirect); exit(); } 　　PS:.htaccess 是Apache HTTP Server的文件目录系统级别的配置文件的默认的名字。它提供了在主配置文件中定义用户自定义指令的支持。]]></description>
			<content:encoded><![CDATA[<p>　　最近发现博客的两个域名PR值有点混乱，博客绑定了两个米，之前其中一个以php代码301到一个主显www.5jun.com域名上，实现了重定向的效果，但是比较麻烦的是当我将wordpress进行自动升级的时候，原存放301代码的文件有可能被覆盖，需要修改添加，甚至有时忘记这件事，时间长的话对搜索引擎不太友好。</p>
<p>　　用php代码来实现301重定向也是因为之前用的空间是asp的，所谓的全能空间，所以没有采用.htaccess的方式。虽然换用apche空间有段时间了，但是一直没有修改，代码被覆盖也没发现。今天想起来就修改用.htaccess来实现了。</p>
<p>　　首先你的主机需要要支持.htaccess，以我的博客为例，我的主机是apache server，博客程序是wordpress，博客程序放在根目录，原本根目录无.htaccess文件，可以自己创建，先在本地电脑上新建TXT文档，输入内容，命名为htaccess.txt，FTP上传至根目录后，重命名htaccess.txt为.htaccess即可。</p>
<pre><code class="code_all">Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^***.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.***.com [NC,OR]
RewriteCond %{HTTP_HOST} ^5jun.com [NC]
RewriteRule ^(.*)$ http://www.5jun.com/$1 [L,R=301]
</code></pre>
<p><span id="more-121"></span></p>
<p>　　其中***.com和www.***.com为需要301转向的域名，http://www.5jun.com修改为你的目标主显域名，如果有更多域名301转向，复制第3、4行添加就OK.</p>
<p>　　顺便记录下.htaccess做404页面代码：</p>
<pre><code class="code_all">RewriteEngine On
ErrorDocument 404 /404.html
# 404页面路径自行修改
</code></pre>
<p><P>　　之前用的301转向php代码：（如果是wordpress程序，可以放在根目录wp-blog-header.php文件中。）</p>
<pre><code class="code_all">//301转向
if (strtolower($_SERVER['SERVER_NAME'])!='www.5jun.com')
{
$URIRedirect=$_SERVER['REQUEST_URI'];
if(strtolower($URIRedirect)=="/index.php")
{
$URIRedirect="/";
}
header('HTTP/1.1 301 Moved Permanently');
header('Location:http://www.5jun.com'.$URIRedirect);
exit();
}
</code></pre>
<p>　　<strong>PS:</strong>.htaccess 是Apache HTTP Server的文件目录系统级别的配置文件的默认的名字。它提供了在主配置文件中定义用户自定义指令的支持。</p>
]]></content:encoded>
			<wfw:commentRss>http://5jun.com/121.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apache日志中“指定的网络名不再可用”问题的解决</title>
		<link>http://5jun.com/67.html</link>
		<comments>http://5jun.com/67.html#comments</comments>
		<pubDate>Thu, 16 Oct 2008 18:37:05 +0000</pubDate>
		<dc:creator>5JUN</dc:creator>
				<category><![CDATA[电脑知识]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[日志]]></category>

		<guid isPermaLink="false">http://www.5jun.com/wp/?p=67</guid>
		<description><![CDATA[　　前几天公司网站打开超慢，有时候甚至出现该页无法显示，找了很多原因，后来查看Apache的logs，在Apache的logs/error.log中出现如下记录： [Fri Mar 16 17:28:49 2007] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed. [Fri Mar 16 17:28:49 2007] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed. [Fri Mar 16 17:28:50 2007] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed. 　　出现这个故障内存占用很大，导致网站访问极慢。 　　找到的解决方法： 　　Apache 关闭 AcceptEx() ，这个在Windows平台下适用 　　方法是在 httpd.conf 内加入 Win32DisableAcceptEx 。 　　Win32DisableAcceptEx 顾名思义就是在 Windows 下关掉 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.5jun.com/wp-content/uploads/pj/month_0810/a20081016133640.gif" border="0" alt="" align="right" />　　前几天公司网站打开超慢，有时候甚至出现该页无法显示，找了很多原因，后来查看Apache的logs，在Apache的logs/error.log中出现如下记录：</p>
<blockquote><p>
[Fri Mar 16 17:28:49 2007] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.<br />
[Fri Mar 16 17:28:49 2007] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.<br />
[Fri Mar 16 17:28:50 2007] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
</p></blockquote>
<p>　　出现这个故障内存占用很大，导致网站访问极慢。</p>
<p>　　找到的解决方法：<span id="more-67"></span></p>
<p>　　Apache 关闭 AcceptEx() ，这个在Windows平台下适用</p>
<p><span style="color:Blue">　　方法是在 httpd.conf 内加入</span> <span style="color:Red">Win32DisableAcceptEx</span> 。</p>
<p>　　Win32DisableAcceptEx 顾名思义就是在 Windows 下关掉 AcceptEx() 功能的指令。至於 AcceptEx() 这个东西是什么，可以参考 Apache 的官方网页:</p>
<p>http://httpd.apache.org/docs/2.0/mod/mpm_winnt.html</p>
<blockquote><p>
QUOTE:<br />
AcceptEx() is a Microsoft WinSock v2 API that provides some performance improvements over the use of the BSD style accept() API in certain circumstances. Some popular Windows products, typically virus scanning or virtual private network packages, have bugs that interfere with the proper operation of AcceptEx(). If you encounter an error condition like:</p>
<p>[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.</p>
<p>you should use this directive to disable the use of AcceptEx().
</p></blockquote>
<p>　　主要是说这 AcceptEx() 是 Microsoft WinSock v2 API 一组提升网络效率 API 中的指令。而且在 Windows 上似乎蛮有可能出问题的。</p>
<p>　　注：可能为了效能还是预设为开啟 AcceptEx()</p>
<p>　　如果无预警的发生问题，我猜可能是 Windows Update 或是防火墙、防毒软体更新了某些网路原件，造成 Microsoft WinSock v2 API 动作不正常，这时可以把这个功能先给关掉。</p>
<p>　　依照官方说明 ， Win32DisableAcceptEx 这个功能，只有 2.0.49 版以后的才可以使用，所以我猜测 AcceptEx() 这个指令大概也是 2.0.49 才会开始支援(目前最新的就是 2.0.49)。</p>
<p>　　关掉 AcceptEx() 的方式只要在 httpd.conf 找到</p>
<blockquote><p>
ThreadsPerChild 250<br />
MaxRequestsPerChild 0
</p></blockquote>
<p>　　区段，加入 Win32DisableAcceptEx 就可以了。<br />
　　（# ThreadsPerChild:服务进程中工作线程常数；# MaxRequestsPerChild:服务进程允许的最大请求数）</p>
<blockquote><p>
ThreadsPerChild 250<br />
MaxRequestsPerChild 0<br />
<span style="color:Red">Win32DisableAcceptEx</span> （添加这一行）
</p></blockquote>
<p>　　然后重新启动动 Apache，“指定的网络名不再可用”再也不出现了。</p>
]]></content:encoded>
			<wfw:commentRss>http://5jun.com/67.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
