4月12日任务 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机

11.14Apache和PHP结合

编辑ServerName

运行如下命令,出现以下输出,

vim /usr/local/apache2.4/conf/httpd.conf

搜索ServerName,去掉前面的#号

编辑完后,重新运行。

找到增加的两行,把php7注释掉,就是在前面加#。因为,加载两个PHP,会用冲突。

用浏览器打开虚拟机的ip 访问不了ip,首先ping ip,看通不通,

通了,再ping 80端口,因为,没有安装这个命令,所以输出了以下信息。

打开控制面板,打开程序,再打开“打开或关闭 Windows 功能”

虚拟机并没有打开80端口。

让windows去访问80,需要加一个操作。

点Telnet客户端,点确定。不要打开Telnet服务器。

安装完,命令如下:

80端口通了。显示如下:

删掉规则后,80端口不通,显示如下:

卡死了,重新打开cmd

通了

浏览器,有时候会显示403 ,搜索Require

denied改为granted,

浏览器可以访问到,是因为如下内容:

如果把下面的 granted改为denied,

改完后,验证配置文件语法,是否对,命令如下:

随便加入一行,会报错,显示如下:

如果,配置文件,搞错了,重启服务,会宕机。

去掉刚才,加进去的行。

重新加载配置文件,即使,配置文件有问题,最多加载不成功,不会把进程杀掉,命令如下:

访问不成功

下面要改为granted,上面改为granted才能访问成功。

搜索AddType,增加一行,改为如下:

搜索Index,修改为如下所示:

11.15 Apache和PHP结合(下)

加入如下内容,可以把PHP的内容显示出来:

访问页面,增加一个文件,不用重启PHP。

实验如下: 编辑文件 注释掉(加上#)。

打开,显示是源代码

遇到PHP,不能解析的情况,检查Apache配置文件。 查看有没有加载PHP5,命令如下:

没有的,查看有没有这个文件。

如果有,搜索libphp5.so查看配置文件里面,有没有加载libphp5.so那一行。

如果有,搜索AddType,查看有没有增加php那一行,检查格式对不对,有没有空格。

格式不对,是可以检查出来,命令如下:

完整的主页地址有index.php,不输入也可以访问,是因为定义了index.php。

能用ip,能访问到主页,访问的是index.html。是因为定义了index.html。

检查一遍

换成php7

php和用命令行,显示的内容差不多,基本上一致,命令行是文本形式显示,php用的表格显示。

11.16 Apache默认虚拟主机(上)

可以访问到1.php和index.html,是因为参数DocumentRoot 定义了文档根目录。

域名是ServerName定义的,可以用任何域名去访问。

windows写host的方法。

host文件的地址

打开方式是记事本

增加一行,192.168.155.130 www.abc.com www.123.com,保存。一行可以写多个域名。

ping www.abc.com 可以访问到。

ping www.123.com

前面加#号,注释掉。

www.123. com www.abc.com 并没有在httpd的配置文件里定义。只定义了example。任何域名只要是指向到这个ip,都会访问到这个站点,就是默认虚拟主机。

不想所有域名指向到这里。打开虚拟主机配置文件。 搜索extra,找到这一行,把#去掉。

打开配置文件。

<VirtualHost *;80>与</VirtualHost >,和它们之间的内容代表一个主机,一个主机是一个网站。如果不开它,只能访问到一个主机,任何域名指向过来都会访问到一个主机。

更改如下:

#cat !$

11.17 Apache默认虚拟主机(下) 访问配置文件第一个虚拟主机

虚拟主机配置文件生效后,主配置文件失效。 虚拟主机配置文件,每对《VirtualHsot》是一个主机。 任何域名只要指向到这个iP,就会访问到第一个虚拟主机,就是默认虚拟主机。