首页 > 系统相关 >Linux —— 搭建Apache服务器

Linux —— 搭建Apache服务器

时间:2024-12-21 20:31:31浏览次数:7  
标签:文件 httpd SELinux 访问 Linux Apache 服务器 权限

一、基本概念

  1. 定义
    • Apache 服务器(全称 Apache HTTP Server)是一款开源的、跨平台的 Web 服务器软件。它通过 HTTP 协议提供网页服务,能够将存储在服务器上的网页文件(如 HTML 文件、图片、脚本等)发送给客户端(如浏览器)。
  2. 工作原理
    • 当客户端(例如浏览器)向服务器请求一个网页时,Apache 服务器接收请求,根据请求的 URL 找到对应的网页文件或其他资源,然后将这些资源通过 HTTP 协议发送回客户端。它使用模块化的架构,可以通过添加或删除模块来扩展或定制其功能。

二、特点

  1. 开源免费
    • Apache 服务器的源代码是公开的,任何人都可以免费使用、修改和分发。这使得它在成本控制方面非常有优势,尤其适合中小型企业和创业公司。
  2. 跨平台
    • 它可以在多种操作系统上运行,包括 Linux、Unix、Windows 等。这种跨平台特性使得用户可以根据自己的需求和环境选择合适的操作系统来部署 Apache 服务器。
  3. 高度可定制
    • 通过其丰富的模块系统,用户可以很容易地添加功能,如 SSL/TLS 加密(通过 mod_ssl 模块)、用户认证(如 mod_auth_basic 模块)、URL 重写(如 mod_rewrite 模块)等。

三、应用场景

  1. 网站托管
    • 大量的网站使用 Apache 服务器来托管其网页内容。无论是小型的个人博客,还是大型的商业网站,都可以基于 Apache 来提供稳定的网页服务。
  2. 企业应用
    • 在企业内部,Apache 服务器可以用于搭建内部的 Web 应用,如企业资源计划(ERP)系统、客户关系管理(CRM)系统等的前端界面,方便员工通过浏览器访问和使用这些应用。

四、安装服务进程

Apache的软件包和服务进程名称为httpd,由于CentOS Stream 9 操作系统已经默认安装了Apachen服务器(httpd),所以不需要再次去安装。

1、安装命令

2、设置启动和开机自启动

3、将http和https服务添加到防火墙中

因为我已经添加过了,所以显示Warning: ALREADY_ENABLED: http 表示尝试启用的HTTP功能已经被启用了

4、重启防火墙

在浏览器输入虚拟机的ip地址

五、修改Apachen的默认主页

1、Apachen网页数据默认存储在 /var/www/html 目录下的index.html

2、编辑文件

3、创建网页数据的保存目录和首页面文件

4、编辑配置文件

设置行号:set nu

修改第124行为:

修改129~133为:

然后保存退出

5、重启httpd服务

6、浏览器输入对应的ip地址(每个人都不同,根据自己的ip地址访问)

当你看到 “Forbidden. You don't have permission to access this resource.” 这个错误信息时,这通常意味着你试图访问的资源受到了权限限制 —— 我们需要修改SELinux

7、禁用SELinux

SELinux(Security - Enhanced Linux)即安全增强型 Linux,是一种基于 Linux 内核的强制访问控制(MAC)安全机制。

基本原理

  1. 访问控制
    • SELinux 在传统的 Linux 自主访问控制(DAC)基础上增加了强制访问控制。在 DAC 中,资源的所有者可以决定谁可以访问该资源;而在 MAC 机制下,系统根据安全策略来决定主体(如进程)是否能够访问客体(如文件、套接字等),用户对访问控制的决定权受到限制。
    • 例如,即使一个用户拥有对某个文件的读写权限(在 DAC 下),但如果 SELinux 的安全策略不允许该用户对应的进程访问这个文件,访问也会被拒绝。
  2. 安全策略
    • SELinux 通过加载安全策略来实现对系统资源的保护。这些策略定义了不同类型的主体和客体之间的允许访问关系。
    • 策略一般由安全管理员制定,并在系统启动时加载到内核中。常见的策略类型有 targeted(目标策略,只对部分关键进程进行保护)和 strict(严格策略,对所有进程实施强制访问控制)。

主要作用

  1. 增强系统安全性
    • 防止恶意软件或被攻破的进程滥用权限。即使攻击者获得了一个具有一定权限的进程控制权,由于 SELinux 的限制,他们也难以访问没有被策略允许的系统资源。
    • 例如,一个网络服务进程如果被攻击,在没有 SELinux 的情况下,它可能能够读取系统中的任意文件;而在有 SELinux 的系统中,它只能访问 SELinux 策略允许的特定文件。
  2. 最小权限原则
    • 确保每个进程只拥有完成其任务所必需的最小权限。这样可以减少因进程权限过大而带来的安全风险。
    • 例如,一个打印服务进程只被允许访问与打印相关的文件和设备,而不能访问网络配置文件等无关资源。

执行操作

setenforce 0命令用于将SELinux的执行模式设置为宽容模式

getenforce命令用于显示当前SELinux(Security-Enhanced Linux)的执行模式

Permissive:放任的

重新打开页面

六、搭建个人Wed站点

搭建个人Web站点是指创建一个属于个人的互联网网站,用于展示个人信息、分享知识、作品或提供网络服务等

1、修改home的权限

后面是个人的用户名!!!每个人都不一样

chmod是 “change mode”(改变模式)的缩写,它是一个用于改变文件或目录权限的 Linux 命令。

755是权限模式。在 Linux 中,权限通常用数字表示,每个数字对应一组权限(读、写、执行),分别针对文件所有者、所属组和其他用户。

  • 第一位数字7对应文件所有者的权限。在八进制中,7表示rwx(读、写、执行)权限,即文件所有者有读、写和执行该文件或目录的权限。
  • 第二位数字5对应文件所属组的权限。在八进制中,5表示r - x(读、执行)权限,即文件所属组有读和执行该文件或目录的权限,但没有写权限。
  • 第三位数字5对应其他用户的权限,同样表示r - x(读、执行)权限,即其他用户有读和执行该文件或目录的权限,但没有写权限。

2、创建个人页面

3、修改Apachen的Wed站点

Apachen服务器默认没有开启个人Wed站点搭建功能,我们需要对文件进行修改

3.1 注释掉17行

17行是禁用访问其家目录中的内容,注释掉则取消

3.2 取消24行的注释

24行是默认访问主目录html

3.3 修改31行

31行是修改home下的管理、控制权限

4、修改Apachen配置文件

因为Apachen的默认文件是index.html,而我们的个人Wed文件是yinzhen.html

在后面添加yinzhen.html

5、禁用SELinux,重启httpd服务

七、配置基于域名的虚拟主机

1、创建目录文件,写入内容

2、新建 /etc/httpd/conf.d/vhost.conf 配置文件

使用<VirtualHost></VirtualHost>标签为虚拟主机配置域名和访问目录。

3、客户端访问

为了使客户端也可以访问虚拟主机目录,需要在/etc/httpd/conf/httpd.conf主配置文件中设置虚拟主机目录的访问权限。在/etc/httpd/conf/httpd.conf主配置文件中添加一个<Directory>

在底部添加即可

4、配置主机域名

打开本地电脑C:\Windows\System32\drivers\etc,修改hosts文件,如果没有此文件就新建,或者把host修改为hosts

根据自己的ip和设置的域名添加

5、在虚拟机重启httpd服务器

6、使用域名打开(本地)

标签:文件,httpd,SELinux,访问,Linux,Apache,服务器,权限
From: https://blog.csdn.net/CNY8888/article/details/144625935

相关文章

  • 在Linux系统上安装KVM(Kernel-based Virtual Machine)
    在Linux系统上安装KVM(Kernel-basedVirtualMachine)通常与安装libvirt一起进行,因为libvirt提供了对KVM的抽象和管理。以下是在基于Debian(如Ubuntu)和基于RPM(如CentOS/RHEL)的系统上安装KVM的步骤:基于Debian的系统(如Ubuntu) 1.更新包列表:【bash】sudoaptupdate 2.安......
  • Linux 中检查 Apache Web Server (httpd) 正常运行时间的 4 种方法
    注:机翻,未校。4WaysToCheckUptimeofApacheWebServer(httpd)onLinuxNovember28,2019byMageshMaruthamuthuWeallknowaboutthepurposeofuptimecommandinLinux.我们都知道Linux中uptime命令的目的。ItisusedtochecktheuptimeoftheL......
  • ARM云手机服务器怎么做到虚拟多台云手机的?
    很多小伙伴问这几年在游戏行业特别是手游市场大热的云手机对比实体手机到底有哪些优劣。云手机是架设在arm虚拟服务器上的手机,和实体手机比起来,它有缺点也有优点。我们先来详细分析一下优点:1、应用不占内存用实体手机应用是要下载到手机自带的内存里的。爱玩手机游戏的人总......
  • 如何检查服务器是否满足宝塔面板的安装要求?
    在安装宝塔面板之前,需要确保服务器满足其最低系统要求。以下是检查服务器是否满足宝塔面板安装要求的具体步骤:检查内存:命令:bash free-m说明:该命令会显示系统的总内存、已用内存和空闲内存。确保总内存大于512MB,推荐768MB以上。检查硬盘空间:命令:bash ......
  • Linux学习笔记(二) vi/vim快速入门
    Linux系统会内置vi文本编辑器。vim具有程序编辑的能力,可以看作是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。下面将介绍:1.vim打开或创建文件的方法。2.vim的三种工作模式。3.v......
  • RHCE-第六章:DNS域名解析服务器
    一、DNS简介DNS(DomainNameSystem)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这......
  • 大型数据库应用技术:实验1 熟悉常用的Linux操作和Hadoop操作
    实验1熟悉常用的Linux操作和Hadoop操作1.实验目的Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3。3.......
  • Linux Mail 功能解析
    在Linux系统中,mail命令是用于发送、接收和管理电子邮件的一个常见工具。它通常是系统默认安装的一部分,主要用于命令行界面(CLI)下的邮件操作。以下是关于Linux中mail命令及其相关功能的详细解析。1.基本功能:发送邮件:用户可以通过mail命令发送邮件。接收邮件:mail命令......
  • Disk2vhd 是一个由 Microsoft 提供的工具,允许用户将物理磁盘或分区转换为虚拟硬盘(VHD)
    Disk2vhd-Sysinternals|MicrosoftLearn Disk2vhd是一个由Microsoft提供的工具,允许用户将物理磁盘或分区转换为虚拟硬盘(VHD)文件。它的名字中,"Disk"表示物理磁盘,而"VHD"是指虚拟硬盘(VirtualHardDisk)。该工具可以帮助用户将物理机上的整个磁盘映像(包括操作系统、应用......
  • Linux 环境 c++ 实现单词数量统计
    g++的使用g++的安装升级#安装gccsudoapt-getinstallgcc#安装g++sudoapt-getinstallg++c++编译g++-o【生成目标文件名】【c++代码源文件】命令行传参使用命令行传参时使用此main函数argc表示传入参数个数argv用来访问参数,0为程序的名称,1到argc-1......