在Ubuntu 16.04上使用LEMP安装WordPress的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
WordPress 是互联网上最流行的 CMS(内容管理系统)。它允许您在 MySQL 后端和 PHP 处理的基础上轻松设置灵活的博客和网站。WordPress 已经被广泛采用,并且是快速搭建网站的绝佳选择。设置完成后,几乎所有管理工作都可以通过 Web 前端完成。
在本指南中,我们将专注于在 Ubuntu 16.04 服务器上使用 LEMP 栈(Linux、Nginx、MySQL 和 PHP)设置 WordPress 实例。
先决条件
要完成本教程,您需要访问 Ubuntu 16.04 服务器。
在开始本指南之前,您需要执行以下任务:
- 在服务器上创建一个
sudo
用户:我们将使用具有sudo
权限的非根用户完成本指南中的步骤。您可以按照我们的 Ubuntu 16.04 初始服务器设置指南创建一个具有sudo
权限的用户。 - 安装 LEMP 栈:WordPress 需要一个 Web 服务器、一个数据库和 PHP 才能正确运行。设置 LEMP 栈(Linux、Nginx、MySQL 和 PHP)可以满足所有这些要求。按照本指南安装和配置这些软件。
- 使用 SSL 保护您的站点:WordPress 提供动态内容并处理用户身份验证和授权。TLS/SSL 是一种技术,可以让您加密站点的流量,使您的连接更加安全。设置 SSL 的方式将取决于您是否拥有站点的域名。
- 如果您拥有域名… 保护您的站点最简单的方式是使用 Let’s Encrypt,它提供免费的受信任证书。按照我们的 Let’s Encrypt 指南为 Nginx 设置这个。
- 如果您没有域名… 并且您只是用这个配置进行测试或个人使用,您可以使用自签名证书。这提供了相同类型的加密,但没有域名验证。按照我们的 Nginx 自签名 SSL 指南进行设置。
完成设置步骤后,以您的 sudo
用户登录到服务器并继续以下步骤。
步骤 1:为 WordPress 创建 MySQL 数据库和用户
我们将采取的第一步是一个准备工作。WordPress 使用 MySQL 来管理和存储站点和用户信息。我们已经安装了 MySQL,但我们需要为 WordPress 创建一个数据库和一个用户。
首先,通过发出以下命令登录到 MySQL root(管理)帐户:
mysql -u root -p
输入您在安装软件时为 MySQL root 帐户设置的密码。
首先,我们可以创建一个 WordPress 可以控制的单独数据库。您可以随意命名它,但为了简单起见,我们将在本指南中使用 wordpress
。您可以通过输入以下命令为 WordPress 创建数据库:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
接下来,我们将创建一个单独的 MySQL 用户帐户,我们将专门用于操作我们的新数据库。从管理和安全的角度来看,创建单一功能的数据库和帐户是一个好主意。在本指南中,我们将使用名称 wordpressuser
。如果您愿意,可以随意更改此名称。
我们将创建此帐户,设置密码,并授予我们创建的数据库访问权限。您可以通过输入以下命令来执行此操作。请记住为您的数据库用户选择一个强密码:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
现在您已经拥有了一个专门为 WordPress 创建的数据库和用户帐户。我们需要刷新权限,以便当前的 MySQL 实例知道我们所做的最近更改:
FLUSH PRIVILEGES;
通过输入以下命令退出 MySQL:
EXIT;
步骤 2:调整 Nginx 的配置以正确处理 WordPress
接下来,我们将对 Nginx 服务器块文件进行一些微小的调整。
首先,使用 sudo
权限打开默认的服务器块文件:
sudo nano /etc/nginx/sites-available/default
在主 server
块内,我们需要添加一些 location
块。
首先,为对 /favicon.ico
和 /robots.txt
的请求创建精确匹配的 location
块,我们不希望记录这些请求。
我们将使用正则表达式 location
来匹配任何静态文件的请求。我们将再次关闭这些请求的日志记录,并将它们标记为高度可缓存,因为这些通常是昂贵的资源。您可以调整此静态文件列表,以包含站点可能使用的任何其他文件扩展名:
server {. . .location = /favicon.ico { log_not_found off; access_log off; }location = /robots.txt { log_not_found off; access_log off; allow all; }location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {expires max;log_not_found off;}. . .
}
在现有的 location /
块内,我们需要调整 try_files
列表,以便在默认选项返回 404 错误的地方,将控制传递给带有请求参数的 index.php
文件。
这应该看起来像这样:
server {. . .location / {#try_files $uri $uri/ =404;try_files $uri $uri/ /index.php$is_args$args;}. . .
}
完成后,保存并关闭文件。
现在,通过输入以下命令检查我们的配置是否存在语法错误:
sudo nginx -t
如果没有报告错误,则通过输入以下命令重新加载 Nginx:
sudo systemctl reload nginx
步骤 3:安装额外的 PHP 扩展
在设置 LEMP 栈时,我们只需要一个非常基本的扩展集合,以便让 PHP 能够与 MySQL 进行通信。WordPress 和许多插件利用了额外的 PHP 扩展。
我们可以通过以下命令下载并安装一些最受欢迎的用于 WordPress 的 PHP 扩展:
sudo apt-get update
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
安装完扩展后,重新启动 PHP-FPM 进程,以便运行的 PHP 处理器可以利用新安装的功能:
sudo systemctl restart php7.0-fpm
步骤 4:下载 WordPress
现在我们的服务器软件已配置好,可以下载并设置 WordPress。出于安全原因,建议始终从其官网获取最新版本的 WordPress。
切换到可写目录,然后通过以下命令下载压缩版本:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
解压缩文件以创建 WordPress 目录结构:
tar xzvf latest.tar.gz
我们将很快将这些文件移动到我们的文档根目录。在这之前,我们可以将示例配置文件复制到 WordPress 实际读取的文件名:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
我们还可以创建 upgrade
目录,这样 WordPress 在更新软件后就不会遇到权限问题:
mkdir /tmp/wordpress/wp-content/upgrade
现在,我们可以将整个目录的内容复制到我们的文档根目录。我们使用 -a
标志来确保权限得到维持。我们在源目录的末尾使用一个点来指示应该复制目录中的所有内容,包括任何隐藏文件:
sudo cp -a /tmp/wordpress/. /var/www/html
步骤 5:配置 WordPress 目录
在进行基于 Web 的 WordPress 设置之前,我们需要调整 WordPress 目录中的一些项目。
调整所有权和权限
我们需要完成的重要任务之一是设置合理的文件权限和所有权。我们需要能够以普通用户身份写入这些文件,并且我们需要 Web 服务器也能够访问和调整某些文件和目录以正确运行。
首先,我们将所有文件的所有权分配给我们的用户名。在本指南中,我们将使用 sammy
作为我们的用户名,但您应该将其更改为与您的 sudo
用户匹配的用户名。我们将分配 www-data
组所有权:
sudo chown -R sammy:www-data /var/www/html
接下来,我们将在文档根目录中的每个目录上设置 setgid
位。这会导致在这些目录中创建的新文件继承父目录的组(我们刚刚设置为 www-data
)而不是创建用户的主要组。这只是确保无论我们在命令行中的目录中创建文件时,Web 服务器仍然拥有组所有权。
我们可以通过输入以下命令在我们的 WordPress 安装中的每个目录上设置 setgid
位:
sudo find /var/www/html -type d -exec chmod g+s {} \;
我们将调整一些其他细粒度的权限。首先,我们将给 wp-content
目录分配组写权限,以便 Web 界面可以进行主题和插件更改:
sudo chmod g+w /var/www/html/wp-content
作为此过程的一部分,我们将给 Web 服务器写权限以访问这两个目录中的所有内容:
sudo chmod -R g+w /var/www/html/wp-content/themes
sudo chmod -R g+w /var/www/html/wp-content/plugins
这应该是一个合理的权限设置。某些插件和程序可能需要额外的调整。
设置 WordPress 配置文件
现在,我们需要对主 WordPress 配置文件进行一些更改。
打开文件后,我们首先要做的是调整一些密钥,以提供安装的安全性。WordPress 提供了一个安全的生成器,用于生成这些值,因此您无需自己想出好的值。这些值仅在内部使用,因此在这里使用复杂的安全值不会影响可用性。
要从 WordPress 密钥生成器获取安全值,请输入:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
您将收到类似以下内容的唯一值:
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 请勿复制这些值 c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X 请勿复制这些值 {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF 请勿复制这些值 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ 请勿复制这些值 #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT', 'koMrurzOA+|L_lG}kf 请勿复制这些值 07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY 请勿复制这些值 C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 请勿复制这些值 t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 请勿复制这些值 1% ^qUswWgn+6&xqHN&%');
这些是我们可以直接粘贴到配置文件中的配置行,以设置安全密钥。现在复制您收到的输出。
接下来,打开 WordPress 配置文件:
nano /var/www/html/wp-config.php
找到包含这些设置的虚拟值的部分。它看起来类似于:
. . .define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');. . .
删除这些行,并粘贴从命令行复制的值:
. . .define('AUTH_KEY', '从命令行复制的值');
define('SECURE_AUTH_KEY', '从命令行复制的值');
define('LOGGED_IN_KEY', '从命令行复制的值');
define('NONCE_KEY', '从命令行复制的值');
define('AUTH_SALT', '从命令行复制的值');
define('SECURE_AUTH_SALT', '从命令行复制的值');
define('LOGGED_IN_SALT', '从命令行复制的值');
define('NONCE_SALT', '从命令行复制的值');. . .
接下来,我们需要修改文件开头的一些数据库连接设置。您需要调整数据库名称、数据库用户以及我们在 MySQL 中配置的相关密码。
我们需要进行的另一个更改是设置 WordPress 应该使用的文件系统写入方法。由于我们已经给予 Web 服务器在需要时写入的权限,因此我们可以明确地将文件系统方法设置为“direct”。如果不使用当前设置进行此设置,WordPress 在执行某些操作时会提示输入 FTP 凭据。
此设置可以添加到文件中的数据库连接设置下方,或者添加到文件的任何其他位置:
. . .define('DB_NAME', 'wordpress');/** MySQL database username */
define('DB_USER', 'wordpressuser');/** MySQL database password */
define('DB_PASSWORD', 'password');. . .define('FS_METHOD', 'direct');
完成后保存并关闭文件。
步骤 6:通过 Web 界面完成安装
现在服务器配置已经完成,我们可以通过 Web 界面完成安装。
在您的 Web 浏览器中,导航至服务器的域名或公共 IP 地址:
http://server_domain_or_IP
选择您想要使用的语言:
!WordPress 语言选择
接下来,您将进入主要设置页面。
为您的 WordPress 网站选择一个名称并选择一个用户名(出于安全考虑,建议不要选择类似 “admin” 的用户名)。系统会自动生成一个强密码。请保存此密码或选择其他强密码。
输入您的电子邮件地址,并选择是否希望阻止搜索引擎索引您的网站:
!WordPress 设置安装
当您点击继续后,将会进入登录页面:
!WordPress 登录提示
登录后,您将进入 WordPress 管理面板:
!WordPress 登录提示
升级 WordPress
随着 WordPress 升级的推出,您将无法通过当前权限在界面上安装它们。
我们在这里选择的权限旨在在升级之间的 99% 的时间内提供安全性和可用性之间的良好平衡。然而,它们对于软件自动应用更新来说有些过于限制。
当有更新可用时,请以您的 sudo
用户身份重新登录到服务器。临时将 Web 服务器进程访问整个文档根目录:
sudo chown -R www-data /var/www/html
现在,返回 WordPress 管理面板并应用更新。
完成后,出于安全考虑再次锁定权限:
sudo chown -R sammy /var/www/html
这只在应用 WordPress 升级时才需要进行。
结论
WordPress 应该已经安装并准备就绪!一些常见的下一步是为您的文章选择永久链接设置(可以在 设置 > 永久链接
中找到)或选择一个新主题(在 外观 > 主题
中)。如果这是您第一次使用 WordPress,请稍微探索一下界面,以熟悉您的新 CMS。
相关文章:
在Ubuntu 16.04上使用LEMP安装WordPress的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 WordPress 是互联网上最流行的 CMS(内容管理系统)。它允许您在 MySQL 后端和 PHP 处理的基础上轻松设置灵…...
显示器放大后,大漠识图识色坐标偏移解决方法
原因分析: 显示器分辨率较高,DPI设置放大125% or 150% or 200%,游戏打开时也会默认会根据显示器的放大比例自行放大,但是大漠综合管理工具抓图不会放大; 解决方法: 1、大漠综合管理…...
C++容器之list基本使用
目录 前言 一、list的介绍? 二、使用 1.list的构造 2.list iterator的使用 3.list capacity 🥇 empty 🥇size 4.list element access 🥇 front 🥇 back 5.list modifiers 🥇 push_front 🥇 po…...
Redis-哨兵
概念 Redis Sentinel 相关名词解释 注意: 哨兵机制不负责存储数据,只是对其它的redis-server进程起到监控的作用哨兵节点,也会搞一个集合,防止一个挂了 ⼈⼯恢复主节点故障 用户监控: 实际开发中,对于服务器后端开发,监控程序,是很重要的 服务器长期运行,总会有一些意外,…...
Pikachu-Sql-Inject - 基于时间的盲注
基于时间的盲注: 就是前端的基于time 的盲注,什么错误信息都看不到,但是还可以通过特定的输入,判断后台的执行时间,从而确定注入。 mysql 里函数sleep() 是延时的意思,sleep(10)就是数据库延时10 秒返回内…...
JAVA开源项目 旅游管理系统 计算机毕业设计
本文项目编号 T 063 ,文末自助获取源码 \color{red}{T063,文末自助获取源码} T063,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…...
景联文科技入选《2024中国AI大模型产业图谱2.0版》数据集代表厂商
近日,大数据产业领域头部媒体数据猿携手上海大数据联盟联合发布了备受瞩目的《2024中国AI大模型产业图谱2.0版》。以大数据与AI为代表的智能技术为主要视角,聚焦全产业链,为业内提供更为专业直观的行业指导。 景联文科技凭借高质量数据集&…...
【C语言】内存函数的使用和模拟实现
文章目录 一、memcpy的使用和模拟实现二、memmove的使用和模拟实现三、memset的使用四、memcmp的使用 一、memcpy的使用和模拟实现 在之前我们学习了使用和模拟实现strncpy函数,它是一个字符串函数,用来按照给定的字节个数来拷贝字符串,那么问…...
在WPF中实现多语言切换的四种方式
在WPF中有多种方式可以实现多语言,这里提供几种常用的方式。 一、使用XML实现多语言切换 使用XML实现多语言的思路就是使用XML作为绑定的数据源。主要用到XmlDataProvider类. 使用XmlDataProvider.Source属性指定XML文件的路径或通过XmlDataProvider.Document指定…...
30min 的OpenCV learning Note
1.安装python和pycharm与环境搭配 打开Windows终端:(winR)(一般使用清华镜像网站安装库比较快) pip install opencv-contrib-python -i https://pypi.mirrors.ustc.edu.cn/simple 或者 python -m pip install open…...
C--编译和链接见解
欢迎各位看官!如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论 感谢各位看官的支持!!! 一:翻译环境和运行环境 在ANSIIC的任何一种实现中,存在两个不同的环境1,…...
【QT Quick】基础语法:基础类与控件
QML 的基础类和控件中,我们可以看到主要的几个分类:基础控件类、窗口类以及组件类。以下是对这些控件及其属性、继承关系等的详细讲解: 控件关系总结 QtObject 是所有 QML 对象的基类。它定义了基础属性,主要用于逻辑和数据封装…...
使用 SSH 连接 Docker 服务器:IntelliJ IDEA 高效配置与操作指南
使用 SSH 连接 Docker 服务器:IntelliJ IDEA 高效配置与操作指南 本文详细介绍了如何在 2375 端口未开放的情况下,通过 SSH 连接 Docker 服务器并在 Idea 中进行开发。通过修改用户权限、生成密钥对以及配置 SSH 访问,用户可以安全地远程操作…...
Gas费用是什么?
Gas费用是什么? 每5个Byte 需要1个GasGasLimit 用来限制合约最多执行多少次运算GasPrice 每次计算需要支付的费用在Web3的语境中,尤其是在以太坊(Ethereum)这样的区块链平台上,Gas费是一个核心概念。以下是关于Gas费的详细解释: 1. 定义 Gas是以太坊网络上的计算单位,…...
大语言模型(LLM)的子模块拆拆分进行联邦学习;大语言模型按照多头(Multi-Head)拆分进行联邦学习
目录 大语言模型(LLM)的子模块拆拆分进行联邦学习 方式概述 简单示例 大语言模型按照多头(Multi-Head)拆分进行联邦学习 场景设定 多头拆分与联邦学习 示例说明 大语言模型(LLM)的子模块拆拆分进行联邦学习 大语言模型(LLM)的子模块拆分进行联邦学习,主要涉及…...
Qt 概述
1. Qlabel HelloWorld 程序 使用纯代码实现 // widget.cpp Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 给当前这个lable对象,指定一个父对象QLabel* label new QLabel(this);// C语言风格的字符串可以直接…...
移动应用的界面配置-手机银行APP
设置登录界面为线性布局,组件垂直居中排列设置主页为滚动模式,包括布局、添加背景图片设置按钮样式,包括形状、边框线的宽度和颜色 设置登录界面 设置界面为线性布局,组件垂直居中排列 --android:gravity"center_vertical…...
微服务nginx解析部署使用全流程
目录 1、nginx介绍 1、简介 2、反向代理 3、负载均衡 2、安装nginx 1、下载nginx 2、解压nginx安装包 3、安装nginx编辑 1、执行configure命令 2、执行make命令 4、启动nginx 1、查找nginx位置并启动 2、常用命令 3、反向代理 1、介绍反向代理配置 1、基础配置…...
华硕天选笔记本外接音箱没有声音
系列文章目录 文章目录 系列文章目录一.前言二.解决方法第一种方法第二种方法 一.前言 华硕天选笔记本外接音箱没有声音,在插上外接音箱时,系统会自动弹出下图窗口 二.解决方法 第一种方法 在我的电脑上选择 Headphone Speaker Out Headset 这三个选项…...
Unity中Socket_TCP异步连接,加入断线检测以及重连功能
1、服务端 using System; using System.Collections.Generic; using System.Text; #region 命名空间 using System.Net; using System.Net.Sockets; using System.Threading; using UnityEngine; #endregionnamespace AsynServerConsole {/// <summary>/// Tcp协议异步通…...
Android build子系统(01)Ninja构建系统解读
说明:本文将解读Ninja构建系统,这是当前Android Framework中广泛使用的构建工具。我们将从Ninja的起源和背景信息开始,逐步解读Ninja的优势和核心原理,并探讨其一般使用场景。然后介绍其在Android Framework中的应用及相关工具&am…...
徐老师的吉祥数
题目背景 文件读写 输入文件avoid.in 输出文件avoid.out 限制 1000ms 512MB 题目描述 众所周知, 3这个数字在有些时候不是很吉利,因为它谐音为 “散” 所以徐老师认为只要是 3的整数次幂的数字就不吉利 现在徐老师想知道,在某个范围[l,r] …...
使用html写一个能发起请求的登录界面
目录 head部分 内联样式部分 body部分 login-form类的div myModal类的div id script部分 总的代码 界面与操作演示 <!DOCTYPE html> <html lang"en"> <!DOCTYPE html> 这是文档类型声明,告诉浏览器这是一个 HTML文档。 <…...
五子棋双人对战项目(2)——登录模块
目录 一、数据库模块 1、创建数据库 2、使用MyBatis连接并操作数据库 编写后端数据库代码 二、约定前后端交互接口 三、后端代码编写 文件路径如下: UserAPI: UserMapper: 四、前端代码 登录页面 login.html: 注册页面…...
几种操作系统和几种cpu
常见的操作系统:windows,linux,macOS,统信,deepin,raspberry,andriod,iOS,鸿蒙,等等。 常见的cpu:intel,amd,龙芯&#x…...
[Cocoa]_[初级]_[使用NSNotificationCenter作为目标观察者实现时需要注意的事项]
场景 在开发Cocoa程序时,由于界面是用Objective-C写的。无法使用C的目标观察者[1]类。如果是使用第二种方案2[2],那么也需要增加一个代理类。那么有没有更省事的办法? 说明 开发界面的时候,经常是需要在子界面里传递数据给主界面࿰…...
彩虹易支付最新版源码及安装教程(修复BUG+新增加订单投诉功能)
该源码当前版本为较新的版本,新增了订单投诉功能和一套精美的二次元模板。 此版本为全开源版本,所有文件均未加密。系统默认安装完成后无法直接打开,需要进一步配置。 本站特别针对BUG文件进行了修复,且在PHP7.4环境下表现良好。…...
ping香港服务器超时的原因通常有哪些?
Ping命令用于测试计算机与目标服务器之间的网络连接。当您在尝试使用ping命令检测服务器时遇到超时的情况,通常可能是由以下原因造成的: 1. 网络连接问题: - 本地网络故障:如网线损坏、路由器故障或配置不当。 - ISP(互联网服务提…...
书生大模型实战(从入门到进阶)L3-彩蛋岛-InternLM 1.8B 模型 Android 端侧部署实践
目录 1 环境准备 1.1 安装rust 1.2 安装Android Studio 1.3 设置环境变量 2 转换模型 2.1 安装mlc-llm 2.2 (可选)转换参数 2.3 (可选)生成配置 2.4 (可选)上传到huggingface 2.5 (可选) 测试转换的模型 3 打包运行 3.1 修改配置文件 3.2 运行打包命令 3.3 创建签…...
setState是同步更新还是异步更新
setState是同步更新还是异步更新 先说结论setState为什么设计为异步react18之前为什么不确定是同步还是异步呢react18之后setState有哪些改动 先说结论 React18之前:使用了ReactDOM.render,setState在React调度流程中是异步更新,在原生事件和…...
郑州网站建设 云极/免费seo排名优化
在深交所挂牌上市的国内“三网融合”龙头企业华数传媒31日晚发布公告,其全资子公司华数传媒网络有限公司与阿里云有限公司签署为期两年的战略合作协议,共同拓展全媒体和云计算市场。 根据公告披露的内容,双方将构建媒体…...
新手做自己的网站教程/长沙建站优化
bcreate the data quickly and easily。考虑测试运行的速度。fixtures and factories.以及下章讨论的test doubles,还有原生的create创建的,没有一个方案可以解决所有情景。Fxitures如果想使用固件。RSpec目录是spec/fixtures/projects.yml。 Mini test的…...
免费浏览的网站/凡科建站怎么样
icanhazip.com 使您在任何地方知道你的公网IP地址 icanhazip.com 使你在任何地方知道你的公网IP地址 icanhazip.com 使你在任何地方知道你的公网IP地址 icanhazip.com是一个网址,你在浏览器中输入这个网址,你就能得到你的公网IP地址了。 我在Linux下一般…...
惠州网站建设学校/市场监督管理局
这种功能我们一般把秘钥让用户自己设置。对吧 那么就需要一个设置页面 如果没设置就点不进去 那么如何操作呢 书接上回 清零已有的key data class TrelloState(var apiKey:String"",var token:String"",var fromListId:String"",var toList…...
网站代理设置/太原seo快速排名怎么样
7-3 树的同构(25 分) 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵…...
wordpress 无法登录/短视频剪辑培训班速成
测试地址: https://sms.idxkj.cn 用户名:aa 密码:123456 转载于:https://www.cnblogs.com/interdrp/p/6733845.html...