如何通过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 设计模式之 工厂模式
Dec 19 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
php的数组与字符串的转换函数整理汇总
Jul 18 PHP
php生成N个不重复的随机数实例
Nov 12 PHP
smarty获得当前url的方法分享
Feb 14 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
PHP实现git部署的方法教程
Dec 19 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 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解决约瑟夫环示例
2014/04/09 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
菜单效果
2006/10/14 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
python 性能优化方法小结
2017/03/31 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
Python命令行click参数用法解析
2019/12/19 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
Django如何批量创建Model
2020/09/01 Python
Django跨域请求原理及实现代码
2020/11/14 Python
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
C语言中break与continue的区别
2012/07/12 面试题
应聘文员自荐信范文
2014/03/11 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
婚礼新人答谢词
2015/01/04 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
2015年手术室工作总结
2015/05/11 职场文书
基石观后感
2015/06/12 职场文书
尊师重教主题班会
2015/08/14 职场文书
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android
python读取mat文件生成h5文件的实现
2022/07/15 Python