配置PHP虚拟目录

蜀川居 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>

[email protected]

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>

##[email protected]

##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>

##[email protected]

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

Apache虚拟主机的配置

虚拟主机的配置

基于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:8080

DocumentRoot /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>

相关推荐