11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机

11.14/11.15 Apache和PHP结合

修改Apache(httpd)主配置文件

定义ServerName以消除Apache启动时所产生的警告

未修改前php

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::531b:14ea:3a75:f113. Set the 'ServerName' directive globally to suppress this message
httpd (pid 5756) already running

定义ServerNamelinux

完成修改后web

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl restart
[root@linux-5 ~]#

打开服务器的80端口

[root@linux-5 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

测试链接Apache服务器apache

修改配置文件以防止打开虚拟主机配置文件时拒绝访问(访问时提示403)

<Directory />
    AllowOverride none
    Require all granted        //将denied改成granted
</Directory>
...
DocumentRoot "/usr/local/apache2.4/htdocs"
<Directory "/usr/local/apache2.4/htdocs">
...
    Require all granted        //将denied改成granted
</Directory>

检查配置文件语法

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

从新加载配置文件

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl graceful

修改配置文件以用于解析PHP文件

增长PHP的索引页

增长索引页能够直接输入域名或IP,后自动跳转至索引页,无需单独输入vim

编写PHP测试脚本

[root@linux-5 ~]# vim /usr/local/apache2.4/htdocs/test.php

<?php
phpinfo();
?>
//该脚本用于打印PHP版本信息

注:增长PHP文件无需重启服务服务器

测试PHP解析效果

上图为成功解析PHP脚本文件的效果,若是不支持解析,则会产生以下结果网络

Tips:使用ctrl+r能够快速查找并使用历史命令dom

11.16/11.17 Apache默认虚拟主机

定义

不一样的主机名解析到不一样的IP地址,提供虚拟主机服务的机器上同时设置有这些IP地址。服务器根据用户请求的目的IP地址来断定用户请求的是哪一个虚拟主机的服务,从而进一步的处理。(默认虚拟主机只能定义单一域名,且为使用该服务器IP所跳转的惟一Apache站点,全部域名均会跳转至惟必定义的DocumentRoot下的网站根目录,一个配置文件只能定义一个Severname)curl

一台服务器能够访问多个网站,每一个网站都是一个虚拟主机tcp

任何一个域名解析到这台机器,均可以访问的虚拟主机就是默认虚拟主机

修改Windows系统上的hosts

路径C:\Windows\System32\drivers\etc\hosts

因为默认虚拟主机只能使全部域名指向同一网站根目录,不易于管理,所以能够打开虚拟主机配置文件,使得不一样域名能够跳转至不一样网站。

打开虚拟主机配置文件

编辑虚拟主机配置文件

[root@linux-5 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 

# Virtual Hosts
...
<VirtualHost *:80>                                                    //可定义多个虚拟主机(当前第一个)
    ServerAdmin webmaster@dummy-host.example.com                      //管理员邮箱,可不填写
    DocumentRoot "/data/wwwroot/abc.com"                              //网站的根目录
    ServerName abc.com                                                //网站(服务器)名称,惟一
    ServerAlias www.abc.com www.123.com                               //网站(服务器)别名,可多个 
    ErrorLog "logs/abc.com-error_log"                                 //错误日志
    CustomLog "logs/abc.com-access_log" common                        //访问日志
</VirtualHost>

<VirtualHost *:80>                                                    //可定义多个虚拟主机(当前第二个)
    ServerAdmin webmaster@dummy-host2.example.com                     //管理员邮箱,可不填写
    DocumentRoot "/data/wwwroot/def.com"                              //网站的根目录
    ServerName def.com                                                //网站(服务器)名称,惟一
    ServerAlias www.def.com www.456.com                               //网站(服务器)别名,可多个
    ErrorLog "logs/def.com-error_log"                                 //错误日志
    CustomLog "logs/def.com-access_log" common                        //访问日志
</VirtualHost>

注:一旦虚拟主机配置文件生效,则默认主机配置的文件定义的内容会失效

从新加载服务

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

在虚拟主机配置文件中不能在代码后添加注释,不然会引发报错

建立相应的网站目录

[root@linux-5 ~]# mkdir /data/wwwroot/
[root@linux-5 ~]# mkdir /data/wwwroot/abc.com
[root@linux-5 ~]# mkdir /data/wwwroot/def.com

建立相应目录下的网站文件

[root@linux-5 ~]# vim /data/wwwroot/abc.com/index.php
<?php
echo "abc.com";
[root@linux-5 ~]# vim /data/wwwroot/def.com/index.php
<?php
echo "def.com";

测试网站效果

curl -x             //发送网络请求,-x选项为网络请求增长代理,至关于hosts的做用
[root@linux-5 ~]# curl -x 192.168.88.5:80 abc.com
abc.com[root@linux-5 ~]#
[root@linux-5 ~]# curl -x 192.168.88.5:80 def.com
def.com[root@linux-5 ~]#

在测试过程当中使用的是两个虚拟主机,则第一个虚拟主机则是Apache服务的默认虚拟主机,不管访问哪一个域名(其余虚拟主机定义的域名除外),只要指向了服务器的IP地址,都会跳转至默认虚拟主机。咱们实验所使用的Linux虚拟机,在其上安装的Apache服务的主配置文件,至关于实体主机,也是默认主机,只能指定一个域名,访问单一目录下的文件。

相关文章
相关标签/搜索