介绍 本文将向您展示如何向 HTML 添加注释。 先决条件 HTML5 的一般知识。要全面了解 HTML5 标记语言,请浏览我们的系列“如何用 HTML 构建网站”。 在 HTML 中添加注释 这是您在 HTML 中创建评论的方式: <!– I’m a comment! –> 在第二个示例中,我们使用 HTML 注释来注释掉一些标记: <!– Look, a shark! <p>Sammy</p> –> 结论 创建注释是编写 HTML 的一个重要元素。 要更全面地了解 HTML5 标记语言,请浏览我们的系列,如何用 HTML 构�..
Category : 教程系列
介绍 在 Kubernetes 集群上运行多个服务和应用程序时,集中的集群级日志堆栈可以帮助您快速整理和分析 Pod 产生的大量日志数据。一种流行的集中记录的解决方案是Ë lasticsearch,˚F luentd和ķ ibana(EFK)堆栈。 Elasticsearch是一个实时、分布式和可扩展的搜索引擎,支持全文和结构化搜索以及分析。它通常用于索引和搜索大量日志数据,但也可用于搜索许多不同类型的文档。 Elasticsearch 通常与Kibana一起部署,Kibana是 Elasticsearch的强大数据可视化前端和仪表板。Kibana 允许您通过 Web 界面探索您的 Elasticsearch 日志数据,并构建仪表板和查询以快速回答问题并深入了解您的 Kubernetes 应用程序。 在本教程中,我们将使用Fluentd收集、转换日志数据并将其传送到 Elasticsearch 后端。Fluentd 是一个流行的开源数据收集器,我们将在我们的 Kubernetes 节点上设置它来跟踪容器日志文件、过滤和转换日志数据,并将其传送到 Elasticsearch 集群,在那里它会被索引和存储。 我们将首先配置和启动一个可扩展的 Elasticsearch 集群,然后创建 Kibana Kubernetes 服务和部署。最后,我们将 Fluentd 设置为 DaemonSet,以便它在每个 Kubernetes 工作节点上运行。 先决条件 在您开始阅读本指南之前,请确保您已准备好以下内容: 启用了基于角色的访问控制 (RBAC) 的 Kubernetes 1.10+ 集群 确保您的集群有足够的资源来推出 EFK 堆栈,如果没有,请通过添加工作节点来扩展您的集群。我们将部署一个 3 Pod Elasticsearch 集群(如有必要,您可以将其缩减为 1),以及一个 ..
作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 Gmail 和 Google Apps 电子邮件的一个鲜为人知的功能是 Google 的便携式 SMTP 服务器。您不必在DigitalOcean Droplet或Kubernetes Cluster上管理您自己的外发邮件服务器,您可以使用您希望发送电子邮件的任何脚本或程序来配置 Google 的 SMTP 服务器设置。您只需要 (i) 免费的 Gmail 帐户,或 (ii) 付费的 G Suite 帐户。 好处 您可以选择让 Google 存储您通过其 SMTP 服务器发送的电子邮件并将其编入索引,因此您发送的所有电子邮件都可以在 Google 的服务器上进行搜索和备份。如果您也选择使用 Gmail 或 G Suite 帐户接收收到的电子邮件,那么您可以将所有电子邮件放在一个方便的地方。此外,由于 Google 的 SMTP 服务器不使用 port 25,您将降低 ISP 阻止您的电子邮件或将其标记为垃圾邮件的可能性。 设置 Google 的 SMTP 服务器需要身份验证,因此在您的邮件客户端或应用程序中设置它的方法如下: ..
介绍 对于短request的req对象的一半request,并response循环检查从客户端调用,使HTTP请求,并处理传入的数据是否在字符串或JSON对象。 在本文中,您将了解reqExpress 中的对象。 先决条件 要阅读本文,您需要: 建议对 Node.js 有一个大致的了解,但不是必需的。要了解有关 Node.js 的更多信息,请查看我们的如何在 Node.js 中编码系列。 HTTP 请求的一般知识。 管理客户端数据 Express服务器通过接收来自客户端的数据req的:对象在三个实例req.params,req.query和req.body对象。 该req.params对象根据 URL 中指定的参数捕获数据。在您的index.js文件中,GET使用以下参数实现请求’/:userid’: 索引.js // GET https://example.com/user/1 app.get(‘/:userid’, (req, res) => { console.log(req.params.userid) // “1” }) 该req.params对象告诉 Express 通过参数 输出用户 id 的结果’/:userid’。在这里,带有指定参数的GET请求以https://example.com/user/1id 登录到控制台”1″。 要访问 URL 查询字符串,请将req.query对象应用于搜索、过滤和排序数据。在您的index.js文件中,包含GET对路由的请求’/search’: 索引.js // GET https://example.com/search?keyword=great-white app.get(‘/search’, (req, res) => { console.log(req.query.keyword) // “great-white” ..
作为Write for DOnations计划的一部分,作者选择了技术教育基金来接受捐赠。 介绍 一个服务网是一个专门的基础设施层,帮助管理员处理服务到服务的通信。这些服务网格提供了许多强大的工具,可以使您的系统更安全、更可靠、更可见。 例如,像Linkerd这样的服务网格可以自动加密连接、处理请求重试和超时、提供成功率和延迟等遥测信息等。 在本教程中,您将在Kubernetes集群中安装 Linkerd 服务网格,部署示例应用程序,然后浏览 Linkerd 的仪表板。有一些这方面的信息仪表盘自己熟悉后,您将配置Linkerd执行timeout和retry特定Kubernetes荚政策。 或者,考虑探索DigitalOcean 的一键 Linkerd/Kubernetes 安装选项。 先决条件 Kubernetes 1.12+ 集群。在本教程中,设置将使用具有三个节点的DigitalOcean Kubernetes集群,但您可以使用另一种方法自由创建集群。 kubectl安装在开发服务器上并配置为连接到集群的命令行工具。您可以kubectl在其官方文档中阅读有关安装的更多信息。 第 1 步 – 部署应用程序 要查看 Linkerd 的运行情况,您需要在集群中运行一个应用程序。在此步骤中,您将部署称为应用程序emojivoto,其中Linkerd团队为此创建。 在此存储库中,您可以看到组成应用程序的四个服务的代码,以及将用于在 Kubernetes 集群中部署这些服务的清单文件。 首先,在本地保存这个清单文件: curl https://run.linkerd.io/emojivoto.yml –output manifest.yaml 您正在使用curl获取文件,然后传递–output选项以告诉它您要将文件保存在哪里。在这种情况下,您正在创建一个名为manifest.yaml. 为了更好地了解此文件将完成的任务,请cat使用您喜欢的编辑器检查其内容或将其打开: cat manifest.yaml | less 按SPACE翻阅指令。您将看到manifest.yaml正在创建一个名为 Kubernetes 命名空间的命名空间emojivoto,与此应用程序相关的所有内容都将在其中运行,以及一些 KubernetesDeployments和Services. 接下来,在您的 Kubernetes 集群中应用此清单: kubectl apply -f manifest.yaml 同样,你用kubectl ..
介绍 在 PHP 中处理日期和时间可能很复杂。我们必须处理strtotime、格式问题、大量计算等等。 将碳包可以帮助交易日期和时间在PHP更容易和更语义,使我们的代码变得更具可读性和可维护性。 Carbon 是Brian Nesbit 的一个包,它扩展了 PHP 自己的DateTime类。 它提供了一些很好的功能来处理 PHP 中的日期。具体如: 处理时区。 轻松获取当前时间。 将日期时间转换为可读的内容。 将英语短语解析为日期时间 ( “first day of January 2016”)。 添加和减去日期 ( “+ 2 weeks”, “-6 months”)。 处理日期的语义方式。 在本文中,您将安装 Carbon 并探索它提供的特性和功能。 先决条件 要遵循本指南,您需要满足以下先决条件: 一个有效的 Laravel 开发环境。要进行设置,您可以按照我们关于如何在 Ubuntu 20.04 上安装和配置 Laravel 应用程序的指南进行操作。 或者,按照Larvel 安装文档。如果您选择 Laravel Sail 方法,您将需要 Docker。 本教程已通过 PHP v8.0.5、Composer v2.0.13、MySQL ..
介绍 WordPress是世界上最受欢迎的内容管理和博客平台之一,可让您高效地创建和管理网站内容。 本教程将分享使用WordPress 一键式应用程序设置 WordPress 网站所需的所有详细信息。 包含的软件 除了安装在常规 Ubuntu 20.04 Droplet 中的功能外,WordPress 一键式图像还包括以下组件: Apache:使用最广泛的 Web (HTTP) 服务器。 MySQL:一种常用的开源关系数据库。 PHP : PHP 语言支持。 这些组件创建了LAMP 堆栈,这是一组通常安装在一起的开源软件,以使服务器能够托管 WordPress 等动态网站。术语LAMP是一个表示的结构的首字母缩写大号inux下操作系统与甲帕什Web服务器,与存储在网站上的数据中号ySQL数据库和通过处理的动态内容P HP。 为了提高安全性,还包括以下附加组件: UFW:简化防火墙管理的程序。 fail2ban:一种自动更新防火墙配置以阻止攻击者的服务。 在本教程中,我们将创建一个 WordPress 一键式 Droplet,然后解释如何设置您的 WordPress 站点、配置域以及共享有关如何访问 MySQL 数据库的信息。 第 1 步 – 创建一个 WordPress Droplet 要从一键式应用程序页面创建 WordPress Droplet,请按创建 WordPress Droplet按钮: 这会将您带到“创建 Droplet”页面,您可以在其中自定义设置,然后再创建 WordPress Droplet。如何创建您的第一个 Droplet详细描述了每个选择。下面,我们将重点介绍关键设置: ..
结构化查询语言(通常称为 SQL)是一种用于定义、控制、操作和查询关系数据库中保存的数据的语言。自 1970 年代初首次开发以来,SQL 已被广泛采用,如今它已成为用于与关系数据库管理系统交互的主要语言。SQL 非常适合管理结构化数据,这些数据可以巧妙地融入现有数据模型。学习如何使用 SQL 是开发人员和系统管理员在各种环境中的一项基本技能。 SQL 标准由两个组织定义:美国国家标准协会 (ANSI) 和国际标准化组织 (ISO)。但是,关系数据库管理系统通常会实现自己的自定义 SQL 子集,并且这些系统很少完全符合 SQL 标准。通常,这些独特的实现包括特殊功能 — 称为 SQL 扩展 — 未包含在标准中,但为用户提供了其他 SQL 实现中可能不可用的有用功能。 有关 SQL 的更多教育资源,请访问: 如何使用 SQL 了解关系数据库 SQLite vs MySQL vs PostgreSQL:关系数据库管理系统的比较 可以在我们的SQL 标记页面上找到我们关于 SQL 的教育资源的完�..
React 中的样式有各种形状和大小。开箱即用,您可以通过className属性分配类或通过将对象传递给属性来分配 CSSstyle属性。虽然在大多数情况下足够了,但它们并非没有缺点。使classNames动态化需要定义额外的类,并且styles,虽然允许动态属性,但仍然需要样板代码,并且不允许您深入研究像:hover. 这就是 Fela 可以帮助您的地方! Fela是一个与框架无关的库,用于处理 JavaScript 中的状态驱动样式。它具有很高的性能,并且在使用方式方面为您提供了一定的灵活性。虽然您可以单独使用 Fela,但react-fela可用于为您的 React.js 应用程序提供 React 绑定。 入门 首先,我们需要添加react-fela到我们的项目中: 通过 npm $ npm install –save react-fela 或通过纱线 $ yarn add react-fela 对于本文,我们将直接使用fela库中的一些方法。不过别担心,react-fela包括这个依赖项,所以我们应该很高兴。 渲染器 正如承诺的那样,fela我们需要使用库的一部分,即createRenderer. 该createRenderer方法用于创建一个渲染器,该渲染器将传递一个Provider组件,该组件将包装利用 Fela 的组件。 以下所有示例都将包含我们实现奇迹所需的样板代码。 使用生成的 CSS 类 最不复杂的 Fela 示例并不理想,但确实具有最少的样板代码。 Fela 的工作方式是接受您的样式,使用原子类生成适当的 CSS,并允许您获取可以传递给任何组件classNames属性的 CSS 类: import React from “react”; import { render } from ..
介绍 到containerize一个应用程序指的是适配的应用及其组件,以便能够在被称为轻量的环境中运行它的过程容器。此类环境是隔离的和一次性的,可用于开发、测试和将应用程序部署到生产中。 在本指南中,我们将使用Docker Compose将Laravel应用程序容器化以进行开发。完成后,您将拥有一个运行在三个独立服务容器上的演示 Laravel 应用程序: 一个app运行 PHP7.4-FPM的服务; db运行 MySQL 5.7的服务; 一个nginx使用该服务app的服务服务于Laravel应用到最终用户之前解析PHP代码。 为了简化开发过程并促进应用程序调试,我们将使用共享卷保持应用程序文件同步。我们还将看到如何使用docker-compose exec命令在容器上运行Composer和Artisanapp。 先决条件 以具有 sudo 权限的非 root 用户身份访问 Ubuntu 20.04 本地计算机或开发服务器。如果您使用远程服务器,建议安装活动防火墙。要设置这些,请参阅我们的 Ubuntu 20.04 初始服务器设置指南。 按照如何在 Ubuntu 20.04 上安装和使用 Docker 的步骤 1 和 2 将 Docker 安装在您的服务器上。 按照如何在 Ubuntu 20.04 上安装和使用 Docker Compose 的步骤 1 在您的服务器上安装 Docker Compose。 步骤 1 — 获取演示应用程序 首先,我们将从其Github 存储库中获取演示 ..