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

如何使用 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

我们的目的达到了!

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

(0)

相关推荐

  • 使用 Apache Web 服务器配置两个或多个站点的方法

    如何在流行而强大的 Apache Web 服务器上托管两个或多个站点. 在我的上一篇文章中,我解释了如何为单个站点配置 Apache Web 服务器,事实证明这很容易.在这篇文章中,我将向你展示如何使用单个 Apache 实例来服务多个站点. 注意:我写这篇文章的环境是 Fedora 27 虚拟机,配置了 Apache 2.4.29.如果你用另一个发行版或不同的 Fedora 版本,那么你使用的命令以及配置文件的位置和内容可能会有所不同. 正如我之前的文章中提到的,Apache 的所有配置文件都

  • Apache,wsgi,django 程序部署配置方法详解

    本文实例讲述了Apache,wsgi,django 程序部署配置方法.分享给大家供大家参考,具体如下: 前面写过一篇文章,ngixn,uwsgi,django,python 环境配置,有兴趣的朋友可以参考 nginx,django部署 后来有人在QQ上问我,用Apache 好部署吗?我当时只在windows下用 APACHE2.3,django1.4,wsgi 部署过,还没有在 linux 下部署.前几天有时间,我在 centos 上测试部署了一下.也不难.唯一的差别是,在windows 下有已

  • Apache下ModSecurity的安装启用与配置

    ModSecurity 是一个强大的包过滤工具,将检查每一个进入web服务器的包.它将根据内部规则,比较每一个包,并且确定是否需要禁止这个包或继续发送给web服务器. 1.下载 modsecurity-apache: http://sourceforge.net/projects/mod-security/files/modsecurity-apache/ modsecurity-crs: http://sourceforge.net/projects/mod-security/files/mo

  • Windows下Apache+Tomcat7负载均衡配置方法详解

    准备工作 Windows Server 2008 R2 Enterprise(2.40GH,8GB,64Bit,192.168.10.212) 2台Ubuntu 10.04.4(192.168.10.98,192.168.10.137) JDK1.7.80 Tomcat7.0.68 Apache2.4.4 1.安装Apache2.4.4 安装过程中没什么注意事项,一直Next就行了.安装完成后默认开启Apache服务,可以在浏览器上输入localhost或者127.0.0.1,这时候会出现It

  • win10 apache配置虚拟主机后localhost无法使用的解决方法

    win10系统配置虚拟主机 1.用记事本或Sublime Text打开httpd.conf ctrl + f 搜索httpd-vhosts.conf 将 #Include conf/extra/httpd-vhosts.conf 的#号去掉保存 2.打开extra/httpd-vhosts.conf 添加如下内容: <VirtualHost *:80> ServerAdmin webmaster@youremail.com DocumentRoot "E:/your_web_root

  • 基于Linux搭建Apache网站服务配置详解

    Apache作为一款开源软件,是广泛应用的web应用之一,Apache有两个主要版本1.X和2.X,一般我们使用2.X版本,比起1.X版本它支持很多新的功能,下载Apache源码包的地址为:https://httpd.apache.org ,下载到源码包后开始准备安装: 1.为避免发生端口冲突,程序冲突等问题,如果有rpm方式安装的httpd服务,建议将其卸载. 2.挂载系统镜像,切换至系统盘中的Packages目录,安装相关依赖包(注意,最好一个一个的依次安装,因为如果有些安装包已经安装了,一

  • 阿里云服务器apache配置SSL证书成功开启Https(记录趟过的各种坑)

    环境: 阿里云云服务器    Windows Server 2008 标准版 SP2 中文版(趁1212优惠买的一年的水货配置) 阿里云购买的域名(已备案.已解析) 服务器:phpstudy:php5.4.45+Apache(因为是phpstudy集成的,所以没找到apache的版本,我感觉应该是2.4.8之前的版本) SSL证书 (配置过程中,我申请了2个不同机构的证书,第一个GG了,是在   https://www.trustasia.com/   申请的1年免费证书.成功的是用的第二个,在

  • CentOS 7中 Apache Web 服务器安装配置教程

    学习如何在CentOS 7 中的 Apache 上托管你自己的网站,这是一个可靠.流行且易于配置的 Web 服务器. 我托管自己的网站已经有很多年了.自从 20 多年前从 OS/2 切换到 Linux 以来,我一直将 Apache 作为我的服务器软件.Apache 是可靠.流行的,且基本的安装配置也很容易.对于更复杂的设置(比如多个网站)也并不是那么困难. Apache Web 服务器的安装和配置必须以 root 身份执行. 防火墙的配置也需要以 root 身份执行. 使用浏览器查看安装配置的结

  • 详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势

    首先看一下阿里云官方的教程: 文件说明: 1. 证书文件xxxxxx.pem,包含两段内容,请不要删除任何一段内容. 2. 如果是证书系统创建的CSR,还包含:证书私钥文件xxxxxxxx.key.证书公钥文件public.pem.证书链文件chain.pem. ( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中.如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为xxxxxxxx.key: ( 2 ) 打开 apac

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

    如何使用 Apache 在本地配置出多个虚拟主机呢?而且使用不同的"域名"来访问本地不同的站点呢? 一般情况下,咱们都使用 localhost 来访问本机上的服务器,在我们的 C:/WINDOWS/system32/drivers/etc/hosts 文件中默认有一个: 127.0.0.1 localhost 当我们在浏览器地址栏键入: http://localhost 的时候,会显示出服务器根目录中的许多文件夹(若你的根目录不是只有一个站点的话),就像: Index of / * B

  • Apache实现本地建立泛域名虚拟主机的方法

    本文讲述了Apache实现本地建立泛域名虚拟主机的方法.分享给大家供大家参考,具体如下: 在本地建立泛域名虚拟主机,可以修改Apache的安装目录下的conf/httpd.conf,如下: <VirtualHost *:80> ServerName auciou.com ServerAlias *.auciou.com DocumentRoot F:/site/auciou </VirtualHost> 重启Apache,就可以在本地同时使用auciou.com和xxx.aucio

  • nginx配置多个虚拟主机vhost的方法示例

    在nginx下配置虚拟主机vhost非常方便.主要在nginx的配置文件nginx.conf中添加一个server即可 比如我想配置两个虚拟主机,通过域名linux.com和linux2.com访问,分别对应的目录是/usr/htdocs/linux 和/usr/htdocs/linux2 (这个目录下是放你开发项目文件哦) 因为我安装的本地虚拟机,所以我先在hosts文件中添加两个重定向: 192.168.20.250 linux.com //192.168.20.250是我虚拟机的ip,用的

  • apache虚拟主机的配置指南

    一.检查apache虚拟主机模块 apache要配置虚拟主机,就需要先查看apache是否编译vhost_alias_module模块.当然apache默认是已经编译该模块的,我们可以通过以下命令查看是否已经编译模块,如下: /usr/local/apache2/bin/apachectl -M 二.开启apache虚拟主机功能 要开启apache虚拟主机功能,我们需要修改apache配置文件http.conf.打开apache的安装目录,找到httpd.conf文件,去掉Include con

  • XAMPP下使用顶级域名绑定虚拟主机的配置方法和示例

    有时候你需要一些顶级域名访问方式来访问你本地的项目,这时候就需要配置虚拟主机,给你的目录绑定一个域名,实现多域名绑定访问.(本地的话可以通过修改 hosts 文件随便绑定什么域名比如 www.a.com 或者 localdemo). 现在假定你有两个目录,一个存在于 /xampp/htdocs/a,另一个存在于 /xampp/htdocs/b . 现在你想要在本地测试的时候访问 www.a.com 对应的目录是 /xampp/htdocs/a ,访问 www.b.com 对应的目录是 /xamp

  • CentOS7配置httpd虚拟主机教程

    本实验旨在CentOS7系统中,httpd-2.4配置两台虚拟主机,主要有以下要求: (1) 提供两个基于名称的虚拟主机: www1.stuX.com,页面文件目录为/web/vhosts/www1:错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log: www2.stuX.com,页面文件目录为/web/vhosts/www2:错误日志为/var/log/httpd/www2/error_log,访问日志为

  • 分享apache http服务器设置虚拟主机的方法

    在apache http服务器上,设置虚拟主机(virtual host)的方法如下 打开apache 安装目录下面的conf/httpd.conf,加入下面两段 复制代码 代码如下: <VirtualHost *:80> ServerName fuwu.jb51.net ServerAlias fuwu.jb51.net fuwu.jb51.net DocumentRoot /fuwu JKMount /* ajp13 –如果你已经做好mod_jk的绑定,可以写上上面这行,这样可以完成一个虚

  • Apache Thrift环境配置

    安装Thrift的官方文档地址: http://thrift.apache.org/docs/install/ 当我看到windows安装需要Cygwin或MinGW时,我就直接放弃在windows中配置的想法了,直接打开虚拟机用CentOS进行安装,使用一堆命令安装毕竟比windows方便. CentOS安装Thrift 官方文档地址: http://thrift.apache.org/docs/install/centos 基本上按照官方的操作,可以一直进行到最后一组命令,就是下面这个地方:

  • apache服务器全局配置详解(全)

    Apache服务器全局配置之服务器标识配置篇 服务器标识相关指令:ServerNameServerAdminServerSignatureServerTokensUseCanonicalNameUseCanonicalPhysicalPort ServerAdmin和ServerTokens指令控制有关服务器的哪些信息将出现在服务器生成的文档中(如错误消息).ServerTokens指令设置服务器HTTP响应头字段的值.ServerName.UseCanonicalName. UseCanoni

  • 改变Apache端口等配置修改方法

      如何改变Apache端口:找到Apache安装目录下conf目录下的httpd.conf文件.打开它,找到"Listen",紧接着Listen的数字就是端口号,默认状态下为"Listen 80".在之前的PHP专题中提到过关于在安装配置Apache时会遇到端口与IIS HTTP端口冲突的问题,因为IIS HTTP端口默认也为80.那么我们就可以在这里改变Apache的端口,从而避免冲突,比如可以改成:Listen 8011.改好之后别忘重起Apache服务使得配

随机推荐