怎么在Apache中配置一个虚拟域名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在Apache中配置一个虚拟域名相关的知识,希望对你有一定的参考价值。
现在的apache差不多都是2.0以上的了,修改httpd.conf文件中的 LoadModule vhost_alias_module modules/mod_vhost_alias.so 的这行把 # 号去掉 ,同样 Include conf/extra/httpd-vhosts.conf 这行也把 # 号去掉 。接下来 ,修改 此目录下extra 文件夹中 的 httpd-vhosts.conf 添加内容 如下 :
<VirtualHost *:80>
DocumentRoot "D:/wwwroot/my.domain.cn/company"
ServerName *.b2b.domain.cn
</VirtualHost>
这个是泛解析 的
<VirtualHost *:80>
DocumentRoot "D:/wwwroot/my.domain2.cn"
ServerName www.domain2.cn
</VirtualHost> 参考技术A 在apache的安装目录中会有一个site-available
一般有一个default的文件
1、cp default xxsite
2、编辑xxsite文件,修改servername和documentroot 等参数
3、a2site xxsite
4、重启apache
一般就可以了 参考技术B 一般是直接到控制面板中绑定域名的。
apache中虚拟主机的配置
一、两种方式:基于域名的虚拟主机和基于IP地址的的虚拟主机 (这里基于前者)
二、作用:实现在同一个web服务器下,同时运行很多个站点(项目)
三、虚拟主机的配置
1、在核心配置文件中加载虚拟主机配置文件
Apache中,默认的提供了一个专门配置虚拟主机的配置文件 conf/extra/httpd-vhosts.conf,但是Apache在启动的时候只会读取核心配置文件conf/httpd.conf。因此,需要开启它:在httpd.conf中,找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符"#"。
2、在虚拟主机的配置文件中创建虚拟主机
<VirtualHost *:80>
ServerName //服务器名(域名) 例:www.itcast.com
DocumentRoot //文档根目录 例:"h:/jiuyeban/homepage"
</VirtualHost>
3、配置浏览器端的域名解析
更改本地的hosts文件,将域名与IP地址对应起来。hosts文件路径为:C:\Windows\System32\drivers\etc\hosts,或者在运行里面输入:drivers,再进入etc也能找到hosts文件。
注意:如果配置了虚拟主机,那么原来默认的文档根目录就发生了改变,被第一个虚拟主机所覆盖,如果不想被改变,要么修改要么重新再配置一个主机。
四、目录访问权限
1、我们在访问某一个目录的时候,可能有三种情况:
第一种:直接访问某个默认的页面;
第二种:展示文件列表;
第三种:Forbidden
2、在Apache中,默认是deny from all,如果要开放某一个目录,需要单独进行配置。
<Directory “目录”>
Allow from all
DirectoryIndex index.html index.php default.php //配置索引页(设置默认首页)
Options Indexes //允许展示列表(设置默认首页无法显示时,是否允许列出目录结构)
</Directory >
为了方便管理,一般的做法是将该配置指令放和虚拟主机放在一起。
五、分散式配置文件
1、分散到apache各个目录的配置文件,只针对该目录以及该目录的子目录有效。因为有些东西不希望用户能直接访问到,则单独设置权限。
该分布式配置文件的名字:.htaccess
2、.htaccess文件的特点:在此配置文件中对apache的配置不需要重新启动Apachc服务。
主要作用:域名重定向、防盗链、自定义错误页面。
.htaccess文件的优先级最高,可以书写任何主机相关的配置
3、在主配置文件(虚拟主机httpd-vhosts.conf)中,规定哪个目录可以使用分布式配置文件
在对应的<Directory "目录"></Directory>中,使用Allowoverride设置是否开启外部的配置文件(.htaccess),all或者none
4、其他设置
Order //设置当前目录的访问权限
Order allow , deny //如果没有明确的允许项则全部拒绝
Order deny , allow //如果没有明确的拒绝项则全部允许
在Apache中,默认是deny from all,如果要开放某一个目录,需要单独进行配置。
以上是关于怎么在Apache中配置一个虚拟域名的主要内容,如果未能解决你的问题,请参考以下文章