为什么以及如何使用Vagrant设置WordPress本地开发环境
LAMP 堆栈的局限性
从历史上看,在设置本地开发环境时,WordPress 开发人员会求助于传统的 LAMP 堆栈(Linux + Apache + MySQL + PHP),例如 MAMP、WAMP 或 XAMPP。 同时,WordPress 开发的进步已经使大多数现代 WordPress 安装在运行 Nginx 的虚拟专用服务器(“VPS”)上,并配置了强调缓存的配置——专门为加速 WordPress 量身定制。 然而,MAMP、WAMP 或 XAMPP 在 Apache 上运行; 没有针对 WordPress 的优化,也没有广泛接受的缓存配置或任何其他优化措施。
开发人员一致认为,“确保您的开发环境与生产环境相同,并匹配暂存和测试服务器(如果您也有的话)是极其重要的。”[#]
通过不镜像您的环境,在基于 Apache 的本地开发环境中似乎可以正常工作的东西在生产服务器上无法正常工作的机会增加了。 今天对 LAMP 堆栈的一个常见挫折是,它们现在很少与实时或生产服务器的环境相匹配。 如今,用于 WordPress 托管的尖端服务器设置至少包括 Nginx、MySQL、PHP-FPM 和 Memcached(注意“d”!)的某种组合。
为什么是流浪者?
即使环境之间的细微差异也会增加您的代码修改、插件或 Web 应用程序在测试或暂存环境中失败的可能性——导致浪费时间进行故障排除,否则您可能会进一步开发。 现在,考虑一下您可能想通过混合 PECL 内存缓存扩展或 Varnish 来测试您的 WordPress 配置,您'会很高兴地发现:为什么是 Vagrant。 使用 Vagrant,无论您选择什么操作系统或平台进行开发,您都可以在任何地方(字面意思)轻松地重新创建相同的环境。 您可以在本地或使用 DigitalOcean 等 VPS 配置机器。
还没准备好与你心爱的 LAMP 堆栈分手?
有了 Vagrant,即使是那些继续使用 LAMP 堆栈开发的人也发现“Vagrant ... 似乎解决了我 ' 过去在尝试为 WordPress 建立本地环境时遇到的所有问题。”[#] 最后,Vagrant 是可移植的 - 允许您团队的其他成员从您使用的相同配置创建他们的开发环境 - 确保您的所有团队成员都通过相同的环境运行代码,针对相同的依赖项,所有配置方式都相同;无论他们中的任何人是否在 Linux、Mac OS X 上工作或 Windows 工作站。
Windows 用户的先决条件
Vagrant 配置有 shell,或操作系统的命令行界面(“CLI”)和 OpenSSH。 不幸的是,默认情况下,SSH 客户端通常不随 Windows 一起分发。 但是,Windows 用户可以使用他们喜欢的任何 SSH 客户端连接到 Vagrant,例如 GitHub 中为 Windows 提供的 shell 之一; Cygwin 中的终端; Git Bash 或 PuTTY 等。
入门在本地工作站上,您需要:
- 下载并安装最新版本的虚拟盒子为您的操作系统。
- 下载配套的VirtualBox Extension Pack(所有平台都一样)并安装到你的电脑上;
- 下载并安装最新版本的流浪汉适用于您的操作系统;
Mac OS X 和 Linux 用户: 打开一个外壳,例如 终端,并创建或导航到您'想要保存 Vagrantfile 的目录(在 Ubuntu 上,这看起来像):
sudo mkdir ~/[name of your choosing]cd [newly-created folder]
Vagrant 有一个内置命令用于初始化新的- 创建用于 Vagrant 的目录:vagrant init。 注意: 您也可以在预先存在的目录中运行 vagrant init 来为现有项目设置 Vagrant。
接下来执行初始化命令:
vagrant init
接下来,执行以下命令:
vagrant box add precise64 http://files.vagrantup.com/precise64.boxvagrant up
运行上述命令后,您将在运行 Ubuntu 12.04 LTS 64 位的 VirtualBox 中拥有一个完全运行的 VPS。 你可以通过 SSH 连接到这台机器,使用命令 vagrant ssh
使用 PuTTY?
PuTTY 与 OpenSSH 不兼容,开箱即用。 因此,PuTTY 不会将 Vagrant 提供的 insecure_private_key 识别为有效的私钥。 一种解决方法是使用 PuTTYgen 来 Load (即 导入)在您的主目录的 .vagrant.d 文件夹中找到的 insecure_private_key,例如
并将密钥文件转换成PuTTY's 格式(.ppk 文件)通过单击 Save private key 按钮。
然后,启动 PuTTY 并输入以下连接信息:
类别子类别字段值
会议
主机名:
127.0.0.1
港口:
2222
连接类型:
SSH
联系
数据
自动登录用户名:
流浪汉
连接/SSH
认证
用于认证的私钥文件:
点击浏览按钮,找到刚刚转换的.ppk私钥
会议
保存的会话
vagrant (然后单击Save按钮进行加载,保存或删除已存储的会话区域)
最后,点击 PuTTY 窗口底部的 Open 按钮,自动登录到您的 Ubuntu VPS;玩完后,您可以使用命令 vagrant destroy 删除它的所有痕迹。 入门 | 使用 Box 和后续部分 VagrantDocs 非常好 - 如果您想继续构建自己的自定义 Vagrant 盒子,请参阅该指南以了解如何设置更完整的项目。 设置好盒子后,您可以部署 WordPress 以及您想要的任何其他软件包。 但是,如果你对“单飞”有点胆怯...... 不要害怕,开源社区的力量就在这里! 如果您想在本地使用 Vagrant 快速开始开发 WordPress,请查看 GitHub 上的 Varying Vagrant Vagrants for WordPress Development(探索 Vagrant 的世界以及它如何帮助提高开发效率和同步与生产系统;通过替换我们已经熟悉的常见 MAMP 或 XAMPP 设置,同时确保团队的所有成员都可以在相同的环境中为项目开发,而不必担心本地计算机上的操作系统)。 Vagrant Vagrants,您将能够通过执行简单的 vagrant up 命令启动一个实例,该命令将自动安装 Nginx、PHP-FPM 和 MySQL; 在继续移动配置文件并导入 SQL 转储之前——这样在初始命令后几分钟,您就可以在浏览器中转到现有开发站点或启动全新的 WordPress 安装。[#] 所以,事不宜迟:至少完成上述入门下的步骤 1 - 3:OS X 和 Linux 变体用户:打开终端并创建或导航到您要保存工作的目录(在 Ubuntu 上,此看起来像):sudo mkdir -p /srv/[您选择的名称]cd /srv/[新创建的文件夹]并通过执行以下命令从 GitHub 克隆 Varying Vagrant Vagrants:sudo git clone https://github .com/10up/varying-vagrant-vagrants [您选择的本地文件夹名称]Windows 用户:下载并安装了 GitHub for Windows 可以点击按钮(默认存储目录可以在工具 => 选项下更改 - 除了默认外壳); 或者,如果您不想使用 GitHub for Windows,您可以将存储库的 ZIP 文件下载到您想用于 Vagrantfile 的本地目录,然后从那里解压缩。 现在,在终端或 Windows 命令提示符中,导航到新目录:cd [上面步骤 2 中的带有存储库的新本地文件夹]并执行以下命令:vagrant up 这样,您的 VPS 正在运行(第一次vagrant up,然而,Vagrant 可能需要大约。 30-60 分钟,因为它会下载所有预打包的软件和相关更新)。 通过在 Web 浏览器中转到 192.168.50.4 立即对其进行测试。 要开始使用 WordPress,还需要进一步的步骤。 修改本地机器的 hosts 文件,使 local.wordpress.dev 映射到 192.168.50.4;[#] 一旦映射,在浏览器中访问 local.wordpress.dev 将启动 WordPress 初始安装。 按照这个步骤在 Vagrant 中创建您的第一个 WordPress 开发环境。 您正在开发的主题和插件可以进入相关的 www/wordpress-default/wp-content/ 目录。从这里,您应该进行实验。 如果您熟悉对象缓存,则可以安装用于处理 PECL 内存缓存的常用插件。 Memcached 本身已经安装并在您准备就绪时运行。 如果您开始浏览 Varying Vagrant Vagrants 的内部文档,您会看到很多地方可以与您自己的定制挂钩,以继续扩展开发环境。 对于替代方法,也为您完成了很多前期工作,请查看:Vagrant 入门 | Scott Warren 或 WordPress 开发入门 Vagrant | 迈克·格林。 Vagrant 和 DigitalOcean 使其他资源开发环境变得容易; 如何在运行 Ubuntu 12.04 的 VPS 上安装 Vagrant; 如何在你自己的运行 Ubuntu 的 VPS 上使用 Vagrant; 如何在 Ubuntu 12.10 上的 Vagrant 中使用 DigitalOcean 作为您的提供程序;如何在 Ubuntu 12.10 x64 上安装 VirtualBox | 数字海洋; 如何在 Ubuntu 12.04 上安装 Git 数字海洋; 如何有效地使用 Git | 数字海洋; 如何使用 Git 分支 | 数字海洋; Git 参考; 与往常一样,如果您在本 HowTo 中概述的步骤方面需要帮助,请通过在下方提出您的问题向 DigitalOcean 社区寻求帮助。 文章提交者:Pablo Carranza想要了解更多信息? 加入 DigitalOcean 社区!免费加入我们由超过一百万开发人员组成的 DigitalOcean 社区! 在我们的问答部分获得帮助和分享知识,查找有助于您成长为开发人员并扩展您的项目或业务的教程和工具,并订阅感兴趣的主题。注册关于作者Pablo CarranzaauthorDigitalOcean 的开发者和作者。还在寻找寻求答案?提出问题搜索更多帮助这有帮助吗?YesNoComments3 CommentsLogin to Commentbjorkbat • 2014 年 8 月 17 日Mac 用户在这里,“box add ...”命令对我不起作用(网址上出现 404 错误)。 经过一番摸索,我发现只使用“box add ubuntu/trusty32”对我来说更容易(我的水滴使用 14.04 即 trusty,所以我觉得用 trusty) 后跟 vagrant up 比较合适。 回复bjorkbat • 2014 年8 月17 日Mac 用户在这里,“box add ...”命令对我不起作用(url 上出现404 错误)。 经过一番摸索,我发现只使用“box add ubuntu/trusty32”对我来说更容易(我的水滴使用 14.04 即 trusty,所以我觉得用 trusty) 后跟 vagrant up 比较合适。 回复adhitama.setyawan • 2016 年 9 月 29 日 Mac OS 添加 vagrant box 的命令不正确。 而不是:'vagrant box addprecision64 http://files.vagrantup.com/precise64.boxvagrant up'应该是:'vagrant box addprecision64 http://files.vagrantup.com/precise64.boxvagrant up'回复本作品已获得知识共享署名-非商业性-相同方式共享 4.0 国际许可。加入 DigitalOcean 社区加入 1M+ 其他开发人员并:在问答中获得帮助并分享知识订阅感兴趣的主题获取课程和工具,帮助您成长为开发人员或小型企业所有者立即加入热门话题UbuntuLinux 基础JavaScriptReactPythonSecurityApacheMySQL 数据库DockerKubernetes 电子书浏览所有主题标签所有教程问题问答问答提问数字海洋产品文档数字海洋支持活动技术讲座Hacktoberfest 部署参与社区通讯Hollie's Hub for GoodWrite for DOnations 社区工具和集成孵化启动程序创建您的免费社区帐户!加入技术讲座成功! 谢谢! 请查看您的电子邮件以获取更多详细信息。请填写您的信息!获取我们的双周通讯注册基础设施作为通讯。Hollie 的 GoodWorking 中心致力于改善健康和教育、减少不平等和刺激经济增长? 我们愿意提供帮助。成为贡献者您获得报酬; 我们向技术非营利组织捐款。精选社区Kubernetes 课程学习 Python 3Python 机器学习 Go 入门介绍 Kubernetes 数字海洋产品虚拟机托管数据库托管 Kubernetes 块存储对象存储市场 VPC 负载均衡器欢迎使用开发人员云DigitalOcean 让您可以轻松地在云中启动并随着您的成长进行扩展——无论您是运行一台或一万台虚拟机。了解更多DigitalOcean Homepage© 2022 DigitalOcean, LLC。 All rights reserved.CompanyAboutLeadershipBlogCareersPartnersReferral ProgramPressLegalSecurity & Trust CenterProductsPricingProducts OverviewDropletsKubernetesManaged DatabasesSpacesMarketplaceLoad BalancersBlock StorageAPI DocumentationDocumentationRelease NotesCommunityTutorialsQ&ATools and IntegrationsTagsWrite for DigitalOceanPresentation GrantsHatch Startup ProgramShop SwagResearch ProgramOpen SourceCode of ConductContactGet SupportTrouble Signing In?SalesReport AbuseSystem StatusShare your ideasCommunityTutorialsQuestionsWrite for UsHacktoberfestToolsProductsHomepagePricingProduct OverviewMarketplaceCustomersControl PanelDocumentationContact SupportContact SalesSign in