linux下部署Apache服务

目录

1.网站服务介绍

2.安装httpd服务

1.安装程序

2.设置http服务开机自启

3.输入命令访问apache的主页

4.配置服务文件参数

5.修改apache主页

6.修改网站数据的目录

7.配置selinux

3.个人主页功能

1.修改配置文件

2.修改目录权限

3.修改selinux域规则

4.修改文件的上下文

5.访问测试

6.个人主页加密


1.网站服务介绍

我们平时访问的网站服务就是 Web 网络服务,一般是指允许用户通过浏览器访问互联网中各种资源的服务。

目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。其中,IIS(Internet Information Service,互联网信息服务)是 Windows 系统中默认的 Web 服务程序,这是一款图 形化的网站管理工具不仅可以提供 Web 网站服务,还可以提供 FTP、NMTP、SMTP 等服务。

Apache 程序是目前拥有很高市场占有率的 Web 服务程序之一,其跨平台和安全性广泛被 认可且拥有快速、可靠、简单的 API 扩展。

Apache 程序是 RHEL 5、6、7、8 系统中默认的 Web 服务程序。

2.安装httpd服务

1.安装httpd程序

httpd是Apache超文本传输协议(HTTP)服务器的主程序

下载httpd可以使用光盘里的rpm包,还可以使用在线的repo源进行在线安装

yum install httpd -y

image-20230917134720724

2.设置http服务开机自启

并将其加入到开机启动项中,使其能够随系统开机而运行, 从而持续为用户提供 Web 服务。

[root@localhost ~]# systemctl start httpd     #启动httpd服务
[root@localhost ~]# systemctl enable httpd    #设置httpd开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/htt
[root@localhost ~]# 

3.输入命令访问apache的主页

由于我的linux是精简版没有图形化页面,只能借助命令来查看apache主页

curl 127.0.0.1  

image-20230917135524066

4.配置服务文件参数

前面讲述了 httpd 服务程序的安装和运行,但是距离我们真正的使用还有很多的配置。

在 Linux 系统中配置服务,其实就是修改服务的配置文件。因此,还需要知道这些配置文件的所在位置以及用途。httpd 服务程序的主要配置文件及存放位置。

服务目录:/etc/httpd

主配置文件 :/etc/httpd/conf/httpd.conf

网站数据目录 /var/www/html

访问日志 /var/log/httpd/access_log

错误日志 /var/log/httpd/error_log

在 httpd 服务程序的主配置文件中,存在 3 种类型的信息:注释行信息、全局配置、区域 配置

image-20230917140651063

全局配置参数就是一种全局性的配置参数,可作用于所有的子站点

区域配置参数则是单独针对每个独立的子站点进行设置的。

在 httpd 服务程序主配置文件中,最为常用的参数如下:

ServerRoot :服务目录

ServerAdmin :管理员邮箱

User :运行服务的用户

Group: 运行服务的用户组

ServerName :网站服务器的域名

DocumentRoot :网站数据目录

Listen :监听的 IP 地址与端口号

DirectoryIndex: 默认的索引页页面

ErrorLog :错误日志文件

CustomLog: 访问日志文件

Timeout :网页超时时间,默认为 300 秒

5.修改apache主页

DocumentRoot 参数用于定义网站数据的保存路径,其参数的默认值 是/var/www/html(即把网站数据存放到这个目录中);而当前网站普遍的首页面名称是 index.html,因此可以向/var/www/html/index.html 文件中写入一段内容,替换掉 httpd 服务程 序的默认首页面。该操作会立即生效。

image-20230917142248625

6.修改网站数据的目录

如果想把保存网站数据的目录修改为/home/wwwroot 目录

首先创建一个新的目录

[root@localhost ~]# mkdir /home/wwwroot
[root@localhost ~]# echo "this is a new /home/wwwroot" > /home/wwwroot/index.html

然后修改主配置文件

将用于网站数据保存路径的参数 DocumentRoot 修改为/home/wwwroot

同时也将定义目 录权限的参数 Directory 后面的路径也修改为/home/wwwroot

image-20230917144831187

最后重新启动httpd服务程序

[root@localhost ~]# systemctl restart httpd  #重启服务
[root@localhost ~]# systemctl status httpd   #查看httpd的服务状态

这时我们访问网站,是被禁止的,原因就是selinux未设置放行,下面进行配置selinux

7.配置selinux

SELinux(Security-Enhanced Linux)是美国国家安全局在 Linux 开源社区的帮助下开发 的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。Linux系统使用SELinux 技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

selinux 对服务程序的功能进行限制(SELinux 域限制可以确 保服务程序做不了出格的事情);对文件资源的访问进行限制(SELinux 安全上下文确保文件 资源只能被其所属的服务程序进行访问)

SELinux 服务有 3 种配置模式

  • enforcing:强制启用安全策略模式,将拦截服务的不合法请求。

  • permissive:遇到服务越权访问时,只发出警告而不强制拦截。

  • disabled:对于越权的行为不警告也不拦截。

虽然在禁用 SELinux 服务后 确实能够减少报错几率,但这在生产环境中相当不推荐。

vim /etc/selinux/config   #查看selinux的模式状态
get enforence             #也可以查看selinux的模式

image-20230917160044062

修改selinux的两种方法

1.直接修改配置文件,重启后永久生效

2.输入指令setenforce [0|1]命令修改 SELinux 当前的运行模式(0 为禁用,1 为启用),重启后失效,这是临时生效。

image-20230917160535469

httpd 服务程序的功能是允许用户访问网站内容,因此 SELinux 肯定会默认放行用户 对网站的请求操作。但是,我们将网站数据的默认保存目录修改为/home/wwwroot,这就 产生问题了。

/home 目录是用来存放普通用户的家目录数据的,而现在, httpd 提供的网站服务却要去获取普通用户家目录中的数据,这显然违反了 SELinux 的监 管原则。分别查看原始网站数据的保 存目录与当前网站数据的保存目录是否拥有不同的 SELinux 安全上下文值。

在 ls 命令中,-Z 参数用于查看文件的安全上下文值,-d 参数代表对象是个文件夹。

image-20230917161553263

两个文件夹的上下文信息不一致,导致我们的新的网页目录无法访问

SELinux 安全上下文是由用户段、角色段以及类型段等多个信息项共同组成的。其中,用户段 system_u 代表系统进程的身份,角色段 object_r 代表文件目录的角色, 类型段httpd_sys_content_t 代表网站服务的系统文件。

semanage 命令

semanage 命令用于管理 SELinux 的策略,英文全称为“SELinux manage”,语法格式为 “semanage [参数] [文件]”

参数说明
semanage -l查询
semanage -a添加
semanage -m修改
semanage -d删除

修改/home/wwwroot的上下文信息

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*

在执行上述设置之后,还无法立即访问网站,还需要使用 restorecon 命令将设置好的 SELinux 安全上下文立即生效。在使用 restorecon 命令时,可以加上-Rv 参数对指定的目 录进行递归操作,以及显示 SELinux 安全上下文的修改过程。

[root@localhost ~]# restorecon -Rv /home/wwwroot/
restorecon reset /home/wwwroot context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /home/wwwroot/index.html context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0

此刻算是网站数据目录才算修改成功,此时可以进行验证一下

[root@localhost ~]# curl 127.0.0.1
this is a new /home/wwwroot

3.个人主页功能

httpd 服务程序提供的个人用户主页功能,该功能可以让系统内所有的用户在自己 的家目录中管理个人的网站,而且访问起来也非常容易。

1.修改配置文件

在 httpd 服务程序中,默认没有开启个人用户主页功能。为此,我们需要编辑下面的配置文件/etc/httpd/conf.d/userdir.conf,在第 17 行的 UserDir disabled 参数前面加上井号(#),表示让 httpd 服务 程序开启个人用户主页功能;

同时再把第 24 行的 UserDir public_html 参数前面的井号(#) 去掉,表示网站数据在用户家目录中的保存目录名称,即 public_html 目录。最后,在修改完毕后记得保存。

/etc/httpd/conf.d/userdir.conf

image-20230918151426095

2.修改目录权限

在用户家目录中建立用于保存网站数据的目录及首页面文件。另外,还需要把家目录的权限修改为 755,保证其他人也有权限读取里面的内容。

[root@localhost ~]# su - xiaoliu
Last login: Mon Sep 18 23:18:49 CST 2023 on pts/0
[xiaoliu@localhost ~]$ mkdir public-html
[xiaoliu@localhost ~]$ echo "this is xiaoliu's html" > public-html/index.html
[xiaoliu@localhost ~]$ chmod -R 755 /home/xiaoliu/

3.修改selinux域规则

想要开启 httpd 服务的个人用户主页功能, 那么用到的 SELinux 域安全策略是 httpd_enable_homedirs

使用 getsebool 命令查询并过滤出所有与 HTTP 协议相关的安全策略。

其中,off 为禁止状态,on 为允许状态。

getsebool -a | grep httpd   #获取selinux的域规则

image-20230918163159579

setsebool -P httpd_enable_homedirs=on   #修改selinux的域规则
-P 参数,让修改后的 SELinux 策略规则永久生效且立即生效。

使用这个命令需要在root账户下进行,否则权限不足,无法执行这条命令

执行完后立即生效,可以进行,可以访问主页进行测试

4.修改文件的上下文
semanage fcontext -a -t httpd_sys_content_t /home/xiaoliu/ #修改文件的上下文信息
semanage fcontext -a -t httpd_sys_content_t /home/xiaoliu/*#修改目录下所有文件的上下文信息
restorecon -Rv /home/xiaoliu      #使SELinux 安全上下文立即生效 

5.访问测试

其格式为“网址/~用户名”(其中的波浪号是必需的,而且网址、波浪号、用户名之间没有空格)

curl 127.0.0.1/~xiaoliu

image-20230918191458324

6.个人主页加密

网站的拥有者并不希望直接将网页内容显示出来,而只想让通过身份验证的用户看到里面的内容,这时就可以在网站中添加密码功能了。

第一步:先使用 htpasswd 命令生成密码数据库。-c 参数表示第一次生成;后面再分别添 加密码数据库的存放文件,以及验证要用到的用户名称(该用户不必是系统中已有的本地 账户)。

image-20230918192727058

第二步:继续编辑个人用户主页功能的配置文件。把第 33~43 行的参数信息修改成下列内容,其中以井号(#)开头的内容为添加的注释信息,可将其忽略。随后保存并退出配置文 件,重启 httpd 服务程序即可生效。

vim /etc/httpd/conf.d/userdir.conf

image-20230918193601666

当用户再想访问某个用户的个人网站时,就必须输入账户和密码才能正常访问了。 另外,验证时使用的账户和密码是用 htpasswd 命令生成的专门用于网站登录的账户和密码, 而不是系统中的账户和密码,请不要搞错了。

第三步:重启服务验证

由于我的linux是精简版,无法显示图形化,所以显示以下内容也可证明加密成功

image-20230918194041073

总结:以上文章也只讲述了apache服务的基础功能搭建,如果是面向企业的部署服务器的话,还有基于主机的虚拟主机功能,包括基于IP地址,基于主机域名,基于端口的虚拟主机。利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服 务器”。

由于这个虚拟机没有图形化,后面的apache的访问控制,也无法展示,后续我会继续完成剩下的实验。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了搭建一个Linux运维政务平台,你可以按照以下流程进行: 1. 选择合适的Linux发行版:选择一个稳定、安全且适合政务应用的Linux发行版,如Ubuntu、CentOS等。 2. 安装操作系统:根据选择的Linux发行版,按照官方文档或参考在线教程进行操作系统的安装。 3. 系统配置:完成操作系统的安装后,需要进行一些基本的系统配置,如网络设置、防火墙配置等。 4. 安装必要的软件:根据政务平台的需求,安装必要的软件和服务,如Web服务器(如Nginx、Apache)、数据库(如MySQL、PostgreSQL)等。 5. 部署应用程序:根据政务平台的具体要求,进行应用程序的部署。这可能涉及到安装和配置各种应用程序和框架,如Java、Python等。 6. 数据库配置:根据政务平台的数据库需求,进行数据库的安装和配置。需要创建数据库、用户,并进行权限设置。 7. 安全设置:确保系统和应用程序的安全性。这包括使用合适的防火墙规则、加密通信、限制访问权限等。 8. 监控和日志:设置系统监控和日志记录机制,以便及时发现和解决问题。 9. 测试和优化:完成搭建后,进行测试和优化,确保平台的稳定性和性能。 10. 上线运维:将平台部署到生产环境后,进行持续的运维工作,包括系统更新、备份、故障排除等。 请注意,上述流程仅提供了一个基本的指导,具体的搭建流程可能因政务平台的具体需求而有所不同。建议在搭建过程中参考相关文档和教程,并根据实际情况进行适当调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值