2014-02-09 08:02:01
来 源
ITJS.CN
Apache
本文介绍Apache服务器配置多个网站,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。

示例1:

修改apache里的httpd.conf文件

下面代码提供参考,具体参数大家根据情况做改动

listen 8000

<VirtualHost 127.0.0.1:8000>

ServerName “127.0.0.1:8000″

DocumentRoot “D:AppServwwwyanor”

<Directory “D:AppServwwwyanor”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost 127.0.0.2:8000>

ServerName “127.0.0.2:8000″

DocumentRoot “D:AppServwwwfozoe”

<Directory “D:AppServwwwfozoe”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost 127.0.0.3:8000>

ServerName “127.0.0.3:8000″

DocumentRoot “D:AppServwwwfozoecn”

<Directory “D:AppServwwwfozoecn”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost 127.0.0.4:8000>

ServerName “127.0.0.4:8000″

DocumentRoot “D:AppServwwwjkmx”

<Directory “D:AppServwwwjkmx”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

实际上,上面对应了四个网站 分别用不同的IP访问,这样一来,在www文件夹里设定好子文件夹就可以,提高多网站开发的效率,一台apperv服务器里可以同时开发管理测试很多网站了。

示例2:

<VirtualHost 192.168.1.171> 

DocumentRoot "F:webwwwhhjjsy"   

ServerName 192.168.1.171               

</VirtualHost>

<VirtualHost 192.168.1.172> 

DocumentRoot "F:webwwwphpcms"   

ServerName 192.168.1.172              

</VirtualHost>

<VirtualHost 192.168.1.173> 

DocumentRoot "F:webwwwso"   

ServerName 192.168.1.173               

</VirtualHost>

<VirtualHost 192.168.1.174> 

DocumentRoot "F:webwwwtest"   

ServerName 192.168.1.174               

</VirtualHost>

<Directory "F:webwww">

 Options FollowSymLinks IncludesNOEXEC Indexes

 DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml

 AllowOverride None

 Order Allow, Deny

 Allow from all

</Directory>

二、主机头:

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web1

ServerName www.example1.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web2

ServerName www.example2.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web3

ServerName www.example3.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web4

ServerName www.example4.com

</VirtualHost>

<Directory "F:/Apache/wwwroot">

 Options FollowSymLinks IncludesNOEXEC Indexes

 DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml

 AllowOverride None

 Order Allow, Deny

 Allow from all

</Directory>

基于Apache在本地配置多个虚拟主机站点  

简单的说,打开httpd.conf 在最后加入如下内容:

Xml代码

<VirtualHost 127.0.0.2:80> 

DocumentRoot d:/AppServ/www2  

ServerName 127.0.0.2:80  

< irtualHost> 

<Directory "d:/AppServ/www2"> 

Options Indexes FollowSymLinks Multiviews  

AllowOverride All  

Order Allow,Deny  

Allow from all  

</Directory> 

<VirtualHost 127.0.0.2:80>

DocumentRoot d:/AppServ/www2

ServerName 127.0.0.2:80

< irtualHost>

<Directory "d:/AppServ/www2">

Options Indexes FollowSymLinks Multiviews

AllowOverride All

Order Allow,Deny

Allow from all

</Directory>

"d:/AppServ/www2" 为你的站点存放目录:重启apache2以后,你的虚拟主机就配置好了,以后就可以通过127.0.0.2,和127.0.0.3进入不同的站点了。

下面为详细说明分析:

在我们安装APACHE的时候一般默认的apache的配置是只有一个网站,这样切换起来很不方便。其实这个问题很好解决,就是把本机的 apache配置成为虚拟服务器。但是,网上大多数教程的是教用 apache如何配置基于域名的虚拟主机的,而在本机调试网站的时候,一般都是用本地ip(127.0.0.1 或 localhost)直接访问,没有用到域名。所以得把apache配置成为基于ip地址的虚拟主机。

首先,我们都知道,所有以127打头的ip地址都应该指向本机,并不只有127.0.0.1,这点大家可以试试。

这样一来,也就是说本机有足够多的ip地址供你来开设虚拟主机了。

废话少说,进入正式的配置工作,下面是apache的httpd.conf里相关配置部分( httpd.conf 位于 Apache2.2conf ):

1、Listen部分,必须直接指定端口,不指定ip地址,配置应写为:

Listen 80

2、不用像基于域名的虚拟主机那样写“NameVirtualHost”。

3、虚拟主机配置段:在httpd.conf 最后加上

Xml代码

<VirtualHost 127.0.0.2:80> 

DocumentRoot d:/AppServ/www2  

ServerName 127.0.0.2:80  

< irtualHost> 

<VirtualHost 127.0.0.3:80> 

DocumentRoot d:/AppServ/www3  

ServerName 127.0.0.3:80  

< irtualHost>... 

<VirtualHost 127.0.0.2:80>

DocumentRoot d:/AppServ/www2

ServerName 127.0.0.2:80

< irtualHost>

<VirtualHost 127.0.0.3:80>

DocumentRoot d:/AppServ/www3

ServerName 127.0.0.3:80

< irtualHost>...

4、然后相应的配置好各个目录属性,下面是一个目录属性的典型配置:

Xml代码

<Directory "d:/AppServ/www2"> 

Options Indexes FollowSymLinks Multiviews  

AllowOverride All  

Order Allow,Deny  

Allow from all  

</Directory> 

<Directory "d:/AppServ/www3"> 

Options Indexes FollowSymLinks Multiviews  

AllowOverride All  

Order Allow,Deny  

Allow from all  

</Directory> 

-----------------

例如你的主机 IP:192.168.1.8

而你有三个站点,域名 为:www.111.com ,www.222.com ,www.333.com

相应的网站 文件放在主机的 :web site111;D:website222;D:website333文件夹下

现在打开APACHE配置文件httpd.conf文件,设置不同的域名到不同的目录中:

NameVirtualHost 192.168.1.8

<VirtualHost 192.168.1.8>

DocumentRoot "D:website111"

ServerName www.111.com

</Virtualhost>

<VirtualHost 192.168.1.8>

DocumentRoot "D:website222"

ServerName www.222.com

</Virtualhost>

<VirtualHost 192.168.1.8>

DocumentRoot "D:website333"

ServerName www.333.com

</Virtualhost>

保存关闭文件,重启一下APACHE就可以了!

apache一机多站IP法

示例1:

修改apache里的httpd.conf文件

下面代码提供参考,具体参数大家根据情况做改动

listen 8000

<VirtualHost 127.0.0.1:8000>

ServerName “127.0.0.1:8000″

DocumentRoot “D:AppServwwwyanor”

<Directory “D:AppServwwwyanor”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost 127.0.0.2:8000>

ServerName “127.0.0.2:8000″

DocumentRoot “D:AppServwwwfozoe”

<Directory “D:AppServwwwfozoe”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost 127.0.0.3:8000>

ServerName “127.0.0.3:8000″

DocumentRoot “D:AppServwwwfozoecn”

<Directory “D:AppServwwwfozoecn”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost 127.0.0.4:8000>

ServerName “127.0.0.4:8000″

DocumentRoot “D:AppServwwwjkmx”

<Directory “D:AppServwwwjkmx”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

实际上,上面对应了四个网站 分别用不同的IP访问,这样一来,在www文件夹里设定好子文件夹就可以,提高多网站开发的效率,一台apperv服务器里可以同时开发管理测试很多网站了。

示例2:

<VirtualHost 192.168.1.171> 

DocumentRoot "F:webwwwhhjjsy"   

ServerName 192.168.1.171               

</VirtualHost>

<VirtualHost 192.168.1.172> 

DocumentRoot "F:webwwwphpcms"   

ServerName 192.168.1.172              

</VirtualHost>

<VirtualHost 192.168.1.173> 

DocumentRoot "F:webwwwso"   

ServerName 192.168.1.173               

</VirtualHost>

<VirtualHost 192.168.1.174> 

DocumentRoot "F:webwwwtest"   

ServerName 192.168.1.174               

</VirtualHost>

<Directory "F:webwww">

 Options FollowSymLinks IncludesNOEXEC Indexes

 DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml

 AllowOverride None

 Order Allow, Deny

 Allow from all

</Directory>

二、主机头:

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web1

ServerName www.example1.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web2

ServerName www.example2.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web3

ServerName www.example3.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot F:/Apache/wwwroot/web4

ServerName www.example4.com

</VirtualHost>

<Directory "F:/Apache/wwwroot">

 Options FollowSymLinks IncludesNOEXEC Indexes

 DirectoryIndex index.html index.htm default.htm index.php default.php index.cgi default.cgi index.pl default.pl index.shtml

 AllowOverride None

 Order Allow, Deny

 Allow from all

</Directory>

基于Apache在本地配置多个虚拟主机站点  

简单的说,打开httpd.conf 在最后加入如下内容:

Xml代码

<VirtualHost 127.0.0.2:80> 

DocumentRoot d:/AppServ/www2  

ServerName 127.0.0.2:80  

< irtualHost> 

<Directory "d:/AppServ/www2"> 

Options Indexes FollowSymLinks Multiviews  

AllowOverride All  

Order Allow,Deny  

Allow from all  

</Directory> 

<VirtualHost 127.0.0.2:80>

DocumentRoot d:/AppServ/www2

ServerName 127.0.0.2:80

< irtualHost>

<Directory "d:/AppServ/www2">

Options Indexes FollowSymLinks Multiviews

AllowOverride All

Order Allow,Deny

Allow from all

</Directory>

"d:/AppServ/www2" 为你的站点存放目录:重启apache2以后,你的虚拟主机就配置好了,以后就可以通过127.0.0.2,和127.0.0.3进入不同的站点了。

下面为详细说明分析:

在我们安装APACHE的时候一般默认的apache的配置是只有一个网站,这样切换起来很不方便。其实这个问题很好解决,就是把本机的 apache配置成为虚拟服务器。但是,网上大多数教程的是教用 apache如何配置基于域名的虚拟主机的,而在本机调试网站的时候,一般都是用本地ip(127.0.0.1 或 localhost)直接访问,没有用到域名。所以得把apache配置成为基于ip地址的虚拟主机。

首先,我们都知道,所有以127打头的ip地址都应该指向本机,并不只有127.0.0.1,这点大家可以试试。

这样一来,也就是说本机有足够多的ip地址供你来开设虚拟主机了。

废话少说,进入正式的配置工作,下面是apache的httpd.conf里相关配置部分( httpd.conf 位于 Apache2.2conf ):

1、Listen部分,必须直接指定端口,不指定ip地址,配置应写为:

Listen 80

2、不用像基于域名的虚拟主机那样写“NameVirtualHost”。

3、虚拟主机配置段:在httpd.conf 最后加上

Xml代码

<VirtualHost 127.0.0.2:80> 

DocumentRoot d:/AppServ/www2  

ServerName 127.0.0.2:80  

< irtualHost> 

<VirtualHost 127.0.0.3:80> 

DocumentRoot d:/AppServ/www3  

ServerName 127.0.0.3:80  

< irtualHost>... 

<VirtualHost 127.0.0.2:80>

DocumentRoot d:/AppServ/www2

ServerName 127.0.0.2:80

< irtualHost>

<VirtualHost 127.0.0.3:80>

DocumentRoot d:/AppServ/www3

ServerName 127.0.0.3:80

< irtualHost>...

4、然后相应的配置好各个目录属性,下面是一个目录属性的典型配置:

Xml代码

<Directory "d:/AppServ/www2"> 

Options Indexes FollowSymLinks Multiviews  

AllowOverride All  

Order Allow,Deny  

Allow from all  

</Directory> 

<Directory "d:/AppServ/www3"> 

Options Indexes FollowSymLinks Multiviews  

AllowOverride All  

Order Allow,Deny  

Allow from all  

</Directory> 

-----------------

例如你的主机 IP:192.168.1.8

而你有三个站点,域名 为:www.111.com ,www.222.com ,www.333.com

相应的网站 文件放在主机的 :web site111;D:website222;D:website333文件夹下

现在打开APACHE配置文件httpd.conf文件,设置不同的域名到不同的目录中:

NameVirtualHost 192.168.1.8

<VirtualHost 192.168.1.8>

DocumentRoot "D:website111"

ServerName www.111.com

</Virtualhost>

<VirtualHost 192.168.1.8>

DocumentRoot "D:website222"

ServerName www.222.com

</Virtualhost>

<VirtualHost 192.168.1.8>

DocumentRoot "D:website333"

ServerName www.333.com

</Virtualhost>

保存关闭文件,重启一下APACHE就可以了!

Apache配置多个站点(非虚拟目录)

Apache配置多个站点;

例如,现在您有一站点:

http://localhost/

想添加一个端口运行另外一个站点:

http://localhost:8080/  

第一步: 新建一个配置文件

复制 httpd.conf 另存为 hooyes.conf  (当然您可以起一个比这个更好听一点的名字)

第二步: 修改配置文件

打开 hooyes.conf 文件

将其中的端口设置: Listen:8080

将网站目录设置:

<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->DocumentRoot  " D:/Tweb/hooyes/webroot "      (D:/Tweb/hooyes/webroot 为您的第二站点的目录)

#

# This should be changed to whatever you set DocumentRoot to.

#

<Directory  " D:/Tweb/hooyes/webroot " >        (这个地方也要修改)

第三步:新建一个服务

<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->httpd.exe  - k install  - n  " 服务名 "   -f   " X:安装目录apache2.2confhooyes.conf "

# 示例:

# 如果Windows 环境下 运行 cmd 到 Apache 安装目录的Bin 目录下: 

# 执行:  

httpd.exe  - k install  - n  " Apache_hooyes "   -f   " C:apache2.2confhooyes.conf "

第四步:

OK了,你可以测试您的站点是否运行正常了;

附其它操作: 

<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --># 其他的命令:

# 将Apache安装为服务:

httpd  - k install

# 指定服务的名称,当你在同一机器上安装多个Apache服务时,你必须为它们指定不同的名字。

httpd  - k install  - n  " 服务名 "  为不同名称的服务使用不同的配置文件,则安装时需要指定配置文件:httpd  - k install  - n  " 服务名 "   -f   " c:filesmy.conf "  

# 如果你使用的是第一个命令,也就是除 -k install 外没有其它命令行参数,那么被安装的服务名称将是:Apache2 ,配置文件将使用confhttpd.conf 。

移除一个Apache服务:

httpd  - k uninstall 

# 使用下述命令移除特定名称的Apache服务:

httpd  - k uninstall  - n  " 服务名 "  

# 通常,启动、重启、关闭Apache服务的方法是使用Apache Service Monitor工具,另外也可以使用控制#台命令:NET START Apache2 和 NET STOP Apache2 如果是Windows还可通过Windows服务控制面板。

# 在启动Apache服务之前,你应当使用下面的命令检查一下配置文件的正确性:httpd -n "服务名" -t 你#可以通过命令行开关来控制Apache服务。

# 要启动一个已经安装的Apache服务,可以使用:

httpd  - k start 

# 要停止一个已经安装的Apache服务,可以使用:

httpd  - k stop 

# 或

httpd  - k shutdown 

# 要重启一个运行中的Apache服务,强制它重新读取配置文件,可以使用:

httpd  - k restart

=========================================================================

apache配置多个站点

1、下载 Apache for Windows

关于Apache最新版本的有关信息可以在http://httpd.apache.org/download.cgi 上找到。你应该下载带有.msi扩展名的Apache for Windows版本。 这是一个单一的Microsoft Installer文件,包含了Apache ,可以立即安装并运行。

2、安装 Apache for Windows

运行已下载的上述Apache .msi文件。安装程序会要求提供下列信息:

Network Domain 你的服务器已经或者将要注册的DNS域名。比如你的服务器的全称DNS域名是server.mydomain.net ,你应当在这里输入:mydomain.net ,本地的话设置为localhost

Server Name 你的服务器的全称DNS域名,如上情况你应当在这里输入:server.mydomain.net,本地的话设置为localhost

Administrator's Email Address 服务器管理员的email地址。这个地址将会在默认的出错页面上显示给客户端。

For whom to install Apache 如果你希望Apache在80端口监听,并被安装为服务(即使无人登陆,Apache仍将运行),就选择"for All Users, on Port 80, as a Service - Recommended"; 如果你希望将Apache安装为个人试验使用,或者已经有一个运行于80端口的WWW服务器,就选择"only for the Current User, on Port 8080, when started Manually"。

The installation type 选择Typical会安装除开发模块需要使用的源码和库以外的所有内容。选择Custom可以自定义安装哪些项目。完整安装大约需要13MB磁盘空间,这其中并不包含你的网站文件所用空间。

3、配置Apache及实现多站点

安装好Apache以后,可以在浏览器中输入http://localhost 测试,如果配置正常会显示It's Working.

更改第一个站点的根目录: 在文件Apache2.2confhttpd.conf中查找 DocumentRoot 属性,将后面的路径改为你的主站点的路径,如:D:wwwweb1

为第二个Apache服务建立配置文件: 复制并重命名httpd.conf为web2.conf(举个例子而已,也可以叫my.conf等等),修改web2.conf中的Listen 8080 (原来为80)、 ServerName localhost:8080 (原来为80)、 DocumentRoot "D:/www/web2" (原来为web1)

添加第二个Apache服务: Apache安装目录的

bin

子目录下,使用如下命令将Apache安装为Windows NT服务:httpd.exe -k install -n "服务名" -f "d:apache2.2confweb2.conf"

其他的命令:

将Apache安装为Windows NT服务:

httpd -k install

指定服务的名称,当你在同一机器上安装多个Apache服务时,你必须为它们指定不同的名字。

httpd -k install -n "服务名"

为不同名称的服务使用不同的配置文件,则安装时需要指定配置文件:

httpd -k install -n "服务名" -f "c:filesmy.conf"

如果你使用的是第一个命令,也就是除 -k install 外没有其它命令行参数,那么被安装的服务名称将是:Apache2 ,配置文件将使用confhttpd.conf 。

移除一个Apache服务:

httpd -k uninstall

使用下述命令移除特定名称的Apache服务:

httpd -k uninstall -n "服务名"

通常,启动、重启、关闭Apache服务的方法是使用Apache Service Monitor工具,另外也可以使用控制台命令:NET START Apache2 和 NET STOP Apache2 或者通过Windows服务控制面板。在启动Apache服务之前,你应当使用下面的命令检查一下配置文件的正确性:

httpd -n "服务名" -t

你可以通过命令行开关来控制Apache服务。要启动一个已经安装的Apache服务,可以使用:

httpd -k start

要停止一个已经安装的Apache服务,可以使用:

httpd -k stop

httpd -k shutdown

要重启一个运行中的Apache服务,强制它重新读取配置文件,可以使用:

httpd -k restart

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。