实验要求:

练习利用Apache服务建立普通Web站点、基于主机和用户认证的访问控制:
(1)使用本地yum源安装Apache软件。
(2)Apache服务器IP地址为192.168.232.132,使用域名www.rj.com进行访问。
(3)网站根目录为/data/web_data。
(4)网站首页为index.html,内容是“Welcome to 2019 Computer Network Application contest!”。
(5)使用三种方式搭建虚拟主机。

=======================

【一】准备工作:Apache服务器的启用

(1)检测Apache

rpm -qa | grep httpd     #查看是否安装上了httpd服务

安装Apache:
way1:yum命令,直接从网上软件仓库安装

yum list httpd
yum install httpd.x86_64

way2:安装rpm包

rpm -ivh [包名]

安装多个rpm包时要注意顺序,因为包之间有依赖关系。

mailcap-xxx.rpm
htttp2.4.6
……
【一共6个rpm包。这里po主不记得那6个包名分别是什么了,下次知道了补上。】

(2)查看Apache服务状态、启动

#所有服务器的状态查看、重启命令都是一样的systemctl status httpd          #查看状态
systemctl start httpd           #启动


(要显示为Active)

开启服务后,首先要检验物理机和虚拟机之间是否能ping通:

ping 192.168.232.132     #物理机去ping虚拟机
ping -c 3 192.168.232.1      #虚拟机ping物理机

要互相能ping通才行。
如果ping不通,物理机可以用ifconfig查看当前物理VMnet8地址,看看和虚拟机用ip addr查到的地址是否在同一网段。如果不在同一网段是ping不同的,最简单粗暴的方法是直接改物理机VMnet8的地址。

开启防火墙端口:

firewall-cmd --add-port=80/tcp

(显示success)
(在没开防火墙之前,浏览器是看不到东西的)

【补充】(↓以下命令为重启防火墙策略。但是不要更新策略了,有可能防火墙退回原来的状态,导致前面配置开启防火墙端口失效。)

#firewall-cmd --reload

【检测Apache服务器状态——用浏览器访问】
法1:打开浏览器,在地址栏输入:

http://192.168.232.132
192.168.232.132             #两种写法都可以

这里可能会出现的几种情况:
①如果配置好了,页面应该会这样显示:

②如果一直在转圈加载,很久之后显示无法访问,则很大可能是防火墙的问题,请重新配置一次防火墙:

法2:安装lynx,用lynx查看
lynx是Linux下一个终端字符界面下的浏览器,该界面下只能显示字符

yum list | grep lynx
yum -y install lynx.x86_64      #这里的lynx.x86_64上一条命令查到的包名(虽然我安装lynx的时候是直接写成了lynx成功了,但是不是所有的包都可以直接写其名。一定要查了再装)lynx http://192.168.232.132       #用lynx访问Apache发布的网址

用lynx时正常查看的情况如下图:

=======================

【二】修改主配置文件

【在修改总配置文件httpd.conf之前,可以将配置文件做一个备份】

tar -cvf httpd.conf.tar httpd.conf

打开主配置文件httpd.conf:

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf

修改内容:
①httpd服务的网站目录访问权限:

【备注】
如果不修改此处,在后续的虚拟主机配置中,浏览器可能会返回Forbidden
(比如我就在基于端口号的虚拟主机配置时碰到了)

②Web站点主目录:
这里需要改成我们需要建立Web站点的路径/data/web_data

③Web站点检索主页列表
在这里列出的站点,找不到第一个就找下一个打开
(在本实验中也不用改,因为一直用的就是index.html)

④还有一个Directory
要把var www改成/data/web_data

===================

【三】虚拟主机配置

法1:基于IP的虚拟主机配置

原理:此方法旨在通过修改ifcfg-ens33文件,以添加ip地址(这种方法添加ip地址是永久性的)

步骤
打开ifcfg-ens33文件(这个文件和网卡有关)

vi /etc/sysconfig/network-scripts/ifcfg-ens33

*记不住具体路径的话,可以用find命令查:

[root@localhost ~]# find / -name ifcfg-ens33

修改ifcfg-ens33,改成下图形式:

↑修改的地方:
①ONBOOT:改为yes(开机启动)
②添加ip地址(像图上以IPADDR的形式写出。可以同时添加多个地址,但是必须以不同的名字列出,不能全部命名为IPADDR)
③添加GATEWAY(写物理机ifconfig查到的VMnet8的ip地址)
④添加NETMASK(ip地址的子网掩码)

重启网卡:(只有重启网卡了,刚才添加的ip地址才能生效)

[root@localhost ~]# systemctl restart network

(此命令在SSH远程操作有可能会卡住,所以这条命令最好在VMware里面完成,否则可能要重新连一次远程。)

重启之后,用ip addr命令查看ip地址,可以看到新添加的ip地址了。

创建新的根目录路径/data/web_data,然后在新路径中创建index.html:

[root@localhost ~]# mkdir -p /data/web_data     #参数-p:支持一次创建多级路径(不记得的话就一层一层地建吧)[root@localhost ~]# echo "Welcome to 2019 Computer Network Application contest! " > index.html        #双引号中如果最后有感叹号!,则需要转义,否则不能正常显示。但是这里我懒,干脆直接在最后加了个空格(逃

???创建ip地址对应的目录、配置文件:

[root@localhost httpd]# mkdir vhost
[root@localhost httpd]# cd vhost
[root@localhost vhost]# vi 132.conf

增加132.conf内容:

打开主配置文件httpd.conf,并在结尾处添加如下信息:

重启服务使配置生效:

[root@localhost httpd]# systemctl restart httpd

再次访问192.168.232.132,就可以显示出index.html的内容了:

↑如果不能出现
则要setenforce 0

法2:基于端口号的虚拟主机配置

在主配置文件httpd.conf中添加:

解释一下:最后的10021和10022是待配置的两个端口号

(用win10的话)为了后续不报错,这里需要安装semanage:

[root@localhost ~]# yum provides semanage       #先查包名[root@localhost ~]# yum -y install [root@localhost ~]# yum -y install policycoreutils-python-2.5-34.e17.x86_64       #再安装

用semanage查看已有端口:

[root@localhost ~]# semanage port -l | grep http

添加后续我们要用的端口号:

[root@localhost ~]# semanage port -a -t http_port_t -p tcp 10021
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 10022

**【备注】**本来是想添加8081和8082的,结果添加之后就不能正常重启httpd服务了,再用systemctl status httpd查状态,发现变成failed了。后来才发现是端口8081和8082都已经被占用了,所以后面改用成10021和10022

(这个问题很磨人……有空再补充写写)

建立基于端口号方式的虚拟主机存放站点的根目录,并创建首页index.html文件:

[root@localhost web_data]# mkdir 10021
[root@localhost web_data]# mkdir 10022
[root@localhost web_data]# echo "port 10021 Web Site." > 10021/index.html
[root@localhost web_data]# echo "port 10022 Web Site." > 10022/index.html

编辑每个端口号的不同配置文件:
(在httpd/vhost下)



这里的大致内容和基于ip方式的虚拟主机配置一样,只是多加了端口号。

设置防火墙,并重启防火墙和httpd服务:

[root@localhost web_data]# firewall-cmd --permanent --add-port=10021/tcp
success
[root@localhost web_data]# firewall-cmd --permanent --add-port=10022/tcp
success[root@localhost web_data]#systemctl restart firewalld
[root@localhost web_data]# systemctl restart httpd.service

最后,可以显示了:

法3:基于域名方式的虚拟主机配置

在网卡上设置新的虚拟网卡地址(此处新建192.168.232.136。注意:这个只是临时ip,再次重启虚拟机之后就没有了,想要添加永久的ip/修改当前虚拟机的ip地址,请参考上文中修改ifcfg-ens33文件的方式)

[root@localhost ~]# ifconfig ens33:5 192.168.232.136/24[root@localhost ~]# ip addr     #此时就可以查看到我们新建的临时ip了

用vi编辑/etc/hosts文件,在文件的最后添加信息:

192.168.232.136 www.rj.com       #前面是ip地址,后面是对应的域名

在根目录/data/web_data下,建立基于域名方式的虚拟主机存放站点,并创建首页index.html文件:

[root@localhost ~]# cd /data/web_data
[root@localhost ~]# echo "Here rjrj" > rj/index.html

编辑域名的配置文件:

测试虚拟主机主页,可以看到结果:

**【备注】**此处只能在虚拟机里查看,而不能在外部浏览器中查看(除非买了域名)

(curl需要安装才能用,相当于SSH中的浏览器)

Linux实验5——Apache、虚拟主机相关推荐

  1. Linux下配置Apache虚拟主机(基于IP地址)

    Linux下配置Apache虚拟主机(基于IP地址) 一.虚拟主机 虚拟主机,又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术.虚拟主机之间完全独立,并可 ...

  2. 【Linux】apache虚拟主机实战

    文章目录 前言 一. 什么是虚拟主机 二. 虚拟主机类型 三. VirtualHost参数的意义 四. 虚拟主机实战 1. 基于IP的虚拟主机 a. 虚拟机原ip b. 添加临时IP c.配置文件中添 ...

  3. Linux下Apache虚拟主机配置

    说明: Apache版本:httpd-2.2.31 Apache安装目录:/usr/local/apache 目的: 配置Apache虚拟主机 具体操作: 1.修改Apache主配置文件 cp /us ...

  4. linux虚拟主机泛解析,Apache虚拟主机的配置和泛域名解析实现代码

    Apache虚拟主机的配置和泛域名解析实现代码 更新时间:2012年03月11日 00:28:19   作者: Apache虚拟主机的配置和泛域名解析实现代码,需要的朋友可以参考下 虚拟主机的配置 基 ...

  5. linux apache部署php,Linux下apache虚拟主机配置多版本php同时运行 | 系统运维

    学习本教程须掌握: 1.Linux下指定版本编译安装LAMP 2.Linux下Apache虚拟主机配置 3.CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5 ...

  6. Ubuntu 16.04与Apache虚拟主机配置的步骤详解

    这篇文章主要给大家介绍了关于Ubuntu 16.04与Apache虚拟主机配置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ubuntu16.04系统具有一定的参考学习价值,需要的朋友 ...

  7. Apache 虚拟主机 VirtualHost 配置

    虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同 ...

  8. 在CentOS 8上安装与配置Apache虚拟主机

    实验环境 操作系统:Centos 8 web应用:apache 内网IP:192.168.3.21 shell执行:root 以root或具有sudo权限的用户身份登录执行如下操作. 主配置文件路径: ...

  9. 如何配置apache虚拟主机

    如何配置apache虚拟主机 实验目标:在apache实现基于域名的虚拟主机 实验用的XAMPP版本为1.7.7,内含apache版本为2.2.21 实验前准备: 1. 为了测试不同的域名,在Wind ...

  10. Apache虚拟主机配置详解

    Apache虚拟主机配置详解 1.配置环境说明 系统环境:CentOS7 Apache环境:编译安装的httpd-2.4.7 系统限制:关闭了防火墙和selinux hosts文件中配置以下域名解析 ...

最新文章

  1. C#学习日志 day 5 plus------ interface 数组及stringBuilder相关
  2. centos 更改mysql数据库目录位置_centos更改MySQL数据库目录位置
  3. Android方法调用实体类的值,React Native调用Android原生方法和传值
  4. sublime text3 package control 报错
  5. 程序员年入50万,我们该如何努力达到这个目标?
  6. 上去很美的 Serverless 在中国落地的怎么样了?
  7. 1.13 编程基础之综合应用 10 判决素数个数 python
  8. bat 存储过程返回值_MySQL-存储过程和函数详述
  9. Robust Principal Component Analysis?(PCP)
  10. (20)Zynq FPGA Quad-SPI闪存控制器介绍
  11. SSM框架面试题整理
  12. [计算机网络]七、IP地址规划和静态路由
  13. 如何计算机内存的品牌,如何检查计算机内存模块的品牌?如何检查计算机的内存...
  14. 不知道免费去水印图片软件哪个好?来看看这3个软件
  15. 安全审计——等级保护日志审计要求的一种解决方案
  16. AndroidStudio很卡怎么办?
  17. 随机森林python
  18. 近年多示例论文阅读(2): Multiple instance learning: A survey of problem characteristics and applications
  19. 由置灰引出的css滤镜filter是什么东西?
  20. java最基本的基础知识

热门文章

  1. 【工控协议专题01】Modbus协议原理与安全性分析
  2. java 借助modbus协议实现与硬件之间的通讯
  3. 教你如何打造一个适合学生党的学习型iPad
  4. 微信扫一扫功能扫描二维码调用外部浏览器打开指定页面实现微信中下载APP的功能
  5. 『Citric』天空中的繁星 · DP
  6. 主题 12:实践案例集锦之兜底方案设计
  7. 启发式算法greedy heuristic、贪心算法
  8. 如何使用matlab
  9. 在Windows下安装BIND作为DNS服务器
  10. 全新UI流量卡官网系统源码+有后台带文章