如何通过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 相关文章推荐
PHP获取网卡地址的代码
Apr 09 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
php URL跳转代码 减少外链
Jun 25 PHP
Session保存到数据库的php类分享
Oct 24 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
php获取随机数组列表的方法
Nov 13 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
php 中奖概率算法实现代码
Jan 25 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
php文件包含的几种方式总结
Sep 19 PHP
详解no input file specified 三种解决方法
Nov 29 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 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
php中通过curl smtp发送邮件
2012/06/05 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
详解python的四种内置数据结构
2019/03/19 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
python 装饰器重要在哪
2021/02/14 Python
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
法制报告会主持词
2014/04/02 职场文书
阅兵口号
2014/06/19 职场文书
公司转让协议书
2016/03/19 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python