收藏 分销(赏)

apache中在httpd.conf虚拟主机配置教程.doc

上传人:仙人****88 文档编号:11724149 上传时间:2025-08-09 格式:DOC 页数:6 大小:32.50KB 下载积分:10 金币
下载 相关 举报
apache中在httpd.conf虚拟主机配置教程.doc_第1页
第1页 / 共6页
apache中在httpd.conf虚拟主机配置教程.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
Httpd.conf虚拟主机配置教程 原创:朱品子 一、introduce httpd.conf是Apache的配置文件,Apache中的常见配置主要都是通过修改该文件来实现的,该文件更改后需要重启Apache服务使更改的配置生效(CLI下面:httpd.exe -k restart -n Apache2.2 )。下面是httpd.conf文件在安装后的默认设置,与Apache网络和系统相关的选项如下所示。 1.ServerRoot:设置Apache安装目录 俺的os是win2003 ServerRoot "d:/AppServ/Apache2.2" 该参数用于指定Apache软件安装的根目录,如果安装时不指定其他目录的话,则Apache默认就是安装在x:/AppServ/Apache2.2目录下。参数格式如下所示。 ServerRoot [目录的绝对路径] 2.Listen:设置Apache默认监听端口 如果你装了iis,80端口会冲突,系统会报错,因此你可以使用>1024的保留端口。 Listen 8080 该参数用于指定Apache所监听的端口,默认情况下Apache的监听端口为80,即WWW服务的默认端口。在服务器有多个IP地址的情况下,Listen参数还可以用于设置监听的IP地址。参数格式如下所示。 Listen [端口/IP地址:端口] 下面是一个示例。 #设置Apache服务监听IP192.168.1.111的80端口 Listen 192.168.1.111:80 3.使用ServerAdmin参数设置网站管理员的邮箱地址 ServerAdmin xiaoqumo@ 该参数用于指定Web管理员的邮箱地址,这个地址会出现在系统连接出错的时候,以便访问者能够及时通知Web管理员。参数格式如下所示。 ServerAdmin [邮箱地址] 4.DocumentRoot参数 该参数用于指定Web服务器上的文档存放的位置,在未配置任何虚拟主机或虚拟目录的情况下,用户通过http访问Web服务器,所有的输出资料文件均存放在这里。DocumentRoot参数的格式如下所示。 DocumentRoot [目录的绝对路径] 二、与Apache文件和目录权限相关的选项如下所示: 1.使用DocumentRoot参数设置网站默认根目录 LINUX下:DocumentRoot "/usr/local/apache2/htdocs" WINNT下:DocumentRoot "d:/AppServ/www" 2.使用Directory段设置根目录权限 注意“/”是表示根目录 <Directory /> Options FollowSymLinks ExecCGI Indexes AllowOverride None Order deny,allow Deny from all Satisfy all </Directory> 这个设置里面包含5大属性: u Options 可以设置: Ø All:用户可以在此目录中做任何事情。 Ø FollowSymLinks :服务器可以使用符号链接指向文件和目录 Ø ExecCGI:允许在此目录执行CGI程序。 Ø Indexes:服务器可生成此文件夹的目录列表。 Ø None:不允许访问此目录。 u AllowOverride根据设定的值决定是否读取.htaccess文件,来改变原来所设置的权限: 可以设置: Ø None:不读取.htaccess文件 Ø All:读取.htaccess文件,修改原来的访问权限。 u Order :用于指定allow 和deny的先后秩序。 u Allow|:设定允许访问apache服务器的主机 Ø Allow from all:允许所有主机的访问。 Ø Allow from 127.0.0.1:这是允许访问主机的ip。 u Deny:设定禁止访问apache服务器的主机 Ø Deny from all:禁止所有主机的访问。 Ø Deny from 192.168.0.1:这是允许访问主机的ip。 3.使用Directory段设置"d:/AppServ/www"目录权限 <Directory ""d:/AppServ/www""> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> 4.设置默认首页依次为index.html、index.php、index.htm <IfModule dir_module> DirectoryIndex index.html index.php index.htm </IfModule> 5.ht后缀文件的访问权限控制 <FilesMatch "^/.ht"> Order allow,deny Deny from all </FilesMatch> 6.使用Directory段设置d:/AppServ/www/cgi-bin目录权限 <Directory "d:/AppServ/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> DefaultType text/plain 三、虚拟主机 一个web server可以支持多个站点,apache在这个方面也不会落后。在apache里,使用<virtualhost>来配置标识的虚拟主机。 Apache支持两种类型的虚拟主机,一种是基于ip的一种是基于域名的。 1. NameVirtualHost: 设置一个虚拟主机,记住每个虚拟主机的名称都是唯一的。 格式:NameViryualHost [URL] 2. 基于域名的虚拟主机 假设你只有一个ip地址,如果你想支持多个站点,怎么办?如果你用过IIS,那么你会有使用主机头来对应站点的经验。那么apache同样也能这样设置,但是需要在httpd.conf里用记事本设置。 下面来看一个配置的例子:(我这里不使用80端口是由于我安装的iis占用了80) ServerName:sf.myproject:8080 Listen:8080 #以上是服务器默认的 #以下是自己配置的部分 NameVirtualHost *:8080 <VirtualHost *.8080> ServerName DocumentRoot "d:\develop\myproject" DirectoryIndex index.php < Directory> AllowOverride All Allow from all </ Directory> <VirtualHost> <VirtualHost *.8080> ServerName DocumentRoot "d:\develop\yourproject" DirectoryIndex index.php < Directory> AllowOverride All Allow from all </ Directory> <VirtualHost> VirtualHost参数必须和NameVirtualHost相一致。*.8080,是指对应运行于本服务器的所有ip地址(一般为多网卡服务器)。 本例中的documentroot都没有放在网站默认根目录,而放在自定义的文件夹中,这样的目的也是出于安全性考虑。 本例中在virtualhost中分别设置了两个serverName。这个就等同于iis中的主机头。当外部通过来访问本服务器web时,会自动分配到DocumentRoot为d:\develop\myproject这个虚拟主机,而通过来访问本服务器web时,会 自动分配到DocumentRoot为d:\develop\yourproject这个虚拟主机,而通过来访问本服务器web时,会自动分配到DocumentRoot为d:\develop\yourproject这个虚拟主机。当外部通过域名访问到本服务器时,首先会对应serverName,再决定访问哪个站点,如果都不对应,则访问第一个站点(第一个为默认站点)。 当然,由于我们的端口是8080,那么访问myproject 站点时,必须使用:8080/这个url才能访问,否则会访问到80端口。 虚拟主机的配置会导致我们的主服务器不能访问了,很多人都发现了。如果要想能够访问,你必须添加一台虚拟主机,配置与主服务器相同。如果你想让它成为默认虚拟主机的话,把它放在第一个。 当然,通过外部访问的url,需要在dns中设置,如果在internet上,需要向isp申请相应的域名,然后解析到本服务器。如果不想看见端口号,可以使用url转发。 有些本地开发环境下的用户,使用host文件解析一个域名到127.0.0.1,这里注意,ip后面不要带端口号哦。 3. 基于ip的虚拟主机 写到这里更正一下,这里说的基于ip实质是采用的一种基于端口的,由于很多用户的服务器都是租用的,那么基于多ip不是很现实,单ip多端口成为现实。 下面看个例子: Listen 8081 <virtualHost 192.168.0.1:8081> DocumentRoot "d:\develop\yourproject" DirectoryIndex index.php < Directory> AllowOverride All Allow from all </ Directory> </VirtualHost> Listen 8082 <virtualHost 192.168.0.1:8082> DocumentRoot "d:\develop\myproject" DirectoryIndex index.php < Directory> AllowOverride All Allow from all </ Directory> </VirtualHost> 这里很清楚了,当使用192.168.0.1:8081和使用192.168.0.1:8082将分别访问到yourproject站点和myproject站点。如果只有一个ip,80端口又无法使用,又无法将主机名称加入dns,或者开发环境,都适用这种方式。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服