Linux实验5——Apache、虚拟主机

news/2025/2/19 14:21:45/

实验要求:

练习利用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中的浏览器)


http://www.ppmy.cn/news/194513.html

相关文章

TP5 在西部数码虚拟主机下 要如何实现伪静态

我的一个tp5项目放在西部数码下 死活无法伪静态 主要原因是配置 我的配置是 Windows apache 而西部数码给的是 Windows IIS 如果用Linux apache 的话 我项目下所有的视图实例化都要改成Linux 模式 实在是太麻烦了 从网上找了多篇文章进行使用 终于找到了可以解决的方案&a…

WAMP建立虚拟主机及配置TP5

首先安装Wamp,例如安装的目录为c:\wamp,项目www的目录为c:\wamp\www。 现在建立一个项目,例如: 1)网址为:my.dgsyktv.com 2)目录地址为:c:\wamp\www\dgsy\ 3)把Think…

All in One主机

All in One主机越来越热,与软/硬件的发展成熟息息相关。如今只要软/硬件搭配合理,All in One主机已经不存在稳定性差的问题。虚拟机是组All in One不可或缺的工具,ESXI和PVE作为翘楚,都非常适合做All in One主机底层系统的。分享这…

wordpress中主机名填写的是什么主机名?

答:填localhost或者你网站的域名。 附注: 修改wp-config.php文件 define("FS_METHOD", "direct"); define("FS_CHMOD_DIR", 0777); define("FS_CHMOD_FILE", 0777); 在wp-config.php文件最后添加上面…

DA14580做主机

一、主机通讯过程包括:扫描、发出连接请求、建立连接、发现服务、交换数据。 1、扫描过程: 应用层将GAPM_START_SCAN_CMD消息发送到堆栈,设备将开始扫描过程,并报告当前正在进行广播的所有可用设备。广播事件将被报告给.app_on_a…

W5500全硬件 TCP/IP 嵌入式以太网控制器WIZNET

概述 W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案。 W5500 集成了 TCP/IP 协议栈,10/100M 以太网数据链路层(MAC)及物理层(PHY),使得用户使用单…

ip:在因特网里面区分主机的唯一标识

应用层: ftp http 传输层: TCP UDP 网络层: ip ICMP IGMP ARP RARP 一般表现形式: "a.b.c.d": 主机表现形式; 上传网络 用二进制表示 A : 1-171 B : 172-191 C : …

wamp虚拟主机配置

今天学习Zend Framework:顺便学习了一下配置虚拟主机,记录一下: 1、首先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#,启用虚拟主机功能 2、先把localhost配置好,免得以后访…