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,就会访问到第一个虚拟主机,就是默认虚拟主机。