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


Posted in PHP onJuly 29, 2020

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

我们的目的达到了!

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

PHP 相关文章推荐
Zend framework处理一个http请求的流程分析
Feb 08 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
详解php的socket通信
Aug 11 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
php 多文件上传的实现实例
Oct 23 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 PHP
php分页查询的简单实现代码
Mar 14 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
PHP网页缓存技术优点及代码实例
Jul 29 #PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 #PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 #PHP
关于PHP中interface的用处详解
Jul 26 #PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 #PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 #PHP
php实现商城购物车的思路和源码分析
Jul 23 #PHP
You might like
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
网上抓的一个特效
2007/05/11 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
如何运行Python程序的方法
2013/04/21 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Python中单例模式总结
2018/02/20 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
详解django.contirb.auth-认证
2018/07/16 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
python pycharm的安装及其使用
2019/10/11 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
教育局长自荐信范文
2013/12/22 职场文书
优秀大学生职业生涯规划书
2014/02/27 职场文书
课内比教学心得体会
2014/09/09 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
MySQL优化及索引解析
2022/03/17 MySQL