linux Apache服务配置
首先恢复虚拟机1、虚拟机2快照,重新准备环境,还原为初始状态,也就是刚刚安装好虚拟机的状态:
虚拟机1-单网卡-仅主机模式-192.168.100.3-Web服务器
虚拟机2-单网卡-仅主机模式-192.168.100.4-Linux客户端
物理机(windows系统宿主机)-Windows客户端
两台虚拟机保证本地yum源配好!!
两台虚拟机均关闭SELinux与firewalld防火墙!!
验证yum源是否配置成功
验证防火墙是否关闭
验证selinux的状态是否为不执行但是产生警告
-------------------------------------------------------
任务一、使用Apache发布个人主页
【1】通过 yum 源安装 Apache 服务
Centos 7系统上安装 Apache 软件有多种方式,比如源码编译安装、rpm 方式安装、yum源方式安装等。因为前面的课程中已经配置好了 yum 源,在此直接通过 yum 方式进行安装。
//-y选项表示不再询问直接安装安装完成后,可以通过rpm命令查看是否已经安装。
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# rpm -qa |grep httpd
如果能够在输出中看到 httpd-2.4.6-93.el7.centos.x86_64 这个包,则说明安装成功。
【2】运行 Apache 服务
启动服务。
[root@localhost ~]# systemctl start httpd
查看服务运行状态。
[root@localhost ~]# systemctl status httpd
通过该命令可以查看服务是否处于运行状态,比如结果中有 active (running)字样,表示服务正在运行中。
设置服务开机自启动。
[root@localhost ~]# systemctl enable httpd
设置为开机自启动后,当开机或者重启操作系统后,httpd自动运行
浏览器查看 Apache 默认测试页面。
Web 服务器 IP 地址是 192.168.100.3,则浏览器中输入 http://192.168.100.3 可以看到 Apache 的默认测试页面。
【3】发布自己的网页
前面我们运行了Apache服务,并且能够看到页面,但这仅仅是使用了Apache默认的配置,而如果我们想定制自己的配置就需要修改配置文件来实现。
我们看一个案例,要求:
Web 服务主目录:/home/www/
主页:home.html,内容为“Welcome To My Home”
端口: 8080
案例实现:
Apache 的默认配置文件在/etc/httpd/conf/目录下,默认主配置文件为 httpd.conf,我们可以通过修改该文件实现案例的要求。
(1)为了避免我们的修改造成 Apache 崩溃无法恢复的后果,建议先备份一下默认配置文件
[root@localhost ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bac
(2)准备服务器主页目录
[root@localhost ~]# mkdir -p /home/www
[root@localhost ~]# echo “Welcome To My Home” >> /home/www/home.html
(3)修改配置文件
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
修改 Listen 80 一行 为 Listen 8080
修改 DocumentRoot “/var/www/html“一行为 DocumentRoot "/home/www“
修改<Directory “/var/www/html”> 一行为 <Directory "/home/www">
修改 <IfModule dir_module> 块 内 DirectoryIndex index.html 一行为 DirectoryIndex home.html
(4)重启 Apache 服务
[root@localhost ~]# systemctl restart httpd
(5)浏览器访问地址(http://192.168.100.3:8080)
可以看到自己的网页
-------------------------------------------------------
任务二、Apache中的权限控制
Apache 服务作为安全稳定的 Web 服务,肯定会支持很多安全相关的配置, 比如设置禁止显示目录、设置目录访问权限、用户身份认证等,通过安全相关配置项的配置,能够最大程度地保证 Web 数据的安全性。
通过一个案例,来简单了解 Apache 服务的安全配置。 要求: 通过控制之前发布的主页权限,分别实现以下目标:
(1)不允许 192.168.100.0/24 网段客户端访问
(2)仅允许 192.168.100.0/24 网段客户端访问,但 192.168.100.4 不能访问
(3)仅允许 192.168.100.4 客户端访问。
【1】主机访问控制
主机访问控制可以通过 Order、Allow、Deny 字段组合 Order 用来设置 Allow 与 Deny 的处理顺序
Allow 用来设置哪些客户端允许访问
Deny 用来设置哪些客户端拒绝访问 如果匹配冲突,后匹配的覆盖先匹配的
【2】Case1:不允许 192.168.100.0/24 网段客户端访问
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
在<Directory “/home/www”>配置段落内添加如下内容
Order allow,deny
Allow from all
Deny from 192.168.100.0/24
[root@localhost ~]# systemctl restart httpd
通过 IP 为 192.168.100.4 的浏览器访问,不能访问个人页面
通过 IP 为 127.0.0.1 的浏览器访问,可以访问个人页面
【3】Case2:仅允许 192.168.100.0/24 网段客户端访问,但 192.168.100.4 不能访问
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
在<Directory “/home/www”>配置段落内修改为如下内容
Order allow,deny
Allow from 192.168.100.0/24
Deny from 192.168.100.4
[root@localhost ~]# systemctl restart httpd
通过 IP 为 192.168.100.4 的浏览器访问,不能访问个人主页
通过 IP 为 192.168.100.3 的浏览器访问,可以访问个人主页
【4】Case3:仅允许 192.168.100.1 客户端访问
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
在<Directory “/home/www”>配置段落内修改为如下内容
Order deny,allow
Deny from all
Allow from 192.168.100.1
[root@localhost ~]# systemctl restart httpd
通过 IP 为 192.168.100.1 的浏览器访问,可以访问个人主页
通过 IP 为 192.168.100.3 或者 192.168.100.4 的浏览器访问,不能访问个人主页
-------------------------------------------------------
任务三、为每个用户设置独有的主页
许多网站都允许每个用户拥有自己的主页空间,Apache可以实现为每个用户配置自己独有的主页
案例:
在IP地址为192.168.100.3的Apache服务器中,为系统中的long用户设置个人主页空间。该用户的家目录为/home/long,个人主页空间所在的目录为public_html。
步骤:
【1】创建用户并修改用户目录权限,并创建个人主页
[root@localhost ~]# useradd long
[root@localhost ~]# passwd long
更改用户 long 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# mkdir /home/long/public_html
[root@localhost ~]# echo "This is long's Home" >> /home/long/public_html/home.html
[root@localhost ~]# chmod -R 705 /home/long/
[root@localhost ~]# cat /home/long/public_html/home.html
This is long's Home
【2】修改配置文件并重启httpd服务
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
将 UserDir disabled 一行前面加#注释掉
将 #UserDir public_html 一行前面#删除取消注释
[root@localhost ~]# systemctl restart httpd
【3】验证。在虚拟机2中打开浏览器,地址栏输入192.168.100.3:8080/~long 可以看到long用户独有的主页。
-------------------------------------------------------
任务四、配置虚拟目录
案例:
在IP地址为192.168.100.3的Apache服务器中,创建名为/test/的虚拟目录,它对应的物理路径是/virdir/,并在客户端测试。
步骤:
【1】创建相关目录、文件并设置权限
[root@localhost ~]# mkdir /virdir
[root@localhost ~]# echo "VR Test" >> /virdir/home.html
[root@localhost ~]# chmod -R 705 /virdir
【2】修改配置文件并重启httpd服务
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
在文件结尾添加如下语句:
Alias /test "/virdir"
<Directory "/virdir">
AllowOverride NOne
Require all granted
</Directory>
[root@localhost ~]# systemctl restart httpd
【3】验证
在虚拟机2中打开浏览器,地址栏输入 192.168.100.3:8080/test 后,能看到自己的主页
-------------------------------------------------------
任务五、配置基于端口的虚拟主机
可以配置基于IP地址、域名、端口的虚拟主机,这里进行基于端口的虚拟主机配置实验。
案例:
假设Apache服务器IP地址为192.168.100.3。现需要创建基于8088和8089两个不同端口号的虚拟主机,要求不同的虚拟主机对应的主目录不同,默认文档的内容也不同,如何配置?
【1】创建目录、文件
[root@localhost ~]# mkdir /home/www/8088
[root@localhost ~]# mkdir /home/www/8089
[root@localhost ~]# echo "8088 test" >> /home/www/8088/home.html
[root@localhost ~]# echo "8089 test" >> /home/www/8089/home.html
【2】修改配置文件并重启httpd服务
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
将原来的 Listen 8080 改为 Listen 8088
并在其后添加一行 Listen 8089
并将<Directory "/home/www">段落下之前配置的以下三行删除:
Order deny,allow
Deny from all
Allow from 192.168.100.1
在其中添加以下几行:
<Virtualhost 192.168.100.3:8088>
DocumentRoot /home/www/8088
</Virtualhost>
<Virtualhost 192.168.100.3:8089>
DocumentRoot /home/www/8089
</Virtualhost>
[root@localhost ~]# systemctl restart httpd
【3】验证
在虚拟机2中打开浏览器,地址栏输入:
192.168.100.3:8088 可以看到8088端口对应的主页
192.168.100.3:8089 可以看到8089端口对应的主页