如何通过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 相关文章推荐
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
php实现mysql封装类示例
May 07 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
PHP中使用Memache作为进程锁的操作类分享
Mar 30 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
php简单截取字符串代码示例
Oct 19 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
使用PHP开发留言板功能
Nov 19 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 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/04/21 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
通过JS判断网页是否为手机打开
2020/10/28 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Python map和reduce函数用法示例
2015/02/26 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
自我评价正确写法范文
2013/12/10 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
求职自我评价范文
2015/03/09 职场文书
虎兄虎弟观后感
2015/06/12 职场文书