如何使用 DevKinsta 设置本地 WordPress 开发环境
已发表: 2021-01-28无论您是在测试新插件、设计、编写代码,还是只是在修补,本地 WordPress 开发环境都可以派上用场。 Kinsta 推出了一个新工具 DevKinsta,以帮助简化整个过程。

使用 DevKinsta,Nginx、PHP 和 MySQL 都是自动配置的。 它适用于 macOS、Windows 和 Ubuntu/Linux 。 它也是永久免费的,因此您不必担心以后会出现专业版。
下面我将深入探讨如何设置 DevKinsta 以及您可以使用它的几种不同方式。 重要的是要注意,您不必成为 Kinsta 客户即可使用 DevKinsta,但如果您是,有一些非常酷的优势可以简化您的工作流程。
- 好处
- 缺点
- 介绍 DevKinsta
- 如何安装 DevKinsta
- 如何安装本地站点
- 如何导入现有的 Kinsta 网站
- 如何创建自定义站点
- DevKinsta 屏幕和设置
本地 WordPress 开发环境的优势
本地 WordPress 开发环境的想法并不是什么新鲜事。 对于许多人来说,多年来,这一直是他们常规工作流程的一部分。 您拥有现有的工具,例如 Flywheel 的 Local 以及经典的 XAMPP 和 MAMP 解决方案。
但是为什么还要在本地进行测试呢? 嗯,在我看来有几个优点。
1. 暂存站点通常比本地测试慢
如今,许多托管服务提供商都免费提供临时站点。 然而,其中许多背后的问题是它们有时是有限的。 他们要么出于开发目的而关闭了缓存(这在测试时是一件好事),要么资源(PHP 工作者、RAM)比实时站点少。 您必须记住,托管服务提供商也有账单。
但是,结果是有时登台站点会比实时站点慢。 如果您在测试事物时跳来跳去,这可能会令人沮丧。 如果您在本地进行测试,这取决于您计算机的资源。 它还消除了任何网络延迟,因此甚至不需要缓存。
2.没有限制
大多数托管服务提供商对您可以拥有的登台站点数量有限制。 如果您使用的是本地 WordPress 开发环境,则没有限制。 您可以启动 10 个或 50 个测试站点。
3.离线编码
使用本地开发环境的另一个巨大优势是您可以离线编码。 无论您是在飞机上、公园里,还是 Wi-Fi 可能参差不齐的任何其他地方,这都非常方便。
4. 调试快速简单
在本地调试有时比在托管站点上更容易。 很多时候,您必须解决托管服务提供商对如何查看调试日志的实现,或者您必须调整wp-config.php文件以启用调试。 大多数本地环境工具,包括 DevKinsta,都有一个简单的调试开关,可以直接写入你的机器。 没有麻烦。
本地 WordPress 开发环境的缺点
虽然我认为它的优点使它变得不费吹灰之力,但也有一些缺点。
1. 分享并不完美
显然,使用本地 WordPress 开发环境背后的整个想法是它只位于您的机器上。 但是,如果您正在为客户开发,您可能希望在上线之前与他们分享。
像 Local 这样的一些解决方案确实提供了一种公开链接并共享它的方法,但整个问题是您必须让 Local 保持启动并运行。 我不确定你的情况,但如果我正在与客户合作,我不想依赖我的计算机 24/7 全天候运行。 这不是本地的错; 这就是在您的机器上托管某些东西时所发生的事情的本质。
一个更好的解决方案是将您的本地站点推送到您的托管服务提供商处,以便随时可以访问。 这样,如果您的计算机重新启动或进入睡眠状态,您的客户就不会在半夜打电话给您。

推进登台显然涉及更多步骤,但在我看来,如果您正在与客户打交道,这是一条更安全的途径。
2. 涉及更多初始设置
在运行本地开发环境时,显然涉及更多的初始设置。 这意味着您可能会阅读这样的教程,以按照您需要的方式获得所有内容。 然而,一旦你的环境到位,它不应该让你慢下来。
介绍 DevKinsta
在我看来,让用户有更多的选择总是很棒的。 毕竟,这就是我们都使用 WordPress 的原因。 更多的竞争意味着事情会更快地改善。 介绍 DevKinsta,它使本地 WordPress 站点的创建变得轻而易举。 只需单击几下即可启动一个新站点并开始测试。

DevKinsta 的主要功能包括:
- macOS、Windows 和 Ubuntu/Linux 客户端。
- 由 Docker、Nginx 和 MariaDB 提供支持。
- PHP 7.2、7.3、7.4 和 8.0。
- 最新版本的 WordPress 核心。
- 一个美丽的黑暗和光明模式。
- 一键多站点(子目录或子域)。
- 本地数据库管理(管理员)。
- 用于电子邮件测试的 SMTP 服务器和收件箱。
- 访问 WP-CLI。
- 轻松切换调试。
- 与 MyKinsta 无缝集成。 如果您是 Kinsta 的客户,则有一些巨大的优势,我将在下面深入探讨。
- 支持您的本地操作系统语言:英语、法语、西班牙语、葡萄牙语、荷兰语、德语、意大利语、日语、瑞典语和丹麦语。
如何安装 DevKinsta
在深入安装之前,请确保您的本地机器满足以下要求:
- 至少 5 GB 的磁盘空间,建议 20 GB 以上。
- 至少 1 GB 的 RAM。 推荐 2 GB+。
- 用于下载的稳定 Internet 连接。
- 在 BIOS 中启用了虚拟化。 如今,大多数计算机默认启用此功能。
按照以下步骤安装 DevKinsta。
第1步
访问 DevKinsta 并单击“下载 DevKinsta”按钮。
第2步
然后应根据您的操作系统开始适当的下载(Mac 为.dmg ,Windows 为.exe ,Ubuntu/Linux 为.deb )。
第 3 步
双击该文件开始安装。 您会看到它执行了一些一次性进程,例如安装 Docker,它在幕后运行。

安装完成后,您可以将其固定到您的 Dock 或添加快捷方式到您的桌面/开始菜单。 我在 10 分钟内启动并运行了 DevKinsta。

首次启动 DevKinsta 时,您会看到一个漂亮的 UI,其中包含三个选项,我将在下面深入介绍:
- 新建 WordPress 站点:创建一个运行最新版本 WordPress 的新空白站点。
- 从 Kinsta 导入:下载并在 MyKinsta 中的现有站点上进行测试。
- 自定义站点:创建一个新的 WordPress 站点并更改其他选项,例如 PHP 版本、多站点、数据库名称、管理员电子邮件等。

如何安装本地 WordPress 网站
最常见的任务是创建一个空白的本地 WordPress 站点。 请按照以下步骤操作。
第1步
点击“新建 WordPress 网站”。

第2步
输入您的站点名称和 WordPress 管理员用户名。 然后,您可以选择密码或复制自动生成的密码。 然后点击“创建站点”。

就是这样! 挺容易。 启动新的 WordPress 网站大约需要 20-25 秒。 如果您使用的是 Mac,您可能会收到输入密码的提示,以便它可以将域添加到系统的主机文件中。
您的本地测试站点是使用您在步骤 2 中选择的站点名称创建的,域是.local 。 在我们的示例中,它是testing.local 。 以下是新网站开箱即用的外观。 它使用二十一二十一主题。

这是文件夹目录。

然后,您将在 DevKinsta 中看到站点信息屏幕的概述。 在这里您可以访问以下内容:
- WordPress 网站链接
- WordPress 管理仪表板链接
- 数据库管理器和凭据
- 切换以启用 SSL/HTTPS
- 切换以启用
WP_DEBUG

您可以点击 PHP 版本轻松切换版本:7.2、7.3、7.4 和 8.0。

我注意到在 macOS 上启用 SSL/HTTPS 存在一个小错误。 但是,Kinsta 团队已经意识到这一点,并且很可能很快就会修复。
在此之前,您可以通过进入 Mac 上的 Keychain Access 手动信任证书。 搜索您的本地测试站点域并为证书选择“始终信任”。

在本地 WordPress 站点中测试和开发的最好的事情之一就是速度。 没有网络延迟意味着 WordPress 管理仪表板中的内容在 100% 的时间内以闪电般的速度加载。

数据库管理员
你们中的大多数人可能已经习惯了 phpMyAdmin。 DevKinsta 包括一个流行的简化数据库管理器工具,称为 Adminer。 要访问它,请单击站点信息屏幕中的“数据库管理器”。


它会自动让您登录。 然后,您可以运行 SQL 命令、检查插件和主题表,并进行所需的任何故障排除。

如果您不是 Adminer 的粉丝,您还可以使用 TablePlus 或 Sequel Pro 等其他第三方应用程序来管理您的数据库。
电子邮件 SMTP 测试
您还可以在本地监控电子邮件。 可以在 DevKinsta 应用程序的左侧找到电子邮件收件箱。 如果您需要测试联系表格、电子商务交易电子邮件等,这会派上用场。

在幕后,这使用了一个名为 MailHog 的开源 Web 和基于 API 的 SMTP 测试工具。 所有电子邮件将自动路由到您的 DevKinsta 电子邮件收件箱,但如果需要,您也可以直接在 MailHog 中查看它们。 只需在浏览器中访问localhost:8025即可。

注意:由于 Docker 和 M1 的技术预览,MailHog 给我带来了一些问题。 但是,这应该很快就会自行解决。
调试
本地测试的另一个好处是它们使调试变得多么容易。 要启用它,只需在 DevKinsta 中打开“启用WP_DEBUG ”选项。

这会在 WordPress 安装的wp-content文件夹中创建一个debug.log文件。 您可以单击站点信息屏幕上的文件夹图标直接进入您站点的文件夹。
<projectPath>/public/<siteName>/wp-content/debug.log除了 WordPress 调试,您还可以访问以下日志:
访问日志
<projectPath>/logs/<siteName>_access.log错误日志
<projectPath>/logs/<siteName>_error.logPHP-FPM 日志
对于 PHP-FPM 日志,. log文件名将根据您运行的 PHP 版本而有所不同。 下面的例子。
<projectPath>/logs/php8.0-fpm.logNginx 日志
docker logs -f devkinsta_nginxPHP-FPM 日志
docker logs -f devkinsta_fpmMariaDB 日志
docker logs -f devkinsta_dbMailHog 日志
docker logs -f devkinsta\_mailhogWP-CLi
WP-CLI 是一个漂亮的命令行工具,供开发人员在没有 Web 浏览器的情况下管理 WordPress 网站。 您可以使用本地站点访问 WP-CLI。 看看 Kinsta 的这个文档。
PHP.ini 编辑器
还有一个易于访问的php.ini编辑器。 这使您可以轻松更改属性,例如内存限制,例如: memory_limit = 512M

如何导入现有的 Kinsta 站点
DevKinsta 中的第二个选项是导入您在 MyKinsta 中已有的站点。 这假设您使用 Kinsta 托管 WordPress 网站。 这就是巨大优势之一发挥作用的地方。 请按照以下步骤操作。
第1步
单击“从 Kinsta 导入”。

第2步
输入您的 MyKinsta 登录凭据,然后单击“登录”。

如果您启用了双因素身份验证(我强烈建议您这样做),那么您需要输入身份验证器应用程序中的 6 位数代码。

第 3 步
然后,您将在 MyKinsta 中看到要导入的站点列表,包括实时站点和临时站点。 在此示例中,我正在导入一个临时站点。

第4步
如果是多站点,请选择配置。 然后单击“导入站点”。

站点创建只需要几秒钟,但它必须下载您的整个远程站点。 因此,这可能需要几分钟,具体取决于您的站点大小和网络连接速度。 您可以在底部监控进度。

就是这样! 您的 MyKinsta 网站现已准备好在本地使用。 它为您完成所有查找和替换魔法,因此可以在.local域中访问它。
您现在可以在本地进行所有测试和开发。 另一个好处是你可以离线和编码。 然后,当你完成后,单击“Push to staging”将站点推回 MyKinsta 。

您可能还会注意到,使用 MyKinsta 凭据登录后,您的 gravatar 将显示在左下方。 就像在 MyKinsta 仪表板中一样。
如何创建自定义 WordPress 网站
DevKinsta 中的第三个选项是从自定义配置创建一个 WordPress 站点。 请按照以下步骤操作。
第1步
点击“自定义网站”。

第2步
填写自定义参数,然后单击“创建站点:”
- 网站名称
- PHP版本
- 数据库名称
- HTTPS
- WordPress 网站标题
- WordPress 管理员电子邮件
- WordPress 管理员用户名
- WordPress 管理员密码
- 多站点

就是这样!
DevKinsta 屏幕和设置
您可以随时从 DevKinsta 站点屏幕快速访问所有本地 WordPress 站点。 这是一个漂亮的用户界面。

在“设置”屏幕下,您会发现以下内容:
- 语言
- 时区
- 主题:如果您不喜欢深色模式,那么还有浅色模式。

- 站点路径
- MyKinsta 帐户
- 软件更新
- WordPress 安装默认值:通过设置用于未来安装的默认 WP 管理员用户名和密码来节省时间。

您还可以启用或禁用流行的 PHP 扩展,例如 opcache、imagick、curl 等。

最后,您可以选择 DevKinsta Nginx 容器应该在哪些端口上运行。 默认情况下,它将自动检测打开的端口。 但是,如果它们已被另一个应用程序使用,您可以更改它们。

概括
我对 DevKinsta 的未来感到非常兴奋。 我已经将它作为我日常工作流程的一部分,并且每天都在使用它。 此外,作为 Kinsta 用户,这对于加快我的测试和开发速度有一些巨大的优势。
很高兴看到随着时间的推移添加了一些我们都习惯的 MyKinsta 选项:一键式 WooCommerce 安装、克隆以及搜索和替换。
如果您有问题或想提交功能请求,可以前往 DevKinsta 社区。
你怎么看? 您是否尝试过使用 DevKinsta?
