Category : 教程系列

介绍 使用 Nginx Web 服务器时,服务器块(类似于 Apache 中的虚拟主机)可用于封装配置细节并在一台服务器上托管多个域。 在本指南中,我们将讨论如何在 Ubuntu 16.04 服务器上的 Nginx 中配置服务器块。 先决条件 sudo在本教程中,我们将使用具有特权的非 root 用户。如果您没有配置这样的用户,您可以按照我们的Ubuntu 16.04 初始服务器设置指南创建一个。 您还需要在服务器上安装 Nginx。以下指南涵盖了此过程: 如何在 Ubuntu 16.04 上安装 Nginx:使用本指南自行设置 Nginx。 如何在 Ubuntu 16.04 中安装 Linux、Nginx、MySQL、PHP(LEMP 堆栈):如果您将 Nginx 与 MySQL 和 PHP 结合使用,请使用本指南。 满足这些要求后,您可以继续阅读本指南。 示例配置 出于演示目的,我们将使用 Nginx 服务器设置两个域。我们将在本指南中使用的域名是example.com和test.com。 注意:有关使用 DigitalOcean 设置域的更多信息,请参阅我们的域和 DNS 产品文档。 如果您没有两个备用域名可供使用,请暂时使用占位符名称,稍后我们将向您展示如何配置本地计算机以测试您的配置。 步骤 1 — 设置新的文档根目录 默认情况下,Ubuntu ..

Read more

介绍 SimpleSAMLphp是一个开源 PHP 身份验证应用程序,它支持作为服务提供者 (SP) 或身份提供者 (IdP) 的SAML 2.0。 SAML(安全断言标记语言)是一种基于 XML 的安全通信机制,用于在组织和应用程序之间交换身份验证和授权数据。它通常用于实现 Web SSO(单点登录)。这消除了在多个组织中维护多个身份验证凭据的需要。简而言之,您可以使用一个身份(如用户名和密码)访问多个应用程序。 SimpleSAMLphp 的一个实例连接到一个身份验证源,它是一个身份提供者,如 LDAP 或用户数据库。在授予对链接服务提供商提供的资源的访问权限之前,它根据此身份验证源对用户进行身份验证。 在本教程中,您将安装 SimpleSamlPHP 并将其配置为使用 MySQL 数据库作为身份验证源。您将在 MySQL 数据库中存储用户和加密密码,并测试您是否可以使用这些用户登录。 先决条件 按照Ubuntu 18.04 初始服务器设置指南设置一台 Ubuntu 18.04 服务器,包括一个 sudo 非 root 用户和一个防火墙。 按照如何在 Ubuntu 18.04 上安装 Linux、Apache、MySQL、PHP(LAMP 堆栈)在服务器上安装 Apache、MySQL 和 PHP。 配置为指向您的服务器的域名。您可以按照如何从公共域注册商指向 DigitalOcean 域名服务器教程学习如何将域指向 DigitalOcean Droplets 。 使用ServerName指令为域配置的虚拟主机。按照如何在 Ubuntu 18.04上设置Apache 虚拟主机为您的域名设置一个。 ..

Read more

介绍 MariaDB是一个开源数据库管理系统,通常用作流行LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的 MySQL 部分的替代方案。它旨在成为 MySQL 的替代品。 本安装指南的简短版本包括以下三个步骤: 使用更新您的包索引 apt 安装mariadb-server使用包apt。该软件包还引入了与 MariaDB 交互的相关工具 运行包含的mysql_secure_installation安全脚本以限制对服务器的访问 sudo apt update sudo apt install mariadb-server sudo mysql_secure_installation 本教程将解释如何在 Ubuntu 18.04 服务器上安装 MariaDB,并验证它是否正在运行并具有安全的初始配置。 先决条件 要学习本教程,您需要: 按照此初始服务器设置指南设置一台 Ubuntu 18.04 服务器,包括具有特权和防火墙的非root用户sudo。 第 1 步 – 安装 MariaDB 在 Ubuntu 18.04 上,MariaDB 10.1 版默认包含在 APT 包存储库中。 要安装它,请使用以下命令更新服务器上的包索引apt: sudo apt update 然后安装包: sudo apt install ..

Read more

介绍 Redis是一种开源的内存键值数据存储。无论您是在本地安装 Redis 还是使用远程实例,您都需要连接到它才能执行大多数操作。在本教程中,我们将介绍如何从命令行连接到 Redis,如何验证和测试您的连接,以及如何关闭 Redis 连接。 如何使用本指南 本指南编写为带有独立示例的备忘单。我们鼓励您跳到与您要完成的任务相关的任何部分。 本指南中显示的命令在运行 Redis 版本4.0.9的 Ubuntu 18.04 服务器上进行了测试。要设置类似的环境,您可以按照我们关于如何在 Ubuntu 18.04 上安装和保护 Redis 的指南的步骤 1。我们将通过使用Redis 命令行界面运行这些命令来演示这些命令的行为。请注意,如果您使用不同的 Redis 接口——例如Redli——某些命令的确切输出可能会有所不同。redis-cli 或者,您可以配置一个托管的 Redis 数据库实例来测试这些命令,但请注意,根据您的数据库提供商允许的控制级别,本指南中的某些命令可能无法按所述方式工作。要配置 DigitalOcean 托管数据库,请遵循我们的托管数据库产品文档。然后,您必须 安装 Redli 或 设置 TLS 隧道,以便通过 TLS 连接到托管数据库。 连接到Redis 如果您已经redis-server 在本地安装,则可以使用以下redis-cli命令连接到 Redis 实例: redis-cli 这将带您进入redis-cli的交互模式,该模式为您提供读取-评估-打印循环(REPL),您可以在其中运行 Redis 的内置命令并接收回复。 在交互模式下,您的命令行提示符将更改以反映您的连接。在本示例和本指南的其他示例中,提示表示连接到本地托管的 Redis 实例 ( 127.0.0.1) 并通过 Redis 的默认端口 ( ..

Read more

作者选择Code Org接受捐赠,作为Write for DOnations计划的一部分。 介绍 计算机视觉是计算机科学的一个子领域,旨在从图像和视频中提取更高层次的理解。这为有趣的视频聊天过滤器、移动设备的面部验证器和自动驾驶汽车等技术提供支持。 在本教程中,您将使用计算机视觉为您的网络摄像头构建美国手语翻译器。在学习本教程时,您将使用OpenCV计算机视觉库PyTorch来构建深度神经网络并onnx导出神经网络。在构建计算机视觉应用程序时,您还将应用以下概念: 您将使用与如何应用计算机视觉来构建基于情感的狗过滤器教程相同的三步法:预处理数据集、训练模型和评估模型。 您还将扩展这些步骤中的每一个:使用数据增强来解决旋转或不居中的手,更改学习率计划以提高模型准确性,并导出模型以加快推理速度。 在此过程中,您还将探索机器学习中的相关概念。 在本教程结束时,您将拥有美国手语翻译器和基础深度学习知识。您还可以访问此项目的完整源代码。 先决条件 要完成本教程,您将需要以下内容: 具有至少 1GB RAM 的 Python 3 本地开发环境。您可以按照如何为 Python 3 安装和设置本地编程环境来配置您需要的一切。 用于实时图像检测的工作网络摄像头。 (推荐)构建基于情感的狗过滤器;本教程没有明确使用,但同样的想法得到了加强和构建。 第 1 步 – 创建项目并安装依赖项 让我们为这个项目创建一个工作区并安装我们需要的依赖项。 在 Linux 发行版上,首先准备系统包管理器并安装 Python3 virtualenv 包。用: apt-get update apt-get upgrade apt-get install python3-venv 我们将调用我们的工作区SignLanguage: mkdir ~/SignLanguage 导航到SignLanguage目录: cd ~/SignLanguage 然后为项目创建一个新的虚拟环境: python3 -m venv signlanguage ..

Read more

介绍 拖放是一种常见的用户交互,您可以在许多图形用户界面中找到它。 已有 JavaScript 库可用于向您的应用程序添加拖放功能。但是,可能存在库不可用或引入项目不需要的开销或依赖项的情况。在这些情况下,了解现代 Web 浏览器中可用的 API 可以提供替代解决方案。 该HTML拖放API依赖于DOM的事件模型我们就可以得到被拖动或下降,以更新拖动或丢弃元素信息。使用 JavaScript 事件处理程序,您可以将任何元素变成可拖动的项目或可以放入的项目。 在本教程中,我们将使用 HTML Drag and Drop API 和 vanilla JavaScript 构建一个拖放示例,以使用事件处理程序。 先决条件 要完成本教程,您需要: 支持拖放 API(Chrome 4+、Firefox 3.5+、Safari 3.1+、Edge 18+)的现代 Web 浏览器。 步骤 1 — 创建项目和初始标记 我们的项目将包含一个容器,其中包含两种类型的子元素: 可以拖动的子元素 可以将元素放入其中的子元素 首先,打开终端窗口并创建一个新的项目目录: mkdir drag-and-drop-example 接下来,导航到该目录: cd drag-and-drop-example 然后,index.html在该目录中创建一个文件: nano index.html 接下来,为 HTML 网页添加样板代码: 索引.html <!DOCTYPE html> <html> ..

Read more

介绍 Angular 路由器的导航守卫允许授予或删除对导航某些部分的访问权限。另一个路由守卫,CanDeactivate守卫,甚至允许你防止用户不小心留下未保存更改的组件。 注意:像这样的客户端路由保护并不是一项安全功能。它们不会阻止聪明的用户找到到达受保护路线的方法。这种安全性应该在服务器上实现。相反,它们旨在改善您的应用程序的用户体验 (UX)。 以下是 4 种可用的路由保护: CanActivate:控制是否可以激活路线。 CanActivateChild:控制是否可以激活路由的子级。 CanLoad:控制是否可以加载路由。这对于延迟加载的功能模块非常有用。如果守卫返回 false,它们甚至不会加载。 CanDeactivate:控制用户是否可以离开路线。请注意,此防护不会阻止用户关闭浏览器选项卡或导航到其他地址。它只会阻止来自应用程序本身的操作。 使用CanActivate路由保护 路由防护通常作为实现所需路由防护接口的类来实现。 让我们考虑一个带有CanActivate路由守卫的示例,其中我们询问auth服务是否用户已通过身份验证: can-activate-route.guard.ts import { Injectable } from ‘@angular/core’; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from ‘@angular/router’; import { AuthService } from ‘./auth.service’; @Injectable() export class CanActivateRouteGuard implements CanActivate { constructor(private auth: AuthService) {} 注意我们是如何CanActivate通过声明一个canActivate方法来实现接口的。如果您需要有关当前路线的信息,该方法可以选择访问ActivatedRouteSnapshot和RouterStateSnapshot。 在我们的示例中,canActivate返回一个布尔值取决于用户是否通过身份验证,但它也可能返回一个可观察的或解析为布尔值的承诺。 为了使用它们,应该像服务一样提供路由守卫。 让我们将它添加到我们的应用程序模块的提供程序中: app.module.ts // … ..

Read more

介绍 侧边栏菜单是一种出现在网页侧面的导航形式。这些菜单提供对网站不同部分的访问,同时不干扰页面上的内容。 按钮经常用于切换侧边栏菜单的打开和关闭。这些按钮往往有一个由三个水平线组成的图标来代表一个菜单。由于此图标的形状,它通常被称为“汉堡包”菜单图标。两条外线形成“面包”,中间线形成“馅饼”。 react-burger-menu是一个允许您为 React 应用程序创建侧边栏的库。它还带有多种效果和样式,用于自定义菜单的外观和感觉。 在本教程中,您将为react-burger-menu一个提供沙拉、比萨饼和甜点的名义餐厅网站使用和构建侧边栏。 先决条件 要完成本教程,您需要: Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。 本教程已通过 Node v14.7.0、npmv6.14.7、reactv16.13.1 和react-burger-menuv2.7.1 验证。 步骤 1 — 设置项目 从使用create-react-app生成一个 React App 开始,然后安装依赖项: npx create-react-app react-burger-menu-example 切换到新的项目目录: cd react-burger-menu-example 接下来,打开index.css: nano src/index.css 添加以下样式: 源代码/索引.css * { box-sizing: border-box; } #page-wrap { padding-bottom: 10px; padding-top: 10px; } 此代码将box-sizing属性设置border-box为解决 CSS 盒模型计算问题。此代码还建立了一些垂直填充以防止边距折叠。 将更改保存到index.css然后打开App.js: nano src/App.js ..

Read more

介绍 Elastic Stack — 以前称为ELK Stack — 是Elastic生产的开源软件的集合,它允许您搜索、分析和可视化从任何来源以任何格式生成的日志,这种做法称为集中式日志记录。在尝试识别服务器或应用程序的问题时,集中日志记录非常有用,因为它允许您在一个地方搜索所有日志。它也很有用,因为它允许您通过关联特定时间范围内的日志来识别跨多个服务器的问题。 Elastic Stack 有四个主要组件: Elasticsearch:一个分布式RESTful搜索引擎,用于存储所有收集到的数据。 Logstash:Elastic Stack 的数据处理组件,将传入数据发送到 Elasticsearch。 Kibana:用于搜索和可视化日志的 Web 界面。 Beats:轻量级、单一用途的数据传送器,可以将数据从数百或数千台机器发送到 Logstash 或 Elasticsearch。 在本教程中,您将在 Ubuntu 20.04 服务器上安装Elastic Stack。您将学习如何安装 Elastic Stack 的所有组件——包括Filebeat,一种用于转发和集中日志和文件的Beat——并配置它们以收集和可视化系统日志。此外,由于 Kibana 通常只在 .x 上可用localhost,我们将使用Nginx来代理它,以便可以通过 Web 浏览器访问它。我们将在单个服务器上安装所有这些组件,我们将其称为Elastic Stack 服务器。 注意:安装 Elastic Stack 时,您必须在整个堆栈中使用相同的版本。在本教程中,我们将安装整个堆栈的最新版本,在撰写本文时为 Elasticsearch 7.7.1、Kibana 7.7.1、Logstash 7.7.1 和 Filebeat 7.7.1。 先决条件 要完成本教程,您将需要以下内容: 具有 4GB RAM ..

Read more

该系列的一部分: 如何使用 HTML 构建网站 本教程系列将指导您使用 HTML(用于在 Web 浏览器中显示文档的标准标记语言)创建和进一步自定义该网站。不需要有任何编码经验,但如果您想重新创建演示网站,我们建议您从本系列的开头开始。 在本系列结束时,您应该有一个准备好部署到云的网站,并且基本熟悉 HTML。了解如何编写 HTML 将为学习其他前端 Web 开发技能(例如 CSS 和 JavaScript)奠定坚实的基础。 本教程将引导您完成<head>向网页添加元素的步骤,这将为我们创建一个部分,以包含有关我们 Web 文档的机器可读信息。此信息主要由浏览器和搜索引擎用于解释页面内容。放置在<head>元素内的内容在网页上将不可见。 注意:HTML<head>元素是一种语义元素,它告诉浏览器和开发人员其内容的含义或目的。语义元素用于帮助 HTML 文档的人类可读性,为浏览器提供解释内容的更多信息,提高站点可访问性(屏幕阅读器使用语义标签),并可以帮助 SEO 定位。 在<head>标签内添加开始和结束<html>标签。接下来,在<head>标签中添加两行额外的 HTML 代码,如下所示: <!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″> <title>Sammy’s First Website</title> </head> </html> 请注意,您已将各种 HTML 元素相互嵌套。的<title>和<meta>元件嵌套在<head>元素的内部,并且所述<head>元件嵌套在内部<html>元件。随着教程的进行,我们将经常嵌套元素。 现在让我们暂停一下,以了解我们刚刚添加的代码的用途。开始<head>标记之后的代码行<meta charset=”utf-8″>——将文档的字符集指定为 UTF-8,这是一种支持来自各种书面语言的大多数字符的 Unicode 格式。 下一行代码使用<title>元素设置 HTML 文档的标题。您插入到此元素中的内容将显示在浏览器选项卡上,并作为搜索结果中的网站标题显示,但不会显示在网页本身上。确保将“Sammy’s First Website”替换为您的姓名或您正在构建的网站的名称。 尽管开发人员经常在该<head>部分添加附加信息,但我们现在有足够的信息来创建基本的 HTML ..

Read more