在linux上架设Web服务器Apache(Ubuntu)

在这里插入图片描述

欢迎诸位来阅读在下的博文~
在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力!
江山如画,客心如若,欢迎到访,一展风采

文章目录

      • 背景
      • 1. 安装 Apache
      • 2. 启动和检查 Apache 服务
      • 3. 配置防火墙
      • 4. 配置虚拟主机
      • 5. 启用虚拟主机并重启 Apache
      • 6. 配置域名解析(可选)
      • 7. 设置 HTTPS(可选)
      • 8. 检查配置
      • 9. 访问网站

背景

Apache 是一个开源的网页服务器软件,它的正式名称为 Apache HTTP Server。它是世界上最流行的网页服务器软件之一,由 Apache 软件基金会(Apache Software Foundation)维护。Apache 服务器可以在多种操作系统上运行,包括 Unix、Linux、Windows、Mac OS X 等。
Apache HTTP Server 的主要特点包括:

  1. 开源性质:Apache 是免费的,并且其源代码可以被任何人查看、修改和分发。
  2. 稳定性与可靠性:Apache 服务器因其稳定性和可靠性而闻名,能够处理大量的网络请求。
  3. 可扩展性:Apache 支持多种模块,这些模块可以动态加载,以扩展服务器的功能。
  4. 配置灵活:Apache 的配置文件(通常是 httpd.conf)非常灵活,允许管理员根据需要调整服务器设置。
  5. 支持多种平台:Apache 可以在不同的操作系统平台上运行,具有很好的跨平台兼容性。
  6. 安全性:Apache 拥有良好的安全记录,并且经常更新以修复已知的安全漏洞。
  7. 社区支持:由于 Apache 的广泛使用,它拥有一个庞大的开发者社区,可以为用户提供支持和帮助。
    Apache 服务器通常用于以下场景:
  • 静态内容服务:提供 HTML、图片、CSS、JavaScript 等静态文件。
  • 动态内容服务:通过模块如 mod_php、mod_perl、mod_python 等,支持动态内容生成。
  • 代理服务器:作为反向代理,为后端服务器提供缓存和负载均衡功能。
  • 虚拟主机:在同一台服务器上支持多个网站,每个网站拥有独立的域名和配置。
    Apache HTTP Server 的配置和使用通常需要一定的技术知识,但它的灵活性和强大的功能使其成为许多网站管理员的首选网页服务器软件。

在 Ubuntu 系统上配置 Apache Web 服务器可以分为几个步骤,包括安装 Apache、配置虚拟主机、设置防火墙规则等。下面是详细的步骤:

1. 安装 Apache

首先,需要在系统上安装 Apache:

sudo apt update
sudo apt install apache2

2. 启动和检查 Apache 服务

安装完成后,启动 Apache 服务并设置为开机自启:

sudo systemctl start apache2
sudo systemctl enable apache2

你可以使用以下命令检查 Apache 服务的状态:

sudo systemctl status apache2

3. 配置防火墙

如果系统中使用了 ufw 防火墙,你需要允许 Apache 服务通过防火墙:

sudo ufw allow 'Apache'

检查防火墙状态,确认规则已经生效:

sudo ufw status

4. 配置虚拟主机

Apache 使用虚拟主机(Virtual Hosts)来管理多个网站。默认的虚拟主机配置文件位于 /etc/apache2/sites-available/000-default.conf
可以复制默认配置文件来创建新的虚拟主机:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

编辑新的虚拟主机文件:

sudo nano /etc/apache2/sites-available/example.com.conf

将文件内容修改为以下内容:

<VirtualHost *:80>ServerAdmin webmaster@example.comServerName example.comServerAlias www.example.comDocumentRoot /var/www/example.comErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  • ServerAdmin: 管理员邮箱。
  • ServerName: 你的域名。
  • ServerAlias: 其他别名,例如 www.example.com
  • DocumentRoot: 网站的根目录。

然后创建软链接:
在 /etc/apache2/sites-enabled/ 目录下,输入以下命令:

sudo ln -s ../sites-available/www.example.com.conf  www.example.com.conf

接下来,创建网站根目录:

sudo mkdir -p /var/www/example.com

设置目录权限:

sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www

你可以在 DocumentRoot 目录下创建一个简单的 index.html 文件来测试:

echo '<h1>Hello, World!</h1>' | sudo tee /var/www/example.com/index.html

5. 启用虚拟主机并重启 Apache

启用新的虚拟主机:

sudo a2ensite example.com.conf

禁用默认虚拟主机(可选):

sudo a2dissite 000-default.conf

重启 Apache 服务使更改生效:

sudo systemctl reload apache2

6. 配置域名解析(可选)

如果你想通过域名访问本地服务器,可以在 /etc/hosts 文件中添加一条记录(仅用于本地测试):

sudo nano /etc/hosts

添加以下内容:

127.0.0.1    example.com www.example.com

如果你有自己的ip地址,那么可以按照上面的格式进行:
IP地址 域名

7. 设置 HTTPS(可选)

为了提高安全性,你可以配置 HTTPS。使用 Let's Encrypt 这样的免费证书服务可以轻松地为网站配置 HTTPS。
首先,安装 Certbot 和 Apache 插件:

sudo apt install certbot python3-certbot-apache

然后,运行以下命令为你的域名获取证书并自动配置 HTTPS:

sudo certbot --apache -d example.com -d www.example.com

8. 检查配置

你可以使用 Apache 自带的配置测试工具来检查是否有配置错误:

sudo apache2ctl configtest

如果配置正确,你会看到 Syntax OK 的提示。

9. 访问网站

现在,打开浏览器并访问 http://example.comhttps://example.com(如果配置了 HTTPS),你应该会看到刚才创建的 index.html 页面。
至此,Apache 在 Ubuntu 系统上的基本配置就完成了。

在这里插入图片描述
望诸位不忘三连支持一下~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强烈推荐这三款IOS应用,让你的生活更美好

Dino记账 Dino记账是一款结合了简洁设计和强大功能的记账应用&#xff0c;它通过多维度图表帮助用户轻松掌握金钱流向。应用界面明亮且配色突出&#xff0c;使得记录内容易于阅读&#xff0c;让记账和管理账目变得更加简单。 主要特性&#xff1a; 极简风格与易用性&#xff1…

掌握 Spring Boot + MyBatis-Plus 动态数据源切换,只要5分钟!

数据量猛增&#xff0c;通过动态数据源切换&#xff0c;我们不仅能提高查询效率&#xff0c;还能保证系统的高可用性。 通过将写操作集中在主库&#xff0c;读操作分散到多个从库&#xff0c;可以有效减轻数据库的压力。 在pom.xml中添加以下依赖&#xff1a; xml <depend…

Qt系统机制

Qt系统 Qt文件概述输入输出设备类QFileQFileInfoQt多线程Qt多线程常用API使用Qt多线程 线程安全互斥锁读写锁条件变量信号量 Qt网络QUdpSocketQNetworkDatagram设计一个UDP回显服务器QTcpServerQTcpSocketTcp版本的回显服务器HttpClient核心API Qt 音频Qt视频 Qt文件概述 ⽂件操…

入门Pandas必练习100题基础到进阶|阶级教程2

作者:郭震 51. How to get the row number of the nth largest value in a column? Find the row position of the 5th largest value of column a in df. # input df pd.DataFrame(np.random.randint(1, 30, 30).reshape(10,-1), columnslist(abc)) df# Solution 1# argsort…

HEML+CSS超详细基础知识

一些快捷键 ctrl/ 是注释 ctrld 是选中多个相同字 ctrls保存 altZ自动换行 altshift选中多行 HTML认知 基础认知 html初尝试 HTML页面结构介绍 初次尝试 开始动手写一个网页 先新建一个文件&#xff0c;记得后缀要命名成html 然后shift&#xff01;&#xff0c;就会自动…

《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-01-层次式体系结构概述

文章目录 1. 常用层次是架构2. 层次式架构设计的注意点2.1 污水池反模式2.2 应用变得庞大 本章教材又赘述了一遍架构的定义和层次架构风格的概述&#xff0c;我之前的笔记都写了 架构的定义回看《第7章-系统架构设计基础知识-01-软件架构&#xff08;Software Architecture&…

学习测试15-实战6-根据说明书建工程

CAN协议说明书&#xff1a;含义 一&#xff0c;得到表 1&#xff0c;先建信号 2&#xff0c;建报文&#xff0c;将对应信号拖入其中 3&#xff0c;建节点&#xff0c;将报文添加进TX msg里 调整起始位 数据库建立完成 二&#xff0c;不需要面板&#xff0c;直接导入数据库&…

HTTPS证书价格一年多少钱?如何购买?

目前市面上所有免费一年期HTTPS已经全部下架&#xff0c;付费证书已经成为主流。HTTPS证书的价格受多种因素影响&#xff0c;具体有以下几种&#xff1a; 一、证书类型 单域名证书价格一般在几百元左右&#xff0c;通配符价格高一些&#xff0c;千元以上&#xff0c;多域名价…

《知识点扫盲 · Redis 序列化器》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

米家护眼台灯怎么样?书客、米家、明基三款护眼台灯大PK

市面上出现的护眼台灯款式不得不说真的很多&#xff0c;大家若是想要在护眼台灯这个大市场里选购到一款性价比高、质量过关、口碑好且还真的实用的护眼台灯需要认真做好攻略。所以&#xff0c;我们要有技巧的对这些台灯进行筛选&#xff0c;避开那些三无的、网红品牌、无知名度…

http协议与nginx

动态页面与静态页面的差别&#xff1a; &#xff08;1&#xff09;URL不同 静态⻚⾯链接⾥没有“?” 动态⻚⾯链接⾥包含“&#xff1f;” &#xff08;2&#xff09;后缀不同 (开发语⾔不同) 静态⻚⾯⼀般以 .html .htm .xml 为后缀 动态⻚⾯⼀般以 .php .jsp .py等为后…

【吊打面试官系列-Dubbo面试题】Dubbo SPI 和 Java SPI 区别?

大家好&#xff0c;我是锋哥。今天分享关于 【Dubbo SPI 和 Java SPI 区别&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Dubbo SPI 和 Java SPI 区别&#xff1f; JDK SPI JDK 标准的 SPI 会一次性加载所有的扩展实现&#xff0c;如果有的扩展吃实话很耗时&…

Python中的类型注解和静态类型检查使用详解

概要 Python作为一种动态类型语言,其灵活性和易用性使其广受欢迎。然而,动态类型也带来了一些问题,如代码可读性差和运行时错误等。为了提高代码质量和可维护性,Python从3.5版本开始引入了类型注解(Type Hints),并且借助第三方工具可以实现静态类型检查。本文将详细介绍…

Python学生信息管理系统

一、需求分析 学生管理系统应具备的功能 1、添加学生及成绩信息 2、将学生信息保存到文件中 3、修改和删除学生信息 4、查询学生信息 5、根据学生成绩进行排序 6、统计学生的总分 二、系统设计 2.1、学生信息管理系统的系统功能结构&#xff08;7大模块&#xff09; 1、录入…

vue里给img的src绑定数据失效

起因 在v-for遍历数据时想要通过给img的src单向绑定 图片路径时出现问题 解决过程 上网查说是webpack构建时识别不到&#xff0c;直接不单绑数据&#xff0c;写死试试看 解决方案 直接require导入图像文件模块

AI Agent调研--7种Agent框架对比!盘点国内一站式Agent搭建平台,一文说清差别!大家都在用Agent做什么?

代理&#xff08;Agent&#xff09;乃一种智能实体&#xff0c;具备自主环境感知与决策行动能力&#xff0c;旨在达成既定目标。作为个人或组织之数字化替身&#xff0c;AI代理执行特定任务与交易&#xff0c;其核心价值在于简化工作流程&#xff0c;削减繁复性&#xff0c;并有…

MSPM0G3507之电赛小车

一、前言 本文没什么技术分享&#xff0c;纯聊天。以下内容均为笔者的浅薄理解&#xff0c;有不对的地方还请多多包涵。 二、相关配置 主控单元&#xff1a;MSPM0G3507SPTR&#xff08;48角&#xff09; 编译环境&#xff1a;Keil5.33、5.39&#xff08;推荐&#xff09;都可 …

Redisson关键参数含义介绍

一、threads&#xff08;线程池数量&#xff09; 对应executor&#xff08;线程池&#xff09; 默认值: 当前处理核数量 * 2 这个线程池数量被所有RTopic对象监听器&#xff0c;RRemoteService调用者和RExecutorService任务共同共享。 二、nettyThreads &#xff08;Netty线…

数据结构与算法-关于堆的基本排序介绍

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、堆排序…

Springboot使用Redis实现分布式锁

1、使用场景和实现方案&#xff1a; 使用场景&#xff1a;本地锁如Lock和Syncronized只能锁住本地进程&#xff0c;在分布式应用中&#xff0c;需要使用分布式锁来更好实现特定的业务。 实现方案&#xff1a;有多种&#xff0c;比如使用mysql、zookeeper、redis&#xff0c;各…