Category : 教程系列

该系列的一部分: 如何编写 Ansible Playbooks Ansible 是一种现代配置管理工具,不需要在远程节点上使用代理软件,仅使用 SSH 和 Python 在托管服务器上进行通信和执行命令。本系列将带您了解可用于编写服务器自动化剧本的主要 Ansible 功能。最后,我们将看到一个实际示例,说明如何创建剧本以自动设置远程 Nginx Web 服务器并向其部署静态 HTML 网站。 简而言之,处理程序是只有在通过notify指令触发时才会执行的特殊任务。一旦所有任务完成,处理程序将在播放结束时执行。 在 Ansible 中,处理程序通常用于启动、重新加载、重新启动和停止服务。如果您的剧本涉及更改配置文件,则很有可能您需要重新启动服务以使更改生效。在这种情况下,您需要为该服务定义一个处理程序,并notify在需要该服务处理程序的任何任务中包含该指令。 在本系列的前一部分中,您已经了解了如何使用模板将默认的 Nginx 页面替换为自定义的 HTML 登录页面。实际上,在设置 Nginx Web 服务器时,您很可能会在sites-available目录中包含新的服务器块文件、创建符号链接或更改需要重新加载或重新启动服务器的设置。 考虑到这种情况,重新启动 Nginx 服务的处理程序如下所示: … handlers: – name: Restart Nginx service: name: nginx state: restarted 要触发此处理程序,您需要notify在任何需要在 Nginx 服务器上重新启动的任务中包含一个指令。 以下 playbook 使用内置的 Ansible 模块replace 替换了 Nginx 配置文件中的默认文档根目录。此模块根据由 定义的正则表达式在文件中查找模式regexp,然后将找到的任何匹配项替换为由 ..

Read more

介绍 在某些时候,您的 Web 应用程序可能需要为多语言用户群提供服务。国际化,或简称i18n,是使您的应用程序可用于具有不同母语的人的过程。 虽然 Angular 有一些内置的 i18n 功能,但它ngx-translate是一个第三方包,它提供了一些可能更适合您的用例的功能。 在本文中,您将ngx-translate在 Angular 应用程序中使用。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 对设置 Angular 项目有一定的了解。 本教程已通过 Node v16.4.0、npmv7.19.0、@angular/corev12.1.0、@ngx-translate/corev13.0.0 和@ngx-translate/http-loaderv6.0.0 验证。 设置项目 创建一个全新的 Angular 应用程序并添加一些依赖项。 打开您的终端并用于@angular/cli创建一个新项目: ng new angular-ngx-translate-example –skip-tests 然后导航到新创建的项目目录: cd angular-ngx-translate-example 接下来,运行以下命令将包添加到您的应用程序: npm install @ngx-translate/[email protected] 现在导入TranslateModule您的AppModule: src/app/app.module.ts import { NgModule } from ‘@angular/core’; import { BrowserModule } from ..

Read more

该系列的一部分: 如何编写 Ansible Playbooks Ansible 是一种现代配置管理工具,不需要在远程节点上使用代理软件,仅使用 SSH 和 Python 在托管服务器上进行通信和执行命令。本系列将带您了解可用于编写服务器自动化剧本的主要 Ansible 功能。最后,我们将看到一个实际示例,说明如何创建剧本以自动设置远程 Nginx Web 服务器并向其部署静态 HTML 网站。 默认情况下,在执行 playbook 中定义的一组任务之前,Ansible 将花一些时间来收集有关正在配置的系统的信息。此信息称为事实,包含诸如网络接口和地址、远程节点上运行的操作系统以及可用内存等详细信息。 Ansible 以 JSON 格式存储事实,项目按节点分组。要检查您正在配置的系统有哪些类型的信息,您可以setup使用 ad hoc 命令运行该模块: ansible all -i inventory -m setup -u sammy 此命令将输出包含有关您的服务器的信息的大量 JSON。要获取该数据的子集,您可以使用该filter参数并提供一个模式。例如,如果您想获取有关远程节点中所有 IPv4 地址的信息,您可以使用以下命令: ansible all -i inventory -m setup -a “filter=*ipv4*” -u sammy 你会看到这样的输出: Output203.0.113.10 | SUCCESS => ..

Read more

介绍 SOLID是 Robert C. Martin(也称为Uncle Bob)的前五个面向对象设计 (OOD) 原则的首字母缩写词。 注意:虽然这些原则适用于各种编程语言,但本文中包含的示例代码将使用 PHP。 这些原则建立了有助于开发软件的实践,同时考虑到随着项目的发展而维护和扩展。采用这些实践还有助于避免代码异味、重构代码以及敏捷或自适应软件开发。 固体代表: S – 单一职责原则 O——开闭原则 L – Liskov 替换原则 I – 接口隔离原则 D – 依赖倒置原则 在本文中,您将分别介绍每个原则,以了解 SOLID 如何帮助您成为更好的开发人员。 单一职责原则 单一职责原则 (SRP) 规定: 一个班级应该只有一个改变的理由,这意味着一个班级应该只有一个工作。 例如,考虑一个应用程序,它采用一组形状(圆形和正方形)并计算该集合中所有形状的面积总和。 首先,创建形状类并让构造函数设置所需的参数。 对于正方形,您需要知道length边的 : class Square { public $length; public function construct($length) { $this->length = $length; } } 对于圈子,您需要知道radius: class Circle ..

Read more

今天我们将讨论如何在中间件中使用路由参数,这个任务可能会出现在您的工作流程中。 什么是中间件? 中间件只是包装应用程序的请求。可以这样想,当向您的应用程序发出请求时,有处理请求的代码,但是如果您希望在处理请求的代码运行之前或之后发生某些事情,则可以放入中间件。 Laravel 附带了一些用于维护、身份验证和 CSRF 保护的内置中间件,它们都可以在Laravel 项目文件夹内的app/Http/Middleware目录中找到。 Laravel 路由参数 Laravel 路由位于app/Http/routes.php文件中。一个路由通常有 URL 路径,以及一个处理函数回调,通常是某个控制器中编写的函数。 // Inline function to handle the route Route::get(‘/’, function () { return view(‘welcome’); }); // Controller function to handle the route Route::get(‘/profile’, ‘ProfileController@index’); 路由中提供的参数通常用花括号注释。例如,要将 name 参数传递给路由,它看起来像这样。 Route::get(‘/params/{name}’, function ($name) { return $name }); 按照惯例,Controller 函数根据提供的参数接受参数。 访问路由参数 然而,访问中间件中的参数并不是那么直接。首先让我们创建一个称为DumpMiddleware转储路由中提供的参数的中间件。 php artisan make:middleware DumpMiddleware ..

Read more

该系列的一部分: 如何编写 Ansible Playbooks Ansible 是一种现代配置管理工具,不需要在远程节点上使用代理软件,仅使用 SSH 和 Python 在托管服务器上进行通信和执行命令。本系列将带您了解可用于编写服务器自动化剧本的主要 Ansible 功能。最后,我们将看到一个实际示例,说明如何创建剧本以自动设置远程 Nginx Web 服务器并向其部署静态 HTML 网站。 Ansible 支持使用变量来更好地自定义任务和剧本的执行。这样,就可以对不同的目标和环境使用相同的剧本。 变量可以来自不同的来源,例如剧本文件本身或剧本中导入的外部变量文件。当使用定义同名变量的多个变量源时,将应用特殊的优先规则。 为了了解变量在实践中是如何工作的,我们将创建一个新的测试手册,该手册将打印两个变量的值,username以及home_dir. playbook-02.yml在您的ansible-practice目录中创建一个名为的新文件: nano ~/ansible-practice/playbook-02.yml 然后将以下行添加到新的剧本文件中: ~/ansible-practice/playbook-02.yml — – hosts: all vars: – username: sammy – home: /home/sammy tasks: – name: print variables debug: msg: “Username: {{ username }}, Home dir: {{ home }}” 完成编辑后保存并关闭文件。 vars剧本的部分定义了将在该剧本的范围内注入的变量列表。所有任务,以及可能包含在剧本中的任何文件或模板,都可以访问这些变量。 ..

Read more

介绍 开发人员使用级联样式表 (CSS) 来设计网站样式。但通常,在构建大型网站或应用程序时,从头开始编写这些规则会变得乏味。这就是为什么有多个 CSS 框架可以帮助简化编写 CSS,例如Bootstrap、Foundation、Bulma、Pure、Materialize等。 Tailwind CSS是一个与前面提到的有些不同的框架,因为它没有默认主题,也没有内置 UI 组件。Tailwind 是一个实用优先的 CSS 框架,用于快速构建自定义用户界面。这意味着,如果您正在寻找一个带有预设计小部件菜单的框架来构建您的网站,Tailwind 可能不是适合您的框架。相反,Tailwind 提供了高度可组合的低级实用程序类,可以更轻松地构建复杂的用户界面,而不会鼓励任何两个站点看起来相同。 在本教程中,您将构建一个登陆页面,向客户展示智能健康监测手表 (SHMW) 产品。 最终产品将如下所示: 登陆页面将分为以下几个部分: 导航栏 英雄部分 功能部分 感言 呼吁采取行动 页脚 您可以在此 GitHub 页面下载此项目的资产。 先决条件 对 CSS 有基本的了解可能会有所帮助,但不是必需的。 步骤 1 — 设置项目 我们将首先创建一个新的项目目录,我们将调用该目录shmw并在其中创建一个index.html文件。 mkdir shmw cd shmw nano index.html 为了使用 Tailwind CSS 快速启动并运行,我们将通过 CDN(内容交付网络)获取最新的默认配置版本。将以下代码段添加到index.html: 索引.html <!DOCTYPE html> <html lang=”en”> ..

Read more

介绍 Anaconda 是 Python 和 R 编程语言的开源包管理器、环境管理器和发行版。 本教程将指导您在 Ubuntu 20.04 服务器上安装 Python 3 版本的 Anaconda。有关本教程的更详细版本以及对每个步骤的更详尽解释,请参阅如何在 Ubuntu 20.04 上安装 Anaconda Python 发行版。 步骤 1 — 检索最新版本的 Anaconda 在 Web 浏览器中,在Anaconda 下载页面上找到适用于 Python 3 的最新版本的 Anaconda : https://www.anaconda.com/distribution/ 在撰写本文时,最新版本是 2020.02,但如果可用,您应该使用更高的稳定版本。 步骤 2 — 下载 Anaconda Bash 脚本 以/tmpsudo 非 root 用户身份切换到Ubuntu 20.04 服务器上的目录。 cd /tmp 使用curl下载您从巨蟒网站复制的链接。我们将把它输出到一个叫作anaconda.sh快速使用的文件中。 curl ..

Read more

作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 忘记密码发生在我们最好的人身上。如果您忘记或丢失MySQL 或 MariaDB 数据库的root密码,如果您有权访问服务器和具有sudo特权的用户帐户,您仍然可以访问并重置密码。 注意:在全新的 Ubuntu 18.04 安装中,默认的 MySQL 或 MariaDB 配置通常允许您访问数据库(具有完全管理权限),而无需提供密码,只要您从系统的root帐户建立连接即可。在这种情况下,可能不需要重置密码。在重置数据库root密码之前,请尝试使用该sudo mysql命令访问数据库。仅当更改了身份验证的默认配置并导致访问被拒绝错误时,请按照本教程中的步骤操作。 本教程演示了如何为在 Ubuntu 18.04 上使用包管理器安装的 MySQL 和 MariaDB 数据库重置root密码apt。更改 root 密码的过程因您是否安装了 MySQL 或 MariaDB 以及其他供应商的发行版或软件包附带的默认 systemd 配置而异。虽然本教程的说明可能适用于其他系统或数据库服务器版本,但它们已经在 Ubuntu 18.04 和发行版提供的软件包中进行了明确测试。 先决条件 要恢复您的 MySQL 或 MariaDB根密码,您需要: 使用 sudo 用户或其他使用 root 权限访问服务器的方式访问运行 MySQL 或 MariaDB 的 Ubuntu 18.04 服务器。为了在不影响生产服务器的情况下尝试本教程中的恢复方法,请使用初始服务器设置教程创建一个具有 sudo ..

Read more

作者选择了技术多样性基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 Apache 的mod_rewrite模块让您可以更干净地重写 URL,将人类可读的路径转换为代码友好的查询字符串。它还使您能够根据条件重写 URL。 一个.htaccess文件,您可以创建并应用重写规则,而无需访问服务器配置文件。通过将.htaccess文件放在网站的根目录中,您可以在每个站点或每个目录的基础上管理重写。 在本教程中,您将启用mod_rewrite并使用.htaccess文件来创建基本的 URL 重定向,然后探索几个高级用例。 先决条件 要学习本教程,您需要: 按照Ubuntu 20.04 初始服务器设置指南设置一台 Ubuntu 20.04 服务器,包括一个 sudo 非 root 用户和一个防火墙。 按照如何在 Ubuntu 20.04 上安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈的步骤 1安装 Apache。 步骤 1 — 启用 mod_rewrite 为了让 Apache 理解重写规则,我们首先需要激活mod_rewrite. 它已安装,但在默认 Apache 安装中被禁用。使用a2enmod命令启用模块: sudo a2enmod rewrite 这将激活模块或提醒您该模块已启用。要使这些更改生效,请重新启动 Apache。 sudo systemctl restart apache2 mod_rewrite现在已完全启用。在下一步中,我们将设置一个.htaccess文件,用于定义重定向的重写规则。 第 ..

Read more