11.14/11.15 Apache和PHP结合
1.编辑httpd的配置文件,去掉的井号。(可以让apache启动的时候不出现如下图类似错误的提示,)
如果再次启动的时候出现如下错误,可能是文件里加载了两个php,
如下图我们注释掉其中一个php。
2.把改成。(如果不改掉在浏览器访问本机ip会是forbidden,状态码是403,)
(在浏览器打开ip地址的时候404,遇到这种情况我们排查的时候可以先用windows运行ping一下ip通不通,然后再看看端口通不通,用运行看端口通不通的时候会提示没有该命令,我们需要设置一下,在windows的控制面板里,程序和功能里的打开或关闭windows功能里,然后点击然后点确定。
如果80端口通的,那么就会显示空白,如果端口不通会显示正在连接,如果端口不通那么一定是linux没有打开端口,我们可以给它临时加上80端口,之后浏览器应该就可以访问了。)
3.因为我们要支持php,所以要增加一行和php有关的配置在这个位置,
4.我们还要增加一个索引页,把改成(可以让你访问网页的时候不加index.php也能访问主页)
改好之后使用检查配置语法是否正确,然后重新加载配置文件,(这里分享一个快捷键,使用ctrl+r键,然后输入命令的部分可以调用历史记录里的命令)
5.我们可以来验证一下现在apache到底支不支持解析php呢,我们可以写一个测试的php脚本:
然后在里面添加并保存,他可以吧php相关信息打印出来,然后在浏览器打开ip地址后面加/1.php,如果出现一个表格就说明php支持解析了,如果不支持解析就会显示我们刚刚添加的源代码。
如果解析不了就要看看Apache配置文件,看看有没有加载php5。
如果没有加载你需要看看有没有这个模块,
如果有模块我们就需要检查一下配置文件,
看看里面有没有加载php5的这行配置,
如果有那么我们继续检查配置文件里有没有加
我们刚刚一直用的的php5,我们可以换成7再用浏览器打开试试看,
11.16/11.17 Apache默认虚拟主机
默认虚拟主机可以理解成Apache(httpd)一个服务下面跑了多个网站(域名),每个域名对应一个虚拟主机。
Windows下写hosts,可以在里面定义一个ip,定义一个域名,然后让这个域名指向到这个ip。
作用就是让你临时访问到一个服务器上去。(在dns还没生效的时候可以用)
但是我们并没有在linux的httpd文件里定义它ip或者域名为什么在浏览器可以直接用ip加index.php访问呢,因为配置文件里有,这个叫做Apache默认主机,也就是任何一个域名只要是指向到这个ip它都会访问到这个站点。
如果不想所有域名都指向一个ip我们可以给它打开一个虚拟主机配置文件,在配置文件里搜索extra,然后把
的第二行井号去掉,然后我们就可以打开虚拟主机配置文件,地址如下
里面一个都代表一个主机,一个主机就是一个网站。(如果不打开虚拟主机配置文件就只能访问到一个主机)
我们可以给它定义一下,
定义网站根目录,(可以随便定义目录)
定义域名
定义网站别名,可以写多个。(使用别名也可以访问网站)
指定错误日志和访问日志。(日志目录最好也改一下。)
这样我们就定义了一个网站(最核心的是网站根目录,域名,别名)
虚拟主机配置文件生效的话之前定义的会失效,
我们可以验真一下,再来添加一个但是它的根目录是在日志目录也改一下。
然后我们创建网站根目录,在abc.com目录里面新建一个index.php
然后在里面加上
在111.com目录里面也新建一个index.php然后在里面加上
然后我们检查一下是否有错误然后重新加载(使用ctrl+r快一点)
然后我们测试一下虚拟主机。
这里介绍一下curl命令
curl -x 比如说我们要访问一个www.abc.com,ping的话会ping到外网上去,要想用这个域名访问本机就需要在hosts里指定,还可以使用curl -x,如下图
(无论什么域名都会访问到abc.com,abc.com就是我们虚拟主机配置文件的第一个虚拟主机,它就是默认虚拟主机,默认虚拟主机就是只要解析到这个ip上它都会访问这个网站对应的虚拟主机配置)
我们还可以访问,(我们在默认主机和默认虚拟主机都有定义它)
结果也验证了当默认主机和了默认虚拟主机都定义了以个域名,默认主机的定义会失效。