如何在 Ubuntu 18.04 LTS 上安装和配置 Apache

2023-11-15

本教程将帮助您在 Ubuntu 18.04 LTS Linux 操作系统上安装并保护 Apache Web 服务器。

先决条件

  • 通过 SSH 访问 Ubuntu 18.04
  • SUDO特权

在 Ubuntu 18.04 上安装 Apache

首先,通过 SSH 登录 Ubuntu 18.04 系统并更新 Apt 缓存。然后安装 Apache2 HTTP 服务器包,如下所示:


sudo apt update
sudo apt install apache2
  

要安装最新版本的 Apache,请使用以下 PPA。


sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
sudo apt install apache2
  

管理 Apache 服务

Apache 服务通过 systemctl 命令行进行管理。安装完成后,使用以下命令检查Apache服务的状态。


sudo systemctl status apache2.service
  

以下是通过命令行停止、启动或重新启动 Apache 服务的其他命令。


sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl restart apache2.service
  

测试 Apache 设置

使用以下命令查看 Ubuntu 18.04 Linux 系统上安装的 Apache 版本。


apache2 -v

Server version: Apache/2.4.41 (Ubuntu)
Server built:   2019-10-15T19:53:42
  

现在使用服务器的 IP 地址或指向服务器 IP 的域访问您的 Apache 服务器。您将在 Web 浏览器上看到默认的 Apache 页面。这意味着 Apache Web 服务器已成功安装在您的 Ubuntu 18.04 系统上。

创建新的虚拟主机

让我们在 Apache 服务器上创建第一个虚拟主机。在本教程中,我们使用示例域“example.com”。这里我们将在端口 80 上创建一个虚拟主机 example.com。

创建目录并在目录中创建示例索引文件:


sudo mkdir -p /var/www/example.com
sudo echo "Welcome" > /var/www/example.com/index.html
  

然后创建虚拟主机配置文件并在编辑器中编辑:


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

在配置文件中添加以下内容。您可以根据您的域更改域名。

1
2
3
4
5
6
7
8
9
10
11
12
<虚拟主机 *:80>
服务器管理员 admin@example.com
文档根目录 /var/www/example.com
服务器名称 example.com
服务器别名 www.example.com
    <目录 /var/www/example.com>
#Allowoverride all    ###Uncomment if required
    </目录>
 
错误日志 ${APACHE_LOG_DIR}/example.com_错误.log
自定义日志 ${APACHE_LOG_DIR}/example.com_访问.log combined
</虚拟主机>

保存 Virtualhost 配置文件,然后启用 Virtualhost 并使用以下命令重新加载 Apache 服务:


sudo a2ensite example.com
sudo systemctl reload apache2.service
  

配置 SSL 虚拟主机

如果不需要 SSL,可以跳过此步骤。但安全始终是任何网站的首要任务。

默认 Apache https 侦听端口 443。确保没有其他服务使用同一端口。现在,您需要启用 Apache ssl 模块,默认情况下该模块是禁用的。


sudo a2enmod ssl
  

对于教程,我遵循这些说明为我们的域生成自签名 SSL 证书。

然后创建一个新的虚拟主机文件并编辑它:


sudo vim /etc/apache2/sites-available/example.com_ssl.conf
  

包含以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<虚拟主机 *:443>
服务器管理员 admin@example.com
文档根目录 /var/www/example.com
服务器名称 example.com
服务器别名 www.example.com
    <目录 /var/www/example.com>
#Allowoverride all    ###Uncomment if required
    </目录>
 
SSL引擎 on
SSL证书文件 /etc/pki/tls/certs/example.com.crt
SSL证书密钥文件 /etc/pki/tls/certs/example.com.key
错误日志 ${APACHE_LOG_DIR}/example.com_ssl 错误.log
自定义日志 ${APACHE_LOG_DIR}/example.com_ssl-访问.log combined
</虚拟主机>

以下是用于配置 SSL 虚拟主机的三个术语:

  • SSL 引擎 –将其设置为“开”
  • SSL 证书文件 –设置您的 SSL 证书的路径
  • SSLCertificateKeyFile –这是用于生成 SSL 证书的私钥文件

之后启用虚拟主机并使用以下命令重新加载 Apache 服务:


sudo a2ensite example.com_ssl
sudo systemctl reload apache2.service
  

安全的 Apache 服务器

编辑 Apache 安全配置文件


sudo vim /etc/apache2/conf-enabled/security.conf
  

这是多个安全相关的设置。添加或更新以下设置。我们不会详细描述它,但这些设置对于生产服务器非常有用。

1
2
3
4
5
6
7
8
服务器令牌 Prod
服务器签名 Off
跟踪使能 Off
Header always append X 框架选项 同源
Header always set X-XSS-保护: “1;模式=块”
Header always set X-内容类型选项: “嗅嗅”
Header always set 严格的运输安全 “最大年龄=31536000;包括子域”
Header always edit 设置Cookie ^(.*)$ $1;HttpOnly;Secure

现在编辑 SSL 配置文件。您可以在此处设置服务器范围的 SSL 协议和 SSLCipherSuite,以使用安全 Cipers 为您的网站提供服务。


sudo vim /etc/apache2/mods-enabled/ssl.conf
  
1
2
SSL协议 -all +TLSv1.2
SSL密码套件 HIGH:!aNULL:!MD5

进行更改后,重新启动 Apache 服务以应用新配置。


sudo systemctl reload apache2.service
  

结论

全部完成后,您已经在 Ubuntu 18.04 Bionic Linux 系统上安装并保护了 Apache 服务器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 18.04 LTS 上安装和配置 Apache 的相关文章

  • 何时使用 Apache 与 Apache+Tomcat?

    既然简单地使用 Apache 就足以运行许多 Web 应用程序 那么除了 Apache 之外 人们何时以及为何还使用 Tomcat 阿帕奇雄猫 http tomcat apache org是 Web 服务器和 Java servlet 容器
  • 查询字符串的 nginx 位置正则表达式

    我想将带有特定查询字符串的直接到达我的服务器的任何内容重定向到同一域中的其他位置 如果用户来到 http www mydomain com abc js9sd70s 我想将其重定向到 http www mydomain com otherp
  • composer.lock 中的 shasum 是什么? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想升级包框架 我修改了我的composer lock 但我不明白沙苏姆 dist type zip url http www packag
  • Rails:关系 schema_migrations 的权限被拒绝

    我正在尝试为 Ruby on Rails Web 应用程序设置本地生产环境 我可以运行该应用程序rails server命令 它提供了开发环境 我尝试设置的生产环境纯粹是本地的 我按照本教程使用 apache 2 设置它 https www
  • 在 http 和 https 上运行 Gunicorn

    当我启动 Gunicorn 服务时 我当前使用以下命令来启动它 gunicorn certfile Projects thebodyofchrist us crt keyfile Projects thebodyofchrist us ke
  • 该程序无法启动,因为您的计算机缺少 MSVCR110.dll

    我正在尝试将 apache 服务器 2 4 安装到我的 Windows 计算机上 到目前为止我遇到了这个 常见 问题 但我无法解决它 标题中的错误消息继续出现 但我已经 成功 下载了缺少的必需项目的 32 位和 64 位版本http www
  • 在 Ubuntu WSL2 上连接到本地主机的问题

    我在本地为 django 项目设置了 Apache2 服务器 并且运行得非常好 问题是 休息一天后我回到它并尝试连接到服务器 但不知何故我无法连接到它 即使在检查 apache 服务是否正在运行并重新加载配置以确保确定之后也是如此 我无法从
  • HTTP 413 请求实体太大

    我目前无法在 drupal 7 7 15 中的自定义文件字段上使用 Drupal FileField Source 远程 url 选项 发布非常大的文件 文件已成功上传到 tmp 目录 但在尝试发布时失败 文件大小为870Mb A 510m
  • PHP 5.3.3 中的 ini_set("memory_limit") 根本不起作用

    我之前有过这样的工作 echo ini get memory limit n ini set memory limit 256M echo ini get memory limit n 这将输入 32M 256M 在通过命令行执行的 php
  • Gitlab6.0和Apache2

    请问如何使用Apache2设置Github 6 0 按照原来的说明安装Gitlab Unicorn rb 中的调整 listen home git gitlab tmp sockets gitlab socket backlog gt 64
  • Web 服务器内置 Azure 应用服务

    背景 我正在托管一个静态 Web 应用程序 由 NUXTJS 在 Azure 应用服务上生成 现在我想通过以下方式配置更多内容web config比如为多个域设置 CORS 设置 但我找不到任何文档来确定 Azure 应用程序服务中集成 安
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定
  • Bitnami:如何在 Apache2 中配置 GitLab 5.0 应用程序而不具有相对根目录?

    或者如何使 GitLab 应用程序作为 Apache2 HTTP 服务器上的根应用程序 我以前没有使用过 Apache2 但是我得到了Bitnami GitLab 虚拟机 http bitnami com stack gitlab virt
  • 如何在不重新启动 apache 的情况下重新加载站点的 apache 配置?

    我已经编辑了变量允许覆盖我的网站之一站点启用目录 如何在不重新启动 apache 的情况下重新加载新配置 是否可以 使用命令应该可以 sudo etc init d apache2 reload
  • 如何使用链接本地 IPv6 地址访问 Web 服务器或网站?

    以下是托管 Web 服务器的计算机的 ipconfig 输出 以太网适配器本地连接 连接特定的 DNS 后缀 链路本地 IPv6 地址 fe80 f85b 4256 ee76 24a4 11 IPv4 地址 10 213 254 119 子
  • Tomcat 8 上的 PHP

    我找到了很多如何让 PHP 在 Tomcat 上运行的指南 但都是以前的版本 我尝试了所有这些 但我所能显示的只是一个空白页面 并且代码仍然没有被触发 我知道 Tomcat 是为 Java 应用程序而不是 PHP 构建的 但我需要找到一种使
  • 有没有一种方法可以在不停机的情况下更新 net/http 服务器中的 TLS 证书?

    我有一个简单的 https 服务器 提供一个简单的页面 如下所示 为简洁起见 没有错误处理 package main import crypto tls fmt net http func main mux http NewServeMux
  • Docker 中的 NGINX 缓存 IP 地址并提供错误的 Content-Type

    Summary 我想让NGINX 不是NGINX Plus 通过使用变量从DNS名称重新解析IP地址proxy pass 如建议的这篇 Nginx 官方文章 在变量中设置域名 部分 https www nginx com blog dns
  • UNIX/MacOS 上静态文件的“临时 Web 服务器”?

    是否有一个像小型网络服务器这样的东西 我可以从命令行调用它 只从本地文件系统获取文件并通过特定端口上的 HTTP 为它们提供服务 我希望能够做这样的事情 cd Sites mysite serve 10 0 1 1 8080 这应该会启动一
  • 在 Ubuntu 中执行 .cgi 文件

    我在 Ubuntu 下运行 Apache PHP 当我运行 cgi 文件时 通过http localhost mycgi cgi 浏览器将显示代码而不是运行它 如何让浏览器执行 CGI 文件而不是显示其内容 将这些行添加到您的 apache

随机推荐

  • Spring 循环依赖的三级缓存

    在Spring Bean 的生命周期中 里面有一步就是填充属性 而填充属性之前会判 属性对象是否被当前对象循环依赖 当发现属性对象被循环依赖的时候会进行aop 被命中 并且生成属性对象的代理对象 未命中目标对象 循环依赖是如何形成的 当 对
  • 基于PSIM及其DLL模块的单相全桥并网逆变器仿真

    摘要 本文简单地介绍了单相全桥并网逆变器的闭环控制原理 利用PSIM软件来进行仿真实验 关键词 单相 闭环控制 PSIM DLL 锁相环 过零检测 进网电流反馈 SPWM 因在研究过程中参考的不少文献忘记标记了 所以无法一一列出 如有侵权
  • 【elasticsearch】ES 单分片使用 From/Size 分页遇到重复数据

    1 概述 ES 单分片使用 From Size 分页遇到重复数据 常规情况下 ES 单分片使用 From Size 是不会遇到数据重复的 数据重复的可能原因有 没有添加排序 添加了按得分排序 但是查询语句全部为 filter 过滤条件 此时
  • SpringSecurity常见面试题汇总(超详细回答)

    1 什么是Spring Security 核心功能 Spring Security是一个基于Spring框架的安全框架 提供了完整的安全解决方案 包括认证 授权 攻击防护等功能 其核心功能包括 认证 提供了多种认证方式 如表单认证 HTTP
  • Android的关于高德地图加载谷歌瓦片,并缓存本地的功能.

    最近开发的Android的App需要使用到卫星图 不过发现国内现有的百度 高德的卫星图对郊区图层支持的不好 只能使用谷歌的卫星图 在尝试使用谷歌的Google Map API for Android后又发现去要手机安装谷歌服务 并且有可能用
  • batchsize的选择和学习率调整

    batchsize的选择和学习率调整 增大Batch Size的好处 数据的处理速度加快 跑完一次 epoch 全数据集 所需的时间减少 在一定范围内 一般来说 Batch Size 越大 其确定的下降方向越准 引起训练震荡越小 尤其是网络
  • Angular学习笔记70:Angular项目的单元测试 -- 对组件进行测试

    对组件进行测试 对组件绑定的测试 例如在一个组件中 一个组件中模版里有一个标题的是 h2 class title title h2 组件的类文件中对应绑定了一个类文件中的属性 测试这个绑定的数据 it should render title
  • 华为云空间費用_华为云空间有什么用

    华为云空间是专门用于存储联系人 备忘录 照片 录音 云盘的 它还可以使用查找手机功能 其性质和云存储空间类似 手机用户可以将通讯录 照片或视频 录音以及其他资料存放在这里 而在其他的华为设备上登录云空间账号后 即可将这些信息同步到其他设备上
  • 渗透测试学习22:业务逻辑漏洞

    目录 登录认证模块 未授权访问和越权 验证码相关问题 支付漏洞 活动相关 薅羊毛 密码找回模块 登录认证模块 万能密码 现在很少了 但也可以试试 例子 admin or 1 1 弱口令 社工尝试获取账号 并构造密码库 明文密码传输 edu常
  • 我的LaTeX入门

    第一次打美赛就用了latex 比赛前刷了各种博客 学习了1天就上场 美赛期间全程扮演不同角色 就是打杂的 大家都是第一次参加 都很累 不过我是最累的 两天两夜没睡 建模 编程 latex写论文全程参与 用latex写论文真的是太爽了 闲着也
  • ExoPlayer结构分析

    最近要做音乐播放器 经过一周的调研 最终决定使用google的ExoPlayer 对ExoPlayer的架构 流程做个分析 梳理一下调用逻辑 先做个笔记 等项目做完了写一个多媒体播放的大型攻略 媒体资源的获取 MediaSource类代表媒
  • 计算机粘贴复制快捷键,电脑粘贴复制快捷键ctrl加什么(电脑快捷键方法大全)...

    工作效率高的人往往使用快捷键比较多 至少能节约一半的时间 今天分享的快捷键是Ctrl D 你会用吗 在office系列软件中它的功能不尽相同 能把Ctrl D常用的几个功能熟练掌握 高效完成工作某些工作 已经是不在话下 网页收藏 遇到喜欢的
  • libevent实现tcp服务器

    服务器端 libevent 创建TCP连接 创建event base 创建bufferevent事件对象 bufferevent socket new 使用bufferevent setcb 函数给 bufferevent的 read wr
  • VM8的虚拟机中检测USB设备功能禁止

    版本 VMware Workstation 8 0 2 build 591240 发现其启动Linux的时候有提示USB功能被禁止 需要到microsoft下开启VMware USB Arbitration Service服务 但是在ser
  • Matlab机器人工具箱

    因为需要用到和机器人相关的东西 就用到了这个工具箱 作者官网 http www petercorke com Robotics Toolbox html 我上传到CSDN 有需要的同学可以自行下载 robot 9 8 2013 2 12 z
  • 从Spice Model到模拟IC设计的心路历程

    写博客的伊始 是兴奋的 回想自己折腾的几年 从Spice Model到模拟IC电路设计的跳跃 充满了奇妙的意外之旅 Spice Model生涯 我于2017年1月1日走入职场从事14nm FinFET Spice Model研发工作 初涉职
  • 机器学习:L2正则项(权重衰减)和梯度的理解

    正则化方法 L2正则化 正则化定义 凡是可以减少泛化误差而不是减少训练误差的方法 都可以称作正则化方法 我们其实不用去管什么是泛化误差 什么是训练误差 只需 凡是能减少过拟合的方法都是正则化方法 正则化方法 防止过拟合 提高泛化能力 在训练
  • html密码验证 并跳转页面,vuejs 实现前后端分离登录验证和页面自动跳转

    使用的技术点 vue router axios vuex element ui qs 项目介绍 这个项目是一个类似google相册功能的项目 目前实现的是图片特征提取 可以以图搜图 最终打造成一个智能相册 后台由go语言开发 图片特征提取由
  • 只下载rpm包而不安装(用于内网虚拟机使用)

    这里写目录标题 问题 解决 1 安装yum utils 2 下载rpm包 3 将rpm包拷贝到离线的虚拟机并安装 遇到的问题 1 error while loading shared libraries libXXX so X cannot
  • 如何在 Ubuntu 18.04 LTS 上安装和配置 Apache

    本教程将帮助您在 Ubuntu 18 04 LTS Linux 操作系统上安装并保护 Apache Web 服务器 先决条件 通过 SSH 访问 Ubuntu 18 04 SUDO特权 在 Ubuntu 18 04 上安装 Apache 首