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】主机访问控制

主机访问控制可以通过 OrderAllowDeny 字段组合 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端口对应的主页