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

十周第二次课
11.14/11.15 Apache和PHP结合
11.16/11.17 Apache默认虚拟主机
 

11.14/11.15 Apache和PHP结合

修改Apache(httpd)主配置文件

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

未修改前

[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

定义ServerName

192634_p2L5_3804357.png

完成修改后

[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服务器

194142_D34K_3804357.png

修改配置文件以防止打开虚拟主机配置文件时拒绝访问(访问时提示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文件

200656_q8wu_3804357.png

增加PHP的索引页

201718_wKsG_3804357.png

增加索引页可以直接输入域名或IP,后自动跳转至索引页,无需单独输入

编写PHP测试脚本

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

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

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

测试PHP解析效果

202545_YgSr_3804357.png

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

202827_pnDS_3804357.png

Tips:使用ctrl+r可以快速查找并使用历史命令

11.16/11.17 Apache默认虚拟主机

定义

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

一台服务器可以访问多个网站,每个网站都是一个虚拟主机

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

修改Windows系统上的hosts

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

211329_jAY0_3804357.png

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

打开虚拟主机配置文件

213653_q9Ya_3804357.png

编辑虚拟主机配置文件

[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

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

 

123203_AQFv_3804357.png

123004_UMjN_3804357.png

创建相应的网站目录

[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服务的主配置文件,相当于实体主机,也是默认主机,只能指定一个域名,访问单一目录下的文件。

123727_pa9o_3804357.png

转载于:https://my.oschina.net/u/3866935/blog/1921225

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值