介绍 您可以使用[alt text](image_url)语法将图像添加到 Markdown 。让我们看看它是如何工作的。 先决条件 HTML5 的一般知识。要全面了解 HTML5 标记语言,请浏览我们的系列“如何用 HTML 构建网站”。 在 Markdown 中添加图像 这是在 Markdown 中添加图像的语法。标题是可选的: 文件.md  这将产生以下 HTML: <img title=”a title” alt=”Alt text” src=”/images/boo.svg”> 链接图像 使用links的Markdown 语法,您将获得链接图像的方式如下: 文件.md [](https://digitalocean.com) 结论 该<img>元素是HTML的一个非常有用的功能。 要更全面地了解 HTML5 标记语言,请浏览我们的系列,如何用 HTML 构�..
Category : 教程系列
作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 TypeScript是JavaScript语言的扩展,它使用 JavaScript 的运行时和编译时类型检查器。这种组合允许开发人员使用完整的 JavaScript 生态系统和语言功能,同时还添加了可选的静态类型检查、枚举数据类型、类和接口。这些特性为开发人员提供了 JavaScript 动态特性的灵活性,但也允许更可靠的代码库,其中类型信息可以在编译时用于检测可能导致错误或其他意外行为的问题。 额外的类型信息还提供了更好的代码库文档和文本编辑器中改进的IntelliSense(代码完成、参数信息和类似的内容辅助功能)。团队成员可以准确地确定任何变量或函数参数所期望的类型,而无需通过实现本身。 本教程将介绍类型声明和 TypeScript 中使用的所有基本类型。它将引导您浏览具有不同代码示例的示例,您可以在自己的 TypeScript 环境或TypeScript Playground 中学习,后者是一个允许您直接在浏览器中编写 TypeScript 的在线环境。 先决条件 要学习本教程,您需要: 您可以在其中执行 TypeScript 程序以跟随示例进行操作的环境。要在本地计算机上进行设置,您需要以下内容。 这两个节点和NPM(或丝安装才能运行的开发环境,手柄的打字稿相关的软件包)。本教程使用 Node.js 版本 14.3.0 和 npm 版本 6.14.5 进行了测试。要在 macOS 或 Ubuntu 18.04 上安装,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。如果您使用的是适用于 Linux的Windows 子系统 (WSL),这也适用。 ..
作者选择了技术多样性基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 Web 开发的一个重要部分是在用户与元素交互时提供反馈。这种交互是通过改变state来完成的,它指示用户如何使用或已经使用页面上的给定元素。在 CSS 中,选择器有一些特殊的变体,称为伪类,它允许状态更改启动样式更改。 在本教程中,您将使用:hover,:active以及:focus用户操作和:visited位置伪类。您将使用<a>和<button>作为教程中的交互元素。这两个元素都具有相似的交互状态,并且在功能上与用户相同。从开发的角度来看,<a>元素专门用于与 URL 交互,而<button>元素用于触发表单或JavaScript函数。除了使用这四种不同的状态外,您还将使用该transition属性为这些交互状态之间的样式设置动画。 先决条件 了解 CSS 的级联和特异性功能以及盒模型。 知识的类型选择,组合子选择器,和选择器组。 熟悉文本布局和颜色属性。 保存在本地计算机上的空 HTML 文件index.html,您可以从文本编辑器和选择的 Web 浏览器访问该文件。要开始使用,请查看我们的如何设置 HTML 项目教程,并按照如何使用和理解 HTML 元素获取有关如何在浏览器中查看 HTML 的说明。如果您不熟悉 HTML,请尝试整个如何在 HTML 中构建网站系列。 一个名为 的空 CSS 文件styles.css和一个名为的空 HTML 文件index.html,它们都保存在本地机器上的同一目录中。 设置初始 HTML 和 CSS 要开始使用链接和按钮,您将首先设置作为本教程基础所需的 HTML 和 CSS。在本节中,您将写出所有必要的 HTML 和一些初始 CSS 样式,这些样式将处理布局并开始视觉美感。 首先,index.html在文本编辑器中打开。然后,将以下突出显示的 HTML 添加到文件中: 索引.html <!doctype html> ..
该系列的一部分: 常见的 Apache 错误 本教程系列介绍了如何对使用Apache Web 服务器时可能遇到的一些最常见错误进行故障排除和修复。 本系列中的每个教程都包含对常见 Apache 配置、网络、文件系统或权限错误的描述。本系列首先概述了可用于对 Apache 进行故障排除的命令和日志文件。后续教程详细检查特定错误。 介绍 ApacheAH02572: Failed to configure at least one certificate and key在配置为使用该ssl模块时会生成错误消息,但缺少 TLS/SSL 公共证书和相应的私钥。该错误将阻止 Apache 启动,错误消息本身将在 Apache 的日志中找到。 在本教程中,您将学习如何使用本系列开头的如何对常见 Apache 错误进行故障排除教程中描述的方法对 AH02572 错误进行故障排除。您还将学习如何设置SSLCertificateFile和SSLCertificateKeyFile指令来解析消息。 如果您已经确定您的 Apache 服务器受到 AH02572 错误的影响,并且您想跳过故障排除步骤,本教程末尾的向 Apache 添加 SSL 证书部分说明了如何解决该错误。 故障排除 使用 systemctl 当您对AH02572: Failed to configure at least one certificate and ..
介绍 SSH 或安全外壳是一种加密协议,用于管理服务器并与服务器进行通信。在使用 Ubuntu 服务器时,您很可能将大部分时间花在通过 SSH 连接到服务器的终端会话中。 在本指南中,我们将重点介绍为 Ubuntu 20.04 安装设置 SSH 密钥。SSH 密钥提供了一种登录服务器的安全方式,建议所有用户使用。 步骤 1 — 创建密钥对 第一步是在客户端机器(通常是你的电脑)上创建一个密钥对: ssh-keygen 默认情况下,最近版本的ssh-keygen将创建一个 3072 位 RSA 密钥对,这对于大多数用例来说足够安全(您可以选择传入-b 4096标志以创建更大的 4096 位密钥)。 输入命令后,您应该看到以下输出: OutputGenerating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa): 按 Enter 将密钥对保存到.ssh/主目录的子目录中,或指定备用路径。 如果您之前已经生成了 SSH 密钥对,您可能会看到以下提示: Output/home/your_home/.ssh/id_rsa already exists. Overwrite (y/n)? 如果您选择覆盖磁盘上的密钥,您将无法再使用以前的密钥进行身份验证。选择是时要非常小心,因为这是一个无法逆转的破坏性过程。 ..
作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 Docker Registry是一个管理存储和交付 Docker 容器镜像的应用程序。注册表集中容器映像并减少开发人员的构建时间。Docker 镜像通过虚拟化保证相同的运行时环境,但构建镜像可能需要大量时间投资。例如,开发人员无需单独安装依赖项和包来使用 Docker,而是可以从包含所有必要组件的注册表下载压缩映像。此外,开发人员可以使用持续集成工具(例如TravisCI)自动将图像推送到注册表,以在生产和开发期间无缝更新图像。 Docker 还有一个免费的公共注册表Docker Hub,它可以托管您的自定义 Docker 镜像,但在某些情况下,您不希望您的镜像公开可用。映像通常包含运行应用程序所需的所有代码,因此在使用专有软件时最好使用私有注册表。 在本教程中,您将设置并保护您自己的私有 Docker 注册表。您将使用Docker Compose定义运行 Docker 容器的配置,并使用 Nginx 将服务器流量从互联网转发到正在运行的 Docker 容器。完成本教程后,您将能够将自定义 Docker 映像推送到您的私有注册表,并从远程服务器安全地拉取该映像。 先决条件 按照Ubuntu 20.04 初始服务器设置指南设置了两台 Ubuntu 20.04 服务器,包括sudo非 root 用户和防火墙。一台服务器将托管您的私有 Docker Registry,另一台将作为您的客户端服务器。 在两台服务器上安装了由以下泊坞窗步骤1和2中如何安装和使用码头工人在Ubuntu 20.04。 在上安装多克尔撰写主机服务器通过以下步骤1中如何安装和使用泊坞撰写在Ubuntu 20.04。 按照如何在 Ubuntu 20.04 上安装 Nginx 中的步骤在您的主机服务器上安装 Nginx。 按照如何在 Ubuntu 20.04 上使用 Let’s Encrypt ..
作者选择开放互联网/言论自由基金接受捐赠,作为Write for DOnations计划的一部分。 介绍 Prosody是一个 XMPP 聊天服务器,支持 TLS 加密的一对一聊天和群聊室。XMPP(可扩展消息和在线协议)是一种开放的消息协议,正式名称为 Jabber。这意味着任何 XMPP 聊天客户端都可以连接到 Prosody 服务器并开始聊天。 XMPP是一个成熟的开放标准,由Internet Engineering Task Force (IETF)维护。它在许多应用程序中得到积极维护和部署,例如被数百万用户使用的Google Talk。XMPP 服务器,如 Prosody,是已经存在了二十多年的聊天服务器的灵活选择。 在本教程中,您将安装和配置 Prosody 服务器,该服务器支持一对一和群聊会话以及将文件上传到聊天面板进行共享的功能。所有聊天会话都将受到 TLS 加密证书的保护,因此您的个人数据将保持私密。 先决条件 在开始本指南之前,您需要具备以下条件: 按照 Ubuntu 18.04初始服务器设置指南设置一台至少 512MB RAM 的 Ubuntu 18.04 服务器,包括启用 sudo 的非 root 用户和防火墙。 安装在本地系统上的 XMPP 聊天客户端。此XMPP 客户端页面上列出的任何聊天应用程序都将与您的 Prosody 服务器兼容。 指向您的服务器的两个主机名。您需要两个主机名,因为 Prosody 将一个用于直接聊天,另一个用于群聊室。按照我们的DNS How-Tos了解如何将主机名指向 DigitalOcean Droplets 。本指南将使用以下两个示例主机名: ..
作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 calibre 是一个免费的开源电子书管理器,以其跨平台桌面应用程序而闻名。您可以使用 calibre 在单个设备上管理您的电子书库,但该应用程序还包括一个强大的服务器组件。设置电子书服务器允许您: 从世界任何地方访问您的图书 轻松将您的图书传输到移动设备 与您的朋友和家人分享书籍 calibre 内容服务器包括一个用于为您的图书提供服务的后端和一个用于搜索您的图书馆、下载单个标题甚至直接通过 Web 浏览器阅读您的图书的基本前端。该服务器还提供了一个基本的移动界面,适用于各种设备,包括许多电子墨水阅读器(如 Kindle 和 Kobo)附带的基本浏览器。 在本教程中,您将在 Ubuntu 20.04 上设置和使用 calibre 内容服务器。具体来说,您将下载并安装 calibre 服务器,将 calibre 配置为一项服务,以便在您的服务器重新启动时自动启动,并使用命令行工具将书籍添加到您的图书馆。您还将遇到设置 cron 作业以自动将新书从特定目录添加到您的图书馆的选项,向您的服务器添加身份验证以便只有您可以访问它,并添加一个免费的 SSL/TLS 证书以通过HTTPS 以提高安全性。 警告:与所有创意内容一样,尊重与他人创作的材料相关的版权许可非常重要。本教程使用从Project Gutenberg合法下载的公共领域书籍,该项目拥有 60,000 多本免费电子书。 先决条件 运行 Ubuntu 20.04 的服务器,带有 sudo 用户和防火墙。您可以按照我们的初始服务器设置指南获取说明。 步骤 7 包括使用 SSL 证书保护您的 calibre 内容服务器的选项。如果您希望这样做,您将需要一个具有可用 A 记录的域名。如果您使用的是DigitalOcean Droplet,您可以按照我们的指南[如何从公共域注册商指向 ..
YUM 是一个软件包管理实用程序,用于许多流行的 Linux 发行版,包括 Fedora 和 CentOS。YUM 是 RPM 包管理器的前端,这意味着它以.rpm文件格式管理包。 与APT一样,YUM 通过使用软件存储库或repos 来工作,它是保存软件包集合的特殊目录。存储库通常存储在用户可以通过网络连接访问的远程服务器上,但用户也可以将软件包存储在其本地机器上的存储库中。 “YUM”是“Yellowdog Updater, Modified”的首字母缩写词。这个名字可以追溯到 YUM 的起源,它是对 Yellowdog UPdater(也称为“YUP”)的重写,Yellow Dog Linux 是一个现已解散的 Linux 发行版的软件更新程序。YUM 本身的重写,命名为 Dandified YUM 或简称“DNF”,最近取代 YUM 作为 Fedora 和 Red Hat Enterprise Linux 中的默认包管理器。 有关 YUM 和其他包管理实用程序的更多信息,请参阅我们的包管理基�..
作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 当多人同时从不同位置处理同一个 Terraform 项目时,正确处理基础设施代码和项目状态以避免覆盖错误非常重要。解决方案是远程存储状态而不是本地。远程系统可供团队的所有成员使用,他们可以在工作时锁定状态。 一个这样的远程后端是pg,它将状态存储在 PostgreSQL 数据库中。在本教程的过程中,您将使用DigitalOcean 托管数据库来确保数据可用性。 Terraform 还支持 HashiCorp 的官方托管云产品Terraform Cloud,这是一种专有应用程序,可在一个地方同步您团队的工作,并提供用于配置和管理的用户界面。 在本教程中,您将在 Terraform Cloud 中创建一个组织,并将您的项目连接到该组织。然后,您将使用您的组织来设置工作区和资源。您将状态存储在托管云中,以便它始终可用。您还将pg使用随附的托管 PostgreSQL 数据库设置后端。 先决条件 DigitalOcean 个人访问令牌,您可以通过 DigitalOcean 控制面板创建。您可以在如何生成个人访问令牌 中找到创建此令牌的说明。 Terraform 安装在您的本地计算机上,并使用 DigitalOcean 提供商设置了一个项目。完成第1步中的如何使用Terraform与DigitalOcean教程。 如果您想使用pg后端,则需要创建和访问托管 PostgreSQL数据库集群。有关更多信息,请访问快速入门指南。您可以在本教程中使用单独的数据库。 如果您想使用 HashiCorp 的托管云,您将需要一个Terraform Cloud帐户。您可以在他们的注册页面上创建一个。 注意:我们已经使用 Terraform 专门测试了本教程0.13。 在 Terraform Cloud 中存储状态 在这一步中,您将创建一个部署 Droplet 的项目,但不是在本地存储状态,而是使用Terraform Cloud作为remote提供程序的后端。这需要在 Terraform Cloud 中创建组织和工作区,编写基础设施代码并进行规划。 创建组织 Terraform Cloud ..