日期:2014-05-16  浏览次数:20947 次

apache php配置 虚拟目录 和 虚拟主机 多域名配置 原理解析

  1. 虚拟目录配置:

就是说,我们放项目放在D盘,F盘,而不是默认的www文件夹下也可以访问。比如这里,我在

D:/PHP/work 

放入的项目文件。

在httpd.conf加入: 

(位置一般是在 </IfMoudule>这个标签下面)

#判断是否存在dir_module 这个模块
<IfModule dir_module>
    #设置欢迎界面
	DirectoryIndex index.php index.html index.htm
	#配置别名,就是浏览器访问时用的。 localhost/ws
	Alias  /ws "D:/PHP/work"
	<Directory "D:/PHP/work">
	#权限,只针对当前的目录而言
	Order allow,deny
	#允许所有人访问
	Allow from all
	</Directory>
</IfModule>

重启apache

http://localhost/ws  就可以访问了。


2. 配置虚拟主机。


1: 还是httpd.conf这个文件。搜索“vhosts”

把include前的就#删掉。

include就是把那个文件包含进来。

2: 编辑 apache2.2.22\conf\extra\httpd-vhosts.conf.

在最下面添加:

<VirtualHost 127.0.0.1:80>
	#你的网站目录
    DocumentRoot "D:/PHP/work"
	#你网站的域名
    ServerName www.gaotong2055.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
	#权限设置
	Order allow,deny
	Allow from all
</VirtualHost>



3: 修改windows  hosts文件

首先,我们要明白为什么访问localhost就可以访问到我们的apache主页。

解析域名的时候,首先是从本地的hosts文件开始的。

如果查不到,才会去DNS服务器查询(这个就不多说了)。

如果你在这里面写一行:127.0.0.1     www.baidu.com 

百度你是肯定上不了。因为访问的是你自己的机器。

hosts 就是一个映射(域名和IP的对应,localhost也可以说是一个域名) localhost  ->  127.0.0.1

找到C:\WINDOWS\system32\drivers\etc\hosts ,修改如下

不多解释,这就是为什么计算机认识localhost的原因。

127.0.0.1       localhost
127.0.0.1       www.gaotong2055.com

4、最后别忘了修改我们的DocumentRoot

还是httpd.conf   搜索:“DocumentRoot”  注释掉,修改为:

#DocumentRoot "c:/wamp/www/"
DocumentRoot "D:/PHP/work"

现在输入:

www.gaotong2055.com , 就可以访问我们的网站了


PS:当然了,这个方法只适合自娱自乐了,只有在自己的机器上可以用www.gaotong2055.com来访问。

因为我们并没有注册域名什么的。 说白了,和用localhost访问是一样的。


3. 多域名配置。

就是一个主机IP , 有多个域名,每个域名要对应不同网站(注意:不是同一个网站)。

比如,我想在添加一个域名: www.gaotong.com  访问  

D:/PHP/work2

这个项目。


方法1: 通过端口区分。

原理就是很据端口区分,apache是可以监听多端口的。这个方法就是在域名配置里面写个其它的端口。

方法2: 使用*配符 配置httpd-vhosts.conf

把原来的<VirtualHost 127.0.0.1:80> 改为 <VirtualHost *:80>就可以了。

#域名1
<VirtualHost *:80>
	#你的网站目录
    DocumentRoot "D:/PHP/work"
	#你网站的域名
    ServerName www.gaotong2055.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
	Order allow,deny
	Allow from all
</VirtualHost>

#域名2
<VirtualHost *:80>
	#你的网站目录
    DocumentRoot "D:/PHP/work2"
	#你网站的域名
    ServerName www.gaotong.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
	Order allow,deny
	Allow from all
</VirtualHost>