文档章节

http://www.y-liang.cn/post-50.html

zhonghz
 zhonghz
发布于 2016/04/12 09:37
字数 1415
阅读 43
收藏 0
点赞 1
评论 0

一、工具/原料

1.centos7操作系统

2.apache2.4.16

3.MySQL5.6

4.PHP5.6


二、方法/步骤

1.我们是要将/web/www/和/web/bbs目录作为我们的虚拟主机目录,就是说我们以后开发的项目都分别放在这两个目录下,所以我们要新建这两个目录。

2016-01-19_232342.png

2016-01-19_232700.png

2016-01-19_233722.png

2.首先编辑apache的配置文件httpd.conf(我之前把apache配置文件安装在/usr/local/apache2/etc):vim /usr/local/apache2/etc/httpd.conf

2016-01-19_221423.png


3.找到#Include etc//extra/httpd-vhosts.conf这一行(大概在464行),将前面的注释符“#”去掉,保存并且退出。

解释一下这句的意思:这句的意思是把Apache主目录(即apache安装目录)/usr/local/apache2/etc/extra/httpd-vhosts.conf这个文件引入进来,httpd-vhosts.conf这个文件正是虚拟主机的配置文件。

2016-01-19_222053.png

2016-01-19_222509.png


4.编辑虚拟主机配置文件httpd-vhosts.conf

2016-01-19_223258.png


5.看到配置文件,它里面也有已经有两个例子了,我们按照它的案例照葫芦画瓢来配置就行了。

解释一下每个选项的意思:

<VirtualHost *:80>:主机名称,为ip地址,如:192.168.0.21:80

ServerAdmin webmaster@dummy-host.example.com:邮箱地址

DocumentRoot "/usr/local/apache2//docs/dummy-host.example.com":网站跟目录,就相当于在windows下的我们安装wampserver时的www目录

ServerName dummy-host.example.com:这里是我们的域名,比如:www.y-liang.cn

ServerAlias www.dummy-host.example.com:这里是网站虚拟目录/服务器别名(关于虚拟目录,我们在后续会更新这个知识点,还请关注)

ErrorLog "logs/dummy-host.example.com-error_log":错误日志文件存放位置

CustomLog "logs/dummy-host.example.com-access_log" common:日志文件位置

2016-01-19_224228.png


6.虚拟将配置文件修改成我们所要的参数,修改将原来的那两个例子修改成如下:

<VirtualHost 192.168.0.21:80>
    DocumentRoot "/web/www"
    ServerName www.y-liang.com
</VirtualHost>


<VirtualHost 192.168.0.21:80>
    DocumentRoot "/web/bbs"
    ServerName bbs.y-liang.cn
</VirtualHost>

其他的参数我们可以不要,保存并退出。

2016-01-19_232841.png


6.重启apache服务器,使配置生效:/usr/local/apache2/bin/apachectl restart

2016-01-19_232455.png


7.现在我们来测试一下。分别在/web/www和/web/bbs目录下写两个测试文件index.php

在/web/www/index.php文件里写:<?php echo "这里是/web/www目录"; ?>

2016-01-19_233547.png

在/web/www/index.php文件里写:<?php echo "这里是/web/bbs目录"; ?>


2016-01-19_233512.png


8.好了,虚拟主机基本上配好了,但是我们如何通过域名访问我们的两个网站呢。很简单,在我们的windows系统下有一个hosts文件,里面就是专门配置ip地址和域名的对应(映射)关系的;编辑windows系统下的hosts(这个文件在C:\Windows\System32\drivers\etc目录下)文件,给我们要映射的ip添加两条记录。

192.168.0.21    www.y-liang.cn
192.168.0.21    bbs.y-liang.cn

2016-01-19_234207.png

这两条记录代表的意思是:当我们在浏览器输入www.y-liang.cn的时候,解析到的ip(即访问的ip)是192.168.0.21,但是我们刚刚配置虚拟主机的时候对应的虚拟主机目录是:/web/www目录,所以访问的是/web/www目录下的项目;当我们在浏览器输入bbs.y-liang.cn的时候,解析到的ip(即访问的ip)是192.168.0.21,但是我们刚刚配置虚拟主机的时候对应的虚拟主机目录是:/web/bbs目录,所以访问的是/web/bbs目录下的项目。

也许你还会问:当我们输入www.y-liang.cn的时候,访问的不是我的博客地址吗?这里解释一下:当我们在浏览器输入一个域名的时候,会首先在本地电脑的hosts文件里找有没有对应的ip,如果没有再去外网去找,比如我们现在这里,当我们输入www.y-liang.cn的时候,会首先去本地hosts文件里找,找到了对应的ip是192.168.0.21,所以会去访问192.168.0.21服务器下的项目,如果没找到,就访问外网ip的地址。


9.在浏览器里分别输入域名,访问我们的服务器,出现了以下报错信息。哈哈,这是因为我们刚刚只是配置好虚拟主机目录而已,还没给访问权限呢。

2016-01-19_235416.png


10.再次编辑/usr/local/apache2/etc/extra/httpd-vhosts.conf文件:vim /usr/local/apache2/etc/extra/httpd-vhosts.conf,

在ServerName www.y-liang.cn和ServerName bbs.y-liang.cn后面加入下面代码:

ServerName www.y-liang.cn后面:

<Directory "/web/www">
    Options None
    AllowOverride None
    Require all granted    #允许所有人访问
</Directory>

ServerName bbs.y-liang.cn后面:

<Directory "/web/bbs">
    Options None
    AllowOverride None
    Require all granted

</Directory>

保存并且退出。重启服务器。

2016-01-20_001537.png


11.这回再重新分别访问,这回就可以成功了。

2016-01-20_001740.png

2016-01-20_002141.png

12.好了,我们现在来总结一下刚刚lamp环境下要创建虚拟主机的步骤,有以下四步:

(1)确定好虚拟主机的目录,没有目录的话要新建。

(2)编辑apache配置文件httpd.conf,找到#Include etc//extra/httpd-vhosts.conf这一行(大概在464行),将前面的注释符“#”去掉

(3)编辑/usr/local/apache2/etc/extra/httpd-vhosts.conf文件,①配置虚拟主机目录②添加权限

(4)编辑windows系统C:\Windows\System32\drivers\etc\hosts文件,添加域名映射


到此为止,我们的lamp环境下创建虚拟主机已经完成了。


© 著作权归作者所有

共有 人打赏支持
zhonghz
粉丝 0
博文 2
码字总数 2554
作品 0
广州
Highcharts+PHP+Mysql生成饼状统计图

演示下载地址:http://www.erdangjiade.com/js/50.html 效果图:

2当家的
2017/03/19
110
0
ThinkPHP集成腾讯云存储(COS)--详解

腾讯云主页:http://www.qcloud.com/ 准备工作: 一、 根据图示进入COS 点击立即使用 进入后根据下面点击新建:Bucket(Bucket就是你往云存储的一个目录) 新建Bucket 二、 下载SDK 点击下载...

Edik
2016/01/24
1K
3
Tinkphp彩色标签Tags的实现方法

我们浏览网页时经常看到眩目的彩色标签,而且每刷新一下浏览器,都会更新为不同的颜,是不是很“惊艳”?现在来看一下它在Thinkphp上的现实方法。 项目函数库的位置:项目Commoncommon.php ...

网菠萝果
2012/11/29
0
0
马士兵JAVA基础实录教程

本教程自从发布以来,已经被下载了2000多万次,创造了国内视频教程的记录。该教程是尚学堂老师上课时真实录制而成, 充分展现了讲师的风采,高超的技术、幽默的授课风格、深入浅出的分析。 ...

2846613430
2016/04/20
74
0
接受数据的三种方式

php://input 和$POST和$GLOBALS['HTTPRAWPOSTDATA'] HTTPRAWPOST_DATA在新版版本中废弃了用这个代替php://input stream instead httprawpost_data 是PHP内置的一个全局变量。它用于, PHP在无...

金于虎
2016/11/02
16
0
深入剖析PHP输入流 php://input

PHP输入流php://input在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$POST数组。所以,这里主要探讨php输入流php://input对于php://input介绍,PHP官方手册...

xuanskyer
2016/07/03
37
0
PHP输入流php://input

PHP输入流php://input 在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探 讨php输入流php://input 对一php://input介绍,PHP官方...

等风1306
2014/08/08
0
0
php://input,$_POST,$HTTP_RAW_POST_DATA区别

我们先来看两个demo 例子:php://input 代码如下 post.php 代码如下 例子:$_post 代码如下 welcome.php 代码如下 再来看$GLOBALS ["HTTP_RAW_POST_DATA"] 通过 HTTP POST 发送的变量不会显示...

Grace_
2017/10/20
0
0
99%的人理解错 HTTP 中 GET 与 POST 的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和...

王练
2016/09/22
31K
85
99%的人都理解错了HTTP中GET与POST的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和...

油焖菠菜
2016/08/18
58
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
12分钟前
0
0
http状态码与ajax的状态值

ajax状态值 1.1 200 & OK:状态请求成功

litCabbage
14分钟前
0
0
iOS动画效果合集、飞吧企鹅游戏、换肤方案、画板、文字效果等源码

iOS精选源码 动画知识运用及常见动画效果收集 3D卡片拖拽卡片叠加卡片 iFIERO - FLYING PENGUIN 飞吧企鹅SpriteKit游戏(源码) Swift封装的空数据提醒界面EmptyView 沙盒文件浏览与分享调试控...

sunnyaigd
18分钟前
0
0
AngularJS配置.run()块中设置路由事件的监听器以及过滤未经授权的请求

AngularJS中的run方法初始化全局数据,只对全局作用域起作用,如$rootScope.多个控制器之间可以共享数据,如下代码所示: <script type="text/javascript"> var m1 = angular....

孟飞阳
18分钟前
0
0
Java语言学习(十):输入/输出

Java中,I/O操作代表着输入、输出,Java所有的I/O机制都是基于数据流进行输入输出。java.io类包提供了很多的输入输出处理功能方法,大家可以参考下JDK文档中关于I/O的一些处理方法:JDK在线中...

海岸线的曙光
28分钟前
0
0
基于阿里出得ng-Alain搭建后台管理系统

首先跟大家介绍一下ng_Alain(阿里团队出品) ng-alain技术栈基于 Typescript、Angular、g2、@delon 和 ng-zorro-antd,提前了解和学习这些知识会非常有帮助。 ng-alain 脚手架是基于 Angular ...

方宏春
32分钟前
1
0
Spring框架IOC和AOP的实现原理

一、IoC(Inversion of Control) (1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转...

HaierBrother
34分钟前
1
0
C++模版编程实现Haskell的函数模式匹配特性[图]

C++模版编程实现Haskell的函数模式匹配特性[图]: 大神 Bartosz Milewski 在2009年写了一篇文章《What Does Haskell Have to Do with C++?》,使用C++实现Haskell函数式编程语言的一些特性。...

原创小博客
35分钟前
1
0
${value}

1、就算 mapper 里面配置的名称是configSql ,在xml 里面配置的时候要注意 报错:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflectio......

职业搬砖20年
41分钟前
1
0
Xamarin 学习笔记 - Layout(布局)

本文翻译自CodeProject文章:https://www.codeproject.com/Articles/1227733/Xamarin-Notes-Xamarin-Forms-Layouts 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案...

葡萄城技术团队
43分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部