如何通过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树的代码,可以嵌套任意层
Oct 09 PHP
PHP中上传大体积文件时需要的设置
Oct 09 PHP
一个程序下载的管理程序(四)
Oct 09 PHP
PHP array 的加法操作代码
Jul 24 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
递归实现php数组转xml的代码分享
May 14 PHP
详解PHP中的状态模式编程
Aug 11 PHP
php如何实现只替换一次或N次
Oct 29 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 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 管理系统程序中的后门
2009/08/05 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP合并静态文件详解
2014/11/14 PHP
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
Django中create和save方法的不同
2019/08/13 Python
浅析python中while循环和for循环
2019/11/19 Python
python实现超市商品销售管理系统
2019/11/22 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
基于python实现地址和经纬度转换
2020/05/19 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
医院信息公开实施方案
2014/05/09 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
学生安全责任协议书
2016/03/22 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python