﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-无所惧，无所悔,为梦想执着的拼搏-文章分类-Apache技术文档</title><link>http://www.blogjava.net/DreamFight/category/40953.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 12 Oct 2010 12:27:26 GMT</lastBuildDate><pubDate>Tue, 12 Oct 2010 12:27:26 GMT</pubDate><ttl>60</ttl><item><title>apache配置本地测试多网站域名与虚拟主机</title><link>http://www.blogjava.net/DreamFight/articles/334048.html</link><dc:creator>DreamFight</dc:creator><author>DreamFight</author><pubDate>Sat, 09 Oct 2010 02:39:00 GMT</pubDate><guid>http://www.blogjava.net/DreamFight/articles/334048.html</guid><wfw:comment>http://www.blogjava.net/DreamFight/comments/334048.html</wfw:comment><comments>http://www.blogjava.net/DreamFight/articles/334048.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamFight/comments/commentRss/334048.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamFight/services/trackbacks/334048.html</trackback:ping><description><![CDATA[<div class="cnt" id="blog_text">
<div class="articleContent">
<p>1、修改域名访问方式：</p>
<p>运行：C:\WINDOWS\system32\drivers\etc</p>
<p>打开：hosts文件</p>
<p>添加域名指向。</p>
<p>2、修改httpd.conf.</p>
<p>配置生效前提，必须修改跟目录为：</p>
<p>&lt;Directory /&gt;<br />
Options FollowSymLinks<br />
AllowOverride None<br />
### Order deny,allow<br />
### Deny from all<br />
Order allow,deny<br />
<font color="#ff0000">Allow from all<br />
</font>Satisfy all<br />
&lt;/Directory&gt;</p>
<p>否则会出现无权访问问题。</p>
<p>3、虚拟主机的配置<br />
(1)基于IP地址的虚拟主机配置<br />
Listen 80<br />
&lt;VirtualHost 172.20.30.40&gt;<br />
DocumentRoot /www/example1<br />
ServerName www.example1.com<br />
&lt;/VirtualHost&gt;<br />
&lt;VirtualHost 172.20.30.50&gt;<br />
DocumentRoot /www/example2<br />
ServerName www.example2.org<br />
&lt;/VirtualHost&gt;</p>
<p>(2) 基于IP和多端口的虚拟主机配置<br />
Listen 172.20.30.40:80<br />
Listen 172.20.30.40:8080<br />
Listen 172.20.30.50:80<br />
Listen 172.20.30.50:8080</p>
<p>&lt;VirtualHost 172.20.30.40:80&gt;<br />
DocumentRoot /www/example1-80<br />
ServerName www.example1.com<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.40:8080&gt;<br />
DocumentRoot /www/example1-8080<br />
ServerName www.example1.com<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.50:80&gt;<br />
DocumentRoot /www/example2-80<br />
ServerName www.example1.org<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.50:8080&gt;<br />
DocumentRoot /www/example2-8080<br />
ServerName www.example2.org<br />
&lt;/VirtualHost&gt;</p>
<p>(3)单个IP地址的服务器上基于域名的虚拟主机配置：<br />
# Ensure that Apache listens on port 80<br />
Listen 80</p>
<p># Listen for virtual host requests on all IP addresses<br />
NameVirtualHost *:80</p>
<p>&lt;VirtualHost *:80&gt;<br />
DocumentRoot /www/example1<br />
ServerName www.example1.com<br />
ServerAlias example1.com. *.example1.com<br />
# Other directives here<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost *:80&gt;<br />
DocumentRoot /www/example2<br />
ServerName www.example2.org<br />
# Other directives here<br />
&lt;/VirtualHost&gt;</p>
<p>(4)在多个IP地址的服务器上配置基于域名的虚拟主机：<br />
Listen 80</p>
<p># This is the "main" server running on 172.20.30.40<br />
ServerName server.domain.com<br />
DocumentRoot /www/mainserver</p>
<p># This is the other address<br />
NameVirtualHost 172.20.30.50</p>
<p>&lt;VirtualHost 172.20.30.50&gt;<br />
DocumentRoot /www/example1<br />
ServerName www.example1.com<br />
# Other directives here &#8230;<br />
&lt;/VirtualHost&gt;<br />
IXDBA.NET社区论坛</p>
<p>&lt;VirtualHost 172.20.30.50&gt;<br />
DocumentRoot /www/example2<br />
ServerName www.example2.org<br />
# Other directives here &#8230;<br />
&lt;/VirtualHost&gt;</p>
<p>(5)在不同的端口上运行不同的站点(基于多端口的服务器上配置基于域名的虚拟主机)：<br />
Listen 80<br />
Listen 8080</p>
<p>NameVirtualHost 172.20.30.40:80<br />
NameVirtualHost 172.20.30.40:8080</p>
<p>&lt;VirtualHost 172.20.30.40:80&gt;<br />
ServerName www.example1.com<br />
DocumentRoot /www/domain-80<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.40:8080&gt;<br />
ServerName www.example1.com<br />
DocumentRoot /www/domain-8080<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.40:80&gt;<br />
ServerName www.example2.org<br />
DocumentRoot /www/otherdomain-80<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.40:8080&gt;<br />
ServerName www.example2.org<br />
DocumentRoot /www/otherdomain-8080<br />
&lt;/VirtualHost&gt;</p>
<p>(6)基于域名和基于IP的混合虚拟主机的配置:<br />
Listen 80</p>
<p>NameVirtualHost 172.20.30.40</p>
<p>&lt;VirtualHost 172.20.30.40&gt;<br />
DocumentRoot /www/example1<br />
ServerName www.example1.com<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.40&gt;<br />
DocumentRoot /www/example2<br />
ServerName www.example2.org<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 172.20.30.40&gt;<br />
DocumentRoot /www/example3<br />
ServerName www.example3.net<br />
&lt;/VirtualHost&gt;</p>
<p>==========================================================================</p>
<p>简单的说,打开httpd.conf 在最后加入如下内容:</p>
<p>&lt;VirtualHost 127.0.0.2:80&gt;<br />
&nbsp;&nbsp;&nbsp; DocumentRoot d:/AppServ/www2<br />
&nbsp;&nbsp;&nbsp; ServerName 127.0.0.2:80<br />
&lt;/VirtualHost&gt;</p>
<p><br />
&lt;Directory "d:/AppServ/www2"&gt;<br />
&nbsp;&nbsp;&nbsp; Options Indexes FollowSymLinks Multiviews<br />
&nbsp;&nbsp;&nbsp; AllowOverride All<br />
&nbsp;&nbsp;&nbsp; Order Allow,Deny<br />
&nbsp;&nbsp;&nbsp; Allow from all<br />
&lt;/Directory&gt;</p>
<p>"d:/AppServ/www2" 为你的站点存放目录:重启apache2以后，你的虚拟主机就配置好了，以后就可以通过127.0.0.2,和127.0.0.3进入不同的站点了。</p>
<p>下面为详细说明分析:</p>
<p>在我们安装APACHE的时候一般默认的apache的配置是只有一个网站，这样切换起来很不方便。其实这个问题很好解决，就是把本机的 apache配置成为虚拟服务器。但是，网上大多数教程的是教用 apache如何配置基于域名的虚拟主机的，而在本机调试网站的时候，一般都是用本地ip（127.0.0.1 或 localhost）直接访问，没有用到域名。所以得把apache配置成为基于ip地址的虚拟主机。</p>
<p>首先，我们都知道,所有以127打头的ip地址都应该指向本机，并不只有127.0.0.1，这点大家可以试试。<br />
这样一来，也就是说本机有足够多的ip地址供你来开设虚拟主机了。</p>
<p>废话少说，进入正式的配置工作，下面是apache的httpd.conf里相关配置部分( httpd.conf 位于 Apache2.2\conf )：<br />
1、Listen部分，必须直接指定端口，不指定ip地址，配置应写为：<br />
Listen 80<br />
2、不用像基于域名的虚拟主机那样写&#8220;NameVirtualHost&#8221;。</p>
<p>3、虚拟主机配置段：在httpd.conf 最后加上<br />
&lt;VirtualHost 127.0.0.2:80&gt;<br />
&nbsp;&nbsp;&nbsp; DocumentRoot d:/AppServ/www2<br />
&nbsp;&nbsp;&nbsp; ServerName 127.0.0.2:80<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost 127.0.0.3:80&gt;<br />
&nbsp;&nbsp;&nbsp; DocumentRoot d:/AppServ/www3<br />
&nbsp;&nbsp;&nbsp; ServerName 127.0.0.3:80<br />
&lt;/VirtualHost&gt;...</p>
<p>4、然后相应的配置好各个目录属性，下面是一个目录属性的典型配置：<br />
&lt;Directory "d:/AppServ/www2"&gt;<br />
&nbsp;&nbsp;&nbsp; Options Indexes FollowSymLinks Multiviews<br />
&nbsp;&nbsp;&nbsp; AllowOverride All<br />
&nbsp;&nbsp;&nbsp; Order Allow,Deny<br />
&nbsp;&nbsp;&nbsp; Allow from all<br />
&lt;/Directory&gt;</p>
<p>&lt;Directory "d:/AppServ/www3"&gt;<br />
&nbsp;&nbsp;&nbsp; Options Indexes FollowSymLinks Multiviews<br />
&nbsp;&nbsp;&nbsp; AllowOverride All<br />
&nbsp;&nbsp;&nbsp; Order Allow,Deny<br />
&nbsp;&nbsp;&nbsp; Allow from all<br />
&lt;/Directory&gt;</p>
<p>重启apache2以后，你的虚拟主机就配置好了，以后就可以通过127.0.0.1和127.0.0.2,127.0.0.3进入不同的站点了。</p>
</div>
</div>
<img src ="http://www.blogjava.net/DreamFight/aggbug/334048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamFight/" target="_blank">DreamFight</a> 2010-10-09 10:39 <a href="http://www.blogjava.net/DreamFight/articles/334048.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache虚拟机配置文档</title><link>http://www.blogjava.net/DreamFight/articles/334037.html</link><dc:creator>DreamFight</dc:creator><author>DreamFight</author><pubDate>Sat, 09 Oct 2010 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/DreamFight/articles/334037.html</guid><wfw:comment>http://www.blogjava.net/DreamFight/comments/334037.html</wfw:comment><comments>http://www.blogjava.net/DreamFight/articles/334037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamFight/comments/commentRss/334037.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamFight/services/trackbacks/334037.html</trackback:ping><description><![CDATA[<p class="cc-lisence" style="line-height: 180%;">
转载时请以超链接形式标明文章原始出处和作者信息及 <a href="http://www.qzdc.net">http://www.qzdc.net</a>
</p>
<p><span style="color: #606060;">&lt;VirtualHost *:80&gt;<br />
</span><span style="color: #606060;">ServerAdmin
webmaster@example.com ——管理员邮箱（可以随便写一个）<br />
</span><span style="color: #606060;">DocumentRoot "/home/phpok-com"
——网站目录<br />
ServerName </span><span style="color: #606060;">example</span><span style="color: #606060;">.com ——
要绑定的域名<br />
ServerAlias <a href="http://www.phpok.com/">www.</a></span><a href="http://www.phpok.com/"><span style="color: #606060;">example</span></a><span style="color: #606060;"><a href="http://www.phpok.com/">.com</a>
——要绑定的别名，如果有多个别名就用英文逗号隔开<br />
CustomLog&nbsp;
</span><span style="color: #606060;">logs/</span><a href="http://www.phpok.com/"><span style="color: #606060;">example</span></a><span style="color: #606060;">.com_custom_log</span><span style="color: #606060;">——用户日志格式（这一行也可以为空）<br />
ErrorLog logs/</span><a href="http://www.phpok.com/"><span style="color: #606060;">example</span></a><span style="color: #606060;">.com_error_log
——错误日志（也可以为空）<br />
&lt;/VirtualHost&gt;</span></p>
<p>步骤：<br />
1.修改httpd.conf<br />
把<span style="color: #ff0000;">#Include conf/extra/httpd-vhosts.conf</span>前面的#去掉，意思是让httpd.conf文件包含httpd-vhosts.conf这个配置文件，这是apache的配置模块化的一个表现，这里不多说。<br />
<br />
寻
找httpd.conf中的ServerName，如果ServerName的设置不是域名
www.abc1.com的话，那么改为ServerName www.abc1.com，如过你要用ssl之类的东西，那么改为ServerName
www.abc1.com:80，就是加了个端口。<br />
<br />
2.修改httpd-vhosts.conf<br />
<br />
添加如下代码（有些可能文件里面就有，改一下就可以了）：<br />
<br />
NameVirtualHost *<br />
<br />
&lt;VirtualHost *&gt;<br />
&nbsp;&nbsp;&nbsp; DocumentRoot "C:/aic"<br />
&nbsp;&nbsp;&nbsp; ServerName www.abc1.com<br />
&nbsp;&nbsp;&nbsp; ServerAlias abc1.com *.abc1.com<br />
&lt;/VirtualHost&gt;<br />
<br />
&lt;VirtualHost *&gt;<br />
&nbsp;&nbsp;&nbsp; DocumentRoot "c:/aic/mybbonline"<br />
&nbsp;&nbsp;&nbsp; ServerName www.efg2.com<br />
&nbsp;&nbsp;&nbsp; ServerAlias efg2.com *.efg2.com<br />
&lt;/VirtualHost&gt;<br />
<br />
值得注意的是，VirtualHost是有顺序的，排在最前的VirtualHost的我们默认的网站域名，其中的DocumentRoot和ServerName都必须与httpd.conf中的一样，包括端口。<br />
<br />
DocumentRoot是虚拟主机的路径<br />
<br />
而ServerAlias是域名的别名，配置了这个，那么一些二级域名就都可以进行虚拟主机解析了。如*.efg2.com就可以代表bbs.efg2.com或news.efg2.com等。<br />
<br />
-----------------------------------------------------------------<br />
<br />
&nbsp;&nbsp;&nbsp; 虚拟主机的一般形式诸如（extra/httpd-vhosts.conf）：<br />
<br />
NameVirtualHost *:80<br />
<br />
&lt;VirtualHost *:80&gt;<br />
ServerName www.domain.tld<br />
ServerAlias domain.tld *.domain.tld<br />
DocumentRoot /www/domain<br />
&lt;/VirtualHost&gt;<br />
<br />
&lt;VirtualHost *:80&gt;<br />
ServerName www.otherdomain.tld<br />
DocumentRoot /www/otherdomain<br />
&lt;/VirtualHost&gt;<br />
<br />
&nbsp;&nbsp;
这是apache2.2中文参考手册中的示例。一般的咱们这样配置在以前版本是没有问题的。但是现在就不一样了。当访问某个虚拟主机下的页面的时候会出现
类似：&#8220;403(禁止访问)，你无法查看该网页&#8230;&#8221;的错误。很明显这是拒绝访问的提示。按照经验很容易找到(httpd.conf)下面的内容：<br />
<br />
&lt;Directory /&gt;<br />
<br />
Options FollowSymLinks<br />
<br />
AllowOverride None<br />
<br />
Order deny,allow&nbsp;&nbsp;&nbsp; <br />
<br />
//先拒绝后允许Deny from all<br />
//拒绝所有的访问&lt;/Directory&gt;<br />
<br />
<br />
&nbsp;&nbsp;
这一个部分就是对目录进行访问控制的，很显然这设置得很严格，因此，我们必须手动加入虚拟机目录的权限控制块，才可以让用户正常访问虚拟机的目录及页面文
件。有两个地方可以加入虚拟目录访问权限控制块：主配置文件httpd.conf和虚拟机配置文件httpd-vhost.conf,毫无疑问我们选择虚
拟机配置文件，主要是维护起来更方便。那么我们把目录访问控制块插入到虚拟机配置文件，这样我们的虚拟主机的配置文件写法就类似这样：<br />
<br />
&lt;VirtualHost *:80&gt;<br />
<br />
DocumentRoot "E:/web"<br />
ServerName www.domain.tld<br />
&lt;Directory "E:/web"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
//插入开始<br />
Options -Indexes FollowSymLinks<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
//插入结束&lt;/VirtualHost&gt;&nbsp;&nbsp;&nbsp; <br />
<br />
这
样配置完成后，我们使用apachectl命令及相关参数来检测配置文件是否有问题。确认无误后进行，重新启动apache服务。然后使用浏览器进行访问
测试（呵呵！又是废话了！）。如果还不行的话，那就检查你的页面文件的权限设置是否过高，导致的不能访问了！当然这种情况在windows下比较少见，一
般可能出现在linux环境下。 </p>
<img src ="http://www.blogjava.net/DreamFight/aggbug/334037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamFight/" target="_blank">DreamFight</a> 2010-10-09 09:53 <a href="http://www.blogjava.net/DreamFight/articles/334037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows开启Apache的mod_rewrite模块</title><link>http://www.blogjava.net/DreamFight/articles/287525.html</link><dc:creator>DreamFight</dc:creator><author>DreamFight</author><pubDate>Mon, 20 Jul 2009 12:57:00 GMT</pubDate><guid>http://www.blogjava.net/DreamFight/articles/287525.html</guid><wfw:comment>http://www.blogjava.net/DreamFight/comments/287525.html</wfw:comment><comments>http://www.blogjava.net/DreamFight/articles/287525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamFight/comments/commentRss/287525.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamFight/services/trackbacks/287525.html</trackback:ping><description><![CDATA[<p>windows下安装apache默认是没有开启mod_rewrite模块的,启用也很简单,修改apache配置文件httpd.conf,将#LoadModule rewrite_module modules/mod_rewrite.so这一行前面的#号去掉,改为LoadModule rewrite_module modules/mod_rewrite.so</p>
<p>为了测试mod_rewrite模块是否启用成功,可以采用一个简单的例子测试一下.</p>
<p>在htdocs下新建.htaccess文件,可以打开记事本另存-所有文件,文件名为.htaccess,在windows下直接改名是无法改成.htaccess文件的,在文件中输入:</p>
<p>RewriteEngine On<br />
RewriteBase /<br />
RewriteRule ^(.+)$ index.html</p>
<p>然后都浏览器localhost/后随便输入abc,然后回车,是不是显示It works!</p>
<p>需要注意的是,我们这里是在根目录下使用.htaccess,如果我们的网站在子目录中,虽然我们有.htaccess文件,同时也启用apache的mod_rewrite模块,但是我们依然会遇到无法找到页面错误,原因在哪里呢?</p>
<p>还是httpd.conf文件,找到&lt;Directory &#8220;D:/Apache2.2/htdocs&#8221;&gt;,就是文档根目录,根据安装位置不同会有所不同,将AllowOverride None改为AllowOverride All,其实文件注释里说的很明白的</p>
<p>AllowOverride controls what directives may be placed in .htaccess files.<br />
It can be &#8220;All&#8221;, &#8220;None&#8221;, or any combination of the keywords:<br />
&nbsp; Options FileInfo AuthConfig Limit</p>
<p>至此,重启apache后子目录也可以使用.htaccess实现url重写了.</p>
<img src ="http://www.blogjava.net/DreamFight/aggbug/287525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamFight/" target="_blank">DreamFight</a> 2009-07-20 20:57 <a href="http://www.blogjava.net/DreamFight/articles/287525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>