欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何通过Apache在本地配置多个虚拟主机

程序员文章站 2022-10-31 14:38:35
如何使用 apache 在本地配置出多个虚拟主机呢?而且使用不同的“域名”来访问本地不同的站点呢?一般情况下,咱们都使用 localhost 来访问本机上的服务器,在我们的 c:/windows/sy...

如何使用 apache 在本地配置出多个虚拟主机呢?而且使用不同的“域名”来访问本地不同的站点呢?

一般情况下,咱们都使用 localhost 来访问本机上的服务器,在我们的 c:/windows/system32/drivers/etc/hosts 文件中默认有一个:

127.0.0.1 localhost

当我们在浏览器地址栏键入:

http://localhost

的时候,会显示出服务器根目录中的许多文件夹(若你的根目录不是只有一个站点的话),就像:

index of / 
 
  * bak/ 
  * b_discuz/ 
  * b_supesite/ 
  * b_ucenter/ 
  * b_uchome/ 
  * b_uchome_bak/ 
  * b_xspace/ 
  * discuz_x1/ 
  * javascript/ 
  * newuch/ 
  * php/ 
  * uchutf8/ 
  * zend framework_1.10.8/ 
  * zendphpweb20/ 
  * mycms/ 
  * phpmyadmin/ 
  * useradminmanager/

现在我想通过一个自定义的“域名”来访问我的根目录中的站点,譬如:

1,根目录中有一个 phpmyadmin/ 的文件夹(倒数第二个),它是一个网页版的数据库管理系统(肯定不会陌生的吧!),我想通过访问一个简单的:

http://dbmanager

来进入这个系统(而不用输入 localhost,再点击 phpmyadmin/ 才进入);

2,根目录中有一个 zendphpweb20/ 的文件夹(倒数第三个),它只是一个本地应用站点,我想通过访问:

http://phpweb20

来进入这个本地站点;

现在要干些什么呢?跟我来吧!看下面:

1> 修改系统的 hosts 文件:

打开之前说过的系统的 hosts 文件,来给我们的电脑添加两个“假的”dns 项,加入代码:

127.0.0.2 dbmanager
127.0.0.3 phpweb20

这样,我们的浏览器就会将 dbmanager 主机名解析为 127.0.0.2,将 phpweb20 主机名解析为 127.0.0.3。

2> 修改 apache 配置文件:

在我的本机内 apache 的主配置文件在:

d:/usr/local/apache2/conf/httpd.conf

说是修改 apache 的配置文件,其实只是添加了一些内容,因为不想修改 apache 的主配置文件,所以我们最好在各个站点写好自己的虚拟主机配置子文件,然后使用 include 指令将其包含到 apache 的主配置文件里。

其实在 apache 的主配置文件的最下方有虚拟主机的配置示例,只不过都被注释掉了:

# 基于名称的虚拟主机示例:
 
#<virtualhost 127.0.0.2:80>
 #  serveradmin admin@system
 #  documentroot d:\usr\webroot\webhosting1
 #  servername 127.0.0.2
 #  errorlog logs/dummy-host.example.com-error_log
 # customlog logs/dummy-host.example.com-access_log common
#</virtualhost>
 
#<virtualhost 127.0.0.3:80>
 #  serveradmin admin@system
 #  documentroot d:\usr\webroot\webhosting2
 #  servername 127.0.0.3
 #  errorlog logs/dummy-host.example.com-error_log
 # customlog logs/dummy-host.example.com-access_log common
#</virtualhost>
 
#<virtualhost 127.0.0.4:80>
 #  serveradmin admin@system
 #  documentroot d:\usr\webroot\webhosting3
 #  servername 127.0.0.4
 #  errorlog logs/dummy-host.example.com-error_log
 # customlog logs/dummy-host.example.com-access_log common
#</virtualhost>

在配置文件的最下方添加代码:

# 包含 dbmanager 虚拟主机配置文件
include d:/usr/webroot/phpmyadmin/httpd.conf
# 包含 phpweb20 虚拟主机配置文件
include d:/usr/webroot/zendphpweb20/httpd.conf

(我的 localhost 的根目录为 d:/usr/webroot/)

3> 创建各个虚拟主机的子配置文件:

创建 dbmanager 的配置文件:d:/usr/webroot/phpmyadmin/httpd.conf

#dbmanager 虚拟主机设置
<virtualhost 127.0.0.2:80>
  servername dbmanager
  documentroot d:/usr/webroot/phpmyadmin
 
  <directory d:/usr/webroot/phpmyadmin>
    allowoverride all
    options all
  </directory>
</virtualhost>

创建 phpweb20 的配置文件:d:/usr/webroot/zendphpweb20/httpd.conf

#phpweb20 虚拟主机设置
<virtualhost 127.0.0.3:80>
  servername phpweb20
  documentroot d:/usr/webroot/zendphpweb20/htdocs
 
  <directory d:/usr/webroot/zendphpweb20/htdocs>
    allowoverride all
    options all
  </directory>
   
  #修改 php 配置(可选)
  php_value include_path .;d:/usr/webroot/zendphpweb20/include;d:/usr/local/php5/pear
  php_value magic_quotes_gpc off
  php_value register_globals off
</virtualhost>

各个虚拟主机的配置就看应用站点的不同需要了,documentroot 为其根目录(php_value 是修改此站点的 php 运行参数,根据自己应用的需要来写,这样就不必修改 php 主配置文件)。

4> 重启 apache 服务:

这个就不多说了。

完毕!好了,在浏览器地址栏输入分别输入:

http://dbmanager
http://phpweb20

我们的目的达到了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。