蜀川居 2012-02-02
----------
摘要
----------
本文极为简要的介绍了如何在Windows平台下安装Apache2.2.x并配置虚拟目录.以作为快速安装的参考.详细的设置最好的文档是官方的说明文档见下方的链接,在安装配置的时候仔细的查阅文档是很好的解决办法.
1.ApacheHTTPServerVersion2.2英文文档
2.ApacheHTTPServerVersion2.2中文文档
----------
准备条件
----------
到http://httpd.apache.org/下载相应版本的Apache.(注意:2.0与2.2版本的Apache对应的Module版本页不同,互相不兼容,因此需要根据应用程序来下载相应版本的Apache).如果不需要使用ssl,则要下载Apache2.x.x-win32-x86-no_ssl.msi,如果需要使用,则需要下载Apache2.x.x-win32-x86-openssl-x.x.x.msi
----------
安装
----------
双击安装程序,它将引导你完成整个安装过程。请确保你输入正确的服务器URL(如果你的服务器没有DNS名称,你可以直接输入IP地址)。建议将Apache安装成"forallUsers,onPort80,asaservice"Apache将自动安装一个系统服务以自动启动。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的ApacheGroup\Apache2\conf目录中找到文件httpd.conf,将其中的Listen80改成一个不用的端口,比如Listen81。然后重新运行这个安装程序,这次应该不会再有问题了。
安装结束之后在浏览器中键入http://loccalhost,如果呈现了一个已经配置好的网站,那么Apache就安装成功了。如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。
打开Apache的安装目录,找到文件/conf/httpd.conf,打开它进行配置的编辑.配置文件中对于各项都有比较详细的描述,在配置结束之后可以运行开始菜单中Apache安装文件夹中的TestConfiguration工具来检验配置文件是否正确.如果配置不正确会给出简要的说明.如果在配置结束之后通过了TestConfiguration工具,但是仍然不能够顺利运行Apache,可以到[Apache安装目录]/logs/这个目录中查看记录,以找出问题所在.
----------
配置httpd.conf文件
----------
#设置文档主目录,后面的就是磁盘的目录
DocumentRoot"D:/Programs/Apache2.2/htdocs"
#添加虚拟目录,下面的设置在浏览器中输入http://localhost/webpath/的时候机会访问服务器的"D:/Programs/WebPath"目录
Alias/webpath/"D:/Programs/WebPath"
#当/webPath后面不加"/"的话,在浏览器中可以输入http://localhost/webpathApache会自动的在后面添加"/"
Alias/webpath"D:/Programs/WebPath"
#URL重定向
Redirectpermanent/foo/http://www.example.com/bar/
# 设定虚拟主机: 请参考 http://lamp.linux.gov.cn/Apache/ApacheMenu/vhosts/index.html
在WIN下安装APACHE配置虚拟目录和UNIN下基本是一样的
就是修改httpd.conf
1:单个IP对应单个玉米
例如:www.phpunion.com对应192.168.1.1
www.feelone.net对应192.168.1.2
在httpd.conf中加入如下指令
<VirtualHost192.168.1.1>#对应玉米所指向的IP
DocumentRoot"c:/web/php"#www.phpunion.com要指向的目录,注意一定要有""
ServerNamewww.phpunion.com#所要绑的玉米
</VirtualHost><VirtualHost192.168.1.2>#对应玉米所指向的IP
DocumentRoot"c:/web/feel"#www.feelone.net要指向的目录,注意一定要有""
ServerNamewww.feelone.net#所要绑的玉米
</VirtualHost>
剩下的可以继续绑!2:单个IP对应多个玉米
NameVirtualHost 192.168.1.1 #记得一定要有着句啊!
<VirtualHost192.168.1.1>#对应玉米所指向的IP
DocumentRoot"c:/web/php"#www.phpunion.com要指向的目录,注意一定要有""
ServerNamewww.phpunion.com#所要绑的玉米
</VirtualHost>
<VirtualHost192.168.1.1>#对应玉米所指向的IP
DocumentRoot"c:/web/feel"#www.feelone.net要指向的目录,注意一定要有""
ServerNamewww.feelone.net#所要绑的玉米
</VirtualHost>这样就绑上对应的目录了,如果没有NameVirtualHost192.168.1.1这个指令的话,所有的玉米就都指到php目录了.
然后重新启动apache,就可以看到所指的玉米对应相应的虚拟目录!Example:
<VirtualHost10.1.2.3>
DocumentRoot/www/docs/host.example.com
ServerNamehost.example.com
ErrorLoglogs/host.example.com-error_log
TransferLoglogs/host.example.com-access_log
</VirtualHost>今天网站建设技术部的PHP程序员教了我一个在本地实现虚拟一个域名来访问本机电脑的数据的方法,首先说说我本地的环境是:WIN2003+xampp。其实能实现效果就行,直接用xampp的最好方法就是省事,不用一个一个软件安装!然后下面一步一步实现虚拟一个www.123.com来访问本地网站程序。
1.关闭xampp的apache,然后找到C:\xampp\apache\conf\extra\httpd-vhosts.conf文件:
在##NameVirtualHost*:80下面加入以下代码,其中的IP为本地电脑的IP,可以进入CMD使用ipconfig查询到本机IP
NameVirtualHost192.168.1.101:80
然后把以下代码复制一份
##<VirtualHost*:80>
##DocumentRoot"C:/xampp/htdocs/dummy-host2.localhost"
##ServerNamedummy-host2.localhost
##ServerAliaswww.dummy-host2.localhost
##ErrorLog"logs/dummy-host2.localhost-error.log"
##CustomLog"logs/dummy-host2.localhost-access.log"combined
##</VirtualHost>
修改成以下代码
<VirtualHost*:80>
DocumentRoot"E:/php/ecshop2.72"
ServerNamewww.123.com
ServerAliaswww.123.com
##ErrorLog"logs/dummy-host2.localhost-error.log"
##CustomLog"logs/dummy-host2.localhost-access.log"combined
</VirtualHost>
其中DocumentRoot是本机网站制作程序的路径,ServerName及ServerAlias就是要虚拟的域名网址,这个随便你高兴了
2.找到C:\xampp\apache\conf\httpd.conf文件,找到以下代码:
DocumentRoot"C:/xampp/htdocs"
<Directory"C:/xampp/htdocs">
把上面的两个网站目录的路径修改成上面设置的路径
DocumentRoot"E:/php"
<Directory"E:/php">
因为设置了虚拟的域名网址,所以路径不用再加上网站的文件夹名称了
3.然后打开C:\WINDOWS\system32\drivers\etc\hosts文件,
在127.0.0.1localhost下添加你要添加的虚拟域名网址
127.0.0.1localhost
192.168.1.101www.123.com
呵呵,修改这三个文件之后就OK了,现在可以重新启动xampp的apache了,然后在IE里输入www.123.com就能访问本地的网站程序了,这样测试的好处是能把本机虚拟成服务器,有些东东很方便就能调试!当然,用localhost也是还可以访问了,这个功能用不到的话也没必要这么搞,我是因为有时用到Magento程序,使用域名会更好,不会有一些莫名其妙的问题。当然了,如果你有好几个网站的话,每次都要修改一下C:\xampp \apache\conf\extra\httpd-vhosts.conf对应的DocumentRoot "E:/php/ecshop2.72",因为我的网页设计的PHP程序都是放在E盘下的PHP文件夹,然后每个网站就一个文件夹,这样每次只需要修改一个文件就OK了,看个人爱好了,共享出来让大家玩玩,嘿嘿!详细配置:http://httpd.apache.org/docs/2.2/vhosts/
中文配置:http://www.zzxj.net/web/manual/ApacheMenu/rewrite/rewrite_guide.html
虚拟主机的配置
基于IP地址的虚拟主机配置
Listen80
DocumentRoot/www/example1
ServerNamewww.example1.com
DocumentRoot/www/example2
ServerName www.example2.org基于IP和多端口的虚拟主机配置
Listen172.20.30.40:80
Listen172.20.30.40:8080
Listen172.20.30.50:80
Listen 172.20.30.50:8080DocumentRoot /www/example1-80
ServerNamewww.example1.com
DocumentRoot/www/example1-8080
ServerNamewww.example1.com
DocumentRoot/www/example2-80
ServerNamewww.example1.org
DocumentRoot/www/example2-8080
ServerName www.example2.org单个IP地址的服务器上基于域名的虚拟主机配置:
#EnsurethatApachelistensonport80
Listen80
#ListenforvirtualhostrequestsonallIPaddresses
NameVirtualHost*:80
DocumentRoot/www/example1
ServerNamewww.example1.com
ServerAliasexample1.com.*.example1.com
#Otherdirectiveshere
DocumentRoot/www/example2
ServerNamewww.example2.org
# Other directives here在多个IP地址的服务器上配置基于域名的虚拟主机:
Listen80
#Thisisthe“main”serverrunningon172.20.30.40
ServerNameserver.domain.com
DocumentRoot/www/mainserver
#Thisistheotheraddress
NameVirtualHost172.20.30.50
DocumentRoot/www/example1
ServerNamewww.example1.com
#Otherdirectiveshere…
DocumentRoot/www/example2
ServerNamewww.example2.org
# Other directives here …在不同的端口上运行不同的站点:
基于多端口的服务器上配置基于域名的虚拟主机。
Listen80
Listen8080
NameVirtualHost172.20.30.40:80
NameVirtualHost172.20.30.40:8080
ServerNamewww.example1.com
DocumentRoot/www/domain-80
ServerNamewww.example1.com
DocumentRoot/www/domain-8080
ServerNamewww.example2.org
DocumentRoot/www/otherdomain-80
ServerNamewww.example2.org
DocumentRoot /www/otherdomain-8080基于域名和基于IP的混合虚拟主机的配置:
Listen80
NameVirtualHost172.20.30.40
DocumentRoot/www/example1
ServerNamewww.example1.com
DocumentRoot/www/example2
ServerNamewww.example2.org
DocumentRoot/www/example3
ServerName www.example3.net自己的设置
hosts
127.0.0.1 localhost127.0.0.1 fantsi
httpd.conf
Alias /fantsi/ "E:/xampp/htdocs/fantsi"
NameVirtualHost127.0.0.1
<VirtualHost127.0.0.1>
DocumentRoot"E:/xampp/htdocs"
ServerNamelocalhost
ServerAliaslocalhost
</VirtualHost>
<VirtualHost127.0.0.1>
DocumentRoot"E:/xampp/htdocs/fantsi"
ServerNamefantsi
ServerAliasfantsi
</VirtualHost>
在tomcat6版本中:1、本人不推荐。在tomcat\conf下server.xml中找到<hostname="localhost"appbase="webapps"unpackwars="true
Tomcat的Web应用默认是放置在其webapps目录下的,通过配置可以重新为其设置虚拟目录。在<HOST>...</HOST>节点中加入如下配置。docBase属性配置虚拟目录对应磁盘上的真实目录