Linux —— 搭建Apache服务器

news/2024/12/23 2:55:23 标签: 服务器, linux, apache, 运维, vim, 编辑器

一、基本概念

  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、使用域名打开(本地)


http://www.niftyadmin.cn/n/5796239.html

相关文章

OpenAI发布全新AI模型 o3 与 o3-mini:推理与编码能力迎来重大突破. AGI 来临

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

鸿蒙UI开发——组件滤镜效果

1、概 述 ArkUI为组件提供了滤镜效果设置&#xff0c;背景滤镜、前景滤镜、合成滤镜。我们可以通过以下方式为组件设置对应的滤镜效果。 Text(前景滤镜)// ..其他属性.foregroundFilter(filterTest1) // 通过 foregroundFilter 设置模糊效果Text(背景滤镜)// ...其他属性.bac…

Python 写的 《监控视频存储计算器》

代码&#xff1a; import tkinter as tk from tkinter import ttk import math from tkinter.font import Fontclass StorageCalculator:def __init__(self, root):self.root rootself.root.title("监控视频存储计算器")self.root.geometry("600x800")s…

[JavaScript] 我该怎么去写一个canvas游戏

首先你得知道canvas的基础语法&#xff0c;此处不过多赘述. 一、如何更新视图 canvas里面有个clearRect方法&#xff0c;可以遮住画布中一个矩形部分. 但是你想这样做就难免会遮住一些本不该遮住的东西&#xff0c;因为它是一个矩形&#xff0c;并且你还要计算它的位置和尺寸…

【Mysql】函数有哪些

mysql函数有哪些&#xff1f; MySQL 提供了许多内置函数&#xff0c;用于执行各种操作&#xff0c;包括字符串处理、日期时间操作、数学计算、数据转换等。以下是一些常用的 MySQL 函数分类及其示例&#xff1a; 字符串函数 CONCAT(str1, str2, ...)&#xff1a;将多个字符串…

Kubernetes(K8s)学习笔记

一、引言 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排和管理平台&#xff0c;由Google主导开发&#xff0c;旨在自动化容器化应用程序的部署、扩展和管理。K8s以其强大的功能、高度的可扩展性和广泛的社区支持&#xff0c;已成为现代云原生应用架构的核心…

火山引擎FORCE:智算能力全面升级

火山引擎智算专场 &#xff1a; 有幸参加 2024年 12月18日 在 上海国际博览中心 15&#xff1a;00~17&#xff1a;00的 智算专场。 这里 火山引擎智算专场图片 &#xff1a; 火山引擎智算专场内容 &#xff1a; 火山引擎图片 智算专场&#xff1a;乘云之势&#xff0c;智启未…

设计模式の享元模板代理模式

文章目录 前言一、享元模式二、模板方法模式三、代理模式3.1、静态代理3.2、JDK动态代理3.3、Cglib动态代理3.4、小结 前言 本篇是关于设计模式中享元模式、模板模式、以及代理模式的学习笔记。 一、享元模式 享元模式是一种结构型设计模式&#xff0c;目的是为了相似对象的复用…