十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

11.14/11.15 Apache和PHP结合

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

1.编辑httpd的配置文件,去掉十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机的井号。(可以让apache启动的时候不出现如下图类似错误的提示,)

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

如果再次启动的时候出现如下错误,可能是文件里加载了两个php,

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

如下图我们注释掉其中一个php。

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

2.把十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机改成十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机。(如果不改掉在浏览器访问本机ip会是forbidden,状态码是403,)

(在浏览器打开ip地址的时候404,遇到这种情况我们排查的时候可以先用windows运行ping一下ip通不通,然后再看看端口通不通,用运行看端口通不通的时候会提示没有该命令十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机,我们需要设置一下,在windows的控制面板里,程序和功能里的打开或关闭windows功能里,然后点击十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机然后点确定。

如果80端口通的,那么就会显示空白,如果端口不通会显示正在连接,如果端口不通那么一定是linux没有打开端口,我们可以给它临时加上80端口十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机,之后浏览器应该就可以访问了。)


3.因为我们要支持php,所以要增加一行和php有关的配置在这个位置,十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

4.我们还要增加一个索引页,把十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机改成十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机(可以让你访问网页的时候不加index.php也能访问主页)

改好之后使用十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机检查配置语法是否正确,然后重新加载配置文件十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机,(这里分享一个快捷键,使用ctrl+r键,然后输入命令的部分可以调用历史记录里的命令)

5.我们可以来验证一下现在apache到底支不支持解析php呢,我们可以写一个测试的php脚本:十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

然后在里面添加十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机并保存,他可以吧php相关信息打印出来,然后在浏览器打开ip地址后面加/1.php,如果出现一个表格就说明php支持解析了,如果不支持解析就会显示我们刚刚添加的源代码。

如果解析不了就要看看Apache配置文件,十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机看看有没有加载php5。

如果没有加载你需要看看有没有这个模块,十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

如果有模块我们就需要检查一下配置文件十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

看看里面有没有加载php5的这行配置,十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

如果有那么我们继续检查配置文件里有没有加十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

我们刚刚一直用的的php5,我们可以换成7再用浏览器打开试试看,十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

11.16/11.17 Apache默认虚拟主机

默认虚拟主机可以理解成Apache(httpd)一个服务下面跑了多个网站(域名),每个域名对应一个虚拟主机。

Windows下写hosts,可以在里面定义一个ip,定义一个域名,然后让这个域名指向到这个ip。

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

作用就是让你临时访问到一个服务器上去。(在dns还没生效的时候可以用)

但是我们并没有在linux的httpd文件里定义它ip或者域名为什么在浏览器可以直接用ip加index.php访问呢,因为配置文件十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机里有十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机,这个叫做Apache默认主机,也就是任何一个域名只要是指向到这个ip它都会访问到这个站点。

如果不想所有域名都指向一个ip我们可以给它打开一个虚拟主机配置文件,在配置文件里搜索extra,然后把

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机的第二行井号去掉,然后我们就可以打开虚拟主机配置文件,地址如下

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

里面一个十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机都代表一个主机,一个主机就是一个网站。(如果不打开虚拟主机配置文件就只能访问到一个主机)

我们可以给它定义一下,

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机定义网站根目录,(可以随便定义目录)

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机定义域名

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机定义网站别名,可以写多个。(使用别名也可以访问网站)

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机指定错误日志和访问日志。(日志目录最好也改一下。)

这样我们就定义了一个网站(最核心的是网站根目录,域名,别名)

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

虚拟主机配置文件生效的话之前定义的十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机会失效,

我们可以验真一下,再来添加一个十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机但是它的根目录是在十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机日志目录也改一下。

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机


然后我们创建网站根目录,十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机在abc.com目录里面新建一个index.php

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机然后在里面加上十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

在111.com目录里面也新建一个index.php然后在里面加上十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

然后我们检查一下是否有错误十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机然后重新加载十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机(使用ctrl+r快一点)

然后我们测试一下虚拟主机。

这里介绍一下curl命令

curl -x 比如说我们要访问一个www.abc.com,ping的话会ping到外网上去,要想用这个域名访问本机就需要在hosts里指定,还可以使用curl -x,如下图

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机(无论什么域名都会访问到abc.com,abc.com就是我们虚拟主机配置文件的第一个虚拟主机,它就是默认虚拟主机,默认虚拟主机就是只要解析到这个ip上它都会访问这个网站对应的虚拟主机配置)

我们还可以访问十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机,(我们在默认主机和默认虚拟主机都有定义它)

十周第二次课 2017.12.19 Apache和PHP结合、Apache默认虚拟主机

结果也验证了当默认主机和了默认虚拟主机都定义了以个域名,默认主机的定义会失效。