如何使用 Vagrant 在本地安装 WordPress
在本地开发是发生在您身上的最好的事情之一。它不仅可以让您省去上传/下载时间,而且您还可以根据需要创建任意数量的项目,在本地使用真实域并通常加快您所做的一切。
Vagrant 是一款很棒的软件,它可以创建可复制且可移植的虚拟机,您可以将其用作本地 Web 服务器环境。在本文中,我将向您展示为什么 Vagrant 如此出色,以及如何快速启动和运行出色的 WordPress 测试环境。
您可能还对以下帖子感兴趣:
什么是 Vagrant?
用 Vagrant 自己的话来说,它可以用来“创建和配置 轻量级、可重现和可移植的开发环境”。
让我们找出每个术语对您当地环境的含义。
可配置
您的虚拟机易于创建、易于配置,更重要的是:它可以进行广泛的配置。默认设置适用于大多数项目和临时测试,因此您不必摆弄它,但如果您需要强大的功能,它就在那里。
您可以像在真实服务器环境中一样进行设置;从配置 IP 到自动安装 git 和其他软件,一切皆有可能,由您决定。
轻的
我的电脑上运行了多个虚拟机,每个虚拟机都有两个配置文件,加起来大小不超过4KB——没错,两个文件,总共4KB。老实说,我的设置都是非常基础的,但即使你有非常复杂的东西,它最多也会达到10-100KB 。
便携的
便携性伴随着文件的腰围很紧的事实。一个文件是特殊的 Vagrantfile,另一个是 bash 文件;每个都包含简单的文本,没有什么特别的。因此,您可以通过电子邮件来回发送它们并将它们保存在 Evernote、Google Drive 或 Dropbox 上。
可重现
这是 Vagrant 的最佳功能之一。由于所需文件的大小和便携性,可以轻松复制特定的服务器配置。假设您创建了一个需要高度优化的服务器的应用程序。为它创建 Vagrantfile 和安装 bash 文件并启动并运行它。
您现在可以将配置通过电子邮件发送给您的团队成员,他们将在几分钟内运行完全相同的服务器。
安装
一般来说,开始使用 Vagrant 开发环境分为三个部分。
- 安装 Vagrant & Virtualbox
- 创建服务器配置
- 创建您的网络环境(例如:安装 WordPress)
安装 Vagrant
可以通过访问下载页面、选择您的操作系统并运行下载的软件包来安装 Vagrant 。由于 Vagrant 依赖于虚拟化,因此您需要虚拟化软件。
Vagrant 内置了对 VirtualBox 的支持,但可以与其他人一起工作,但为了这个例子,我们将使用 VirtualBox。在这里抓住它。
创建服务器配置
您可以使用现成的脚本为您做任何事情。Jeffrey Way 整理了一个关于放弃 MAMP 并转而使用 Vagrant 的精彩教程。看看并确保记下顶部的代码:
1个
|
curl -L -o 'install.sh' https: //bitly.com/1hBfq57 && curl -L -o 'Vagrantfile' https://bitly.com/1mE3Qt9 && vagrant up |
如果您创建了一个文件夹,使用您的终端或命令提示符导航到它并粘贴上面的代码,您将快速创建一个本地环境。不过,让我们剖析一下,看看发生了什么。
它由 3 个部分组成:
1个
|
curl -L -o 'install.sh' https: //bitly.com/1hBfq57 |
此命令下载预制安装文件:install.sh
一旦虚拟机运行,该文件负责安装和配置软件。PHP、Apache、MySQL 和其他类似的东西都在这里处理。
1个
|
curl -L -o 'Vagrantfile' https: //bitly.com/1mE3Qt9 |
这将下载 Vagrantfile,其中包含有关服务器配置和其他基本安装说明的信息。这决定了服务器使用的操作系统,以及网络映射到的 IP;它可用于控制文件权限和所有权等。
1个
|
vagrant up |
此命令启动服务器。
第一次执行此操作时,需要 5-20 分钟。需要下载所谓的“盒子”(例如,其中包含操作系统),大小可能超过 700 MB。然后配置(安装和配置)服务器并将启动并运行。
如果重新启动计算机或关闭虚拟机 (VM),则需要再次运行该命令。这次只需要几秒钟就可以让它运行起来。
简而言之,这非常类似于在计算机上安装操作系统和环境。Vagrantfile 承担了 Windows/Linux/Mac 安装盘的职责;它具有使基本系统正常工作所需的一切。install.sh 文件自动满足初始软件需求。对于您的计算机,这就像安装最新的视频驱动程序、Photoshop、您最喜欢的文本编辑器、浏览器等。
该vagrant up
命令类似于打开您的计算机。第一次执行此操作时,需要花费一些时间,因为您需要安装操作系统和软件。之后需要 10-20 秒才能启动并运行。
安装 WordPress
如果您按照此处的说明进行操作,您现在应该已经启动并运行了一个服务器,但是您可以用它做什么,如何使用它呢?
以下是一些需要知道的事情:
- 可以通过http://192.168.33.21访问本地环境
html
安装目录中的文件夹是您的根目录- 访问您的 MySQL 数据库如下: 用户名:root,密码:root 和主机:localhost。
我们应该做的第一件事是使用 SSH 访问我们的服务器,这样我们就可以设置我们的数据库,为 WordPress 做好准备。
使用终端转到您安装虚拟机的文件夹,然后键入vagrant ssh
.
进入后,您可以键入mysql -uroot -p
以访问 MySQL,root
在提示输入密码时键入。
我们只需要一个简单的 WordPress 空数据库,我们将使用以下命令创建它:CREATE DATABASE wordpress
接下来,转到WordPress 下载页面并获取最新版本。将其解压缩到html
目录(根目录)中,并确保将所有文件从创建的wordpress
子目录上移一层。
最后,您应该会在您的目录中看到两个 WordPress 目录(wp-admin、wp-includes)和默认的 WordPress 文件html
。
绕行:故障排除
如果您按照这些说明进行操作,您会发现您可能无法通过 WordPress 界面上传文件。这与用户和组问题有关,可以轻松解决。
SSH 进入服务器并键入以下内容sudo vi /etc/apache2/apache.conf
。这将打开一个 VI 编辑器,您可以使用它来编辑该文件。
注意:这对许多人来说有点陌生,但不要害怕,这里有一些具体说明。如果您需要更多帮助,请查看VI 备忘单。
键入/User
。这将在文档中搜索“User”的出现。您应该看到可以定义用户和组的部分。
按“i”进入编辑模式。使用箭头键通过光标导航并将用户和组编辑为“vagrant”,如下所示:
1个
2个
|
User vagrant Group vagrant |
完成后,按 escape,然后键入以下命令::wq
。这将保存文件并退出 vi 编辑器。
您现在应该键入vagrant halt
停止虚拟机,然后vagrant up
重新启动它。
就是这样,文件操作现在可以在 WordPress 中使用了。
此时,您可以访问http://192.168.33.21,照常安装WordPress。确保使用上面的数据库访问凭据和您创建的数据库名称。您可以安装插件、主题、创建您自己的代码,以及执行您通常在真实服务器上执行的任何其他操作。
更改主机名
http://192.168.33.21 并不是最友好的项目打开方式。幸运的是,将其更改为更容易记住的内容很容易,例如 http://wordpress.local。
通过 SSH 进入服务器并通过键入导航到站点配置文件夹cd /etc/apache2/sites-available
。
键入ls
以列出文件夹的内容。您应该看到一个名为000-default.conf
. 让我们通过键入 编辑此文件以查看它包含的内容sudo vi 000-default.conf
。
按“i”进入插入模式并向下导航到第 8 行,该行应该是#ServerName www.example.com
. 使用 ServerName 指令,您可以创建到网站的命名路由。
通过删除开头的散列并将服务器名称更改为您想要的任何名称来取消注释该行。通常使用 wordpress.dev、wordpress.local 或什至只是 wordpress 之类的东西——这取决于你。事实上,您甚至可以使用 facebook.com!
通过按 escape 并键入命令来保存文件:wq
,然后通过键入来重新启动服务器sudo service apache2 restart
。
最后,在你的虚拟机之外(确保你没有使用SSH-d)使用sudo vi
命令编辑你的主机文件。在 Windows 上,这可以在 找到C:\windows\system32\drivers\etc\hosts
,在基于 linux 的系统上,它可以在/etc/hosts
将以下行添加到文件中的任意位置:
1个
|
192.168.33.21 wordpress.local |
确保使用您在配置文件中定义的主机名并保存主机文件。该文件基本上告诉我们的计算机要从中加载服务器名称以及如何解析它。默认情况下,您的计算机将查看 Internet。如果您输入 facebook.com,它将从网络加载。
但是,如果您已将 facebook.com 绑定到虚拟机 IP 并将其定义为 ServerName,它将在本地加载。
您现在应该能够键入 wordpress.local 并看到与键入 192.168.33.21 时相同的结果。
如果您在安装 WordPress后执行此操作,您可能会看到诸如样式和脚本之类的东西被破坏了。原因是 WordPress 将安装目标位置存储在数据库中,它会被设置为 IP。
为确保这种情况不会发生,您应该首先创建您的命名服务器并通过转到 wordpress.local(或您选择的任何其他名称)而不是使用 IP 安装 WordPress。
使用虚拟服务器
我们现在做得很好,但就目前而言,我们必须为每个项目运行一个虚拟机,这是一种浪费。通过使用虚拟服务器,您可以从同一台虚拟机运行任意数量的独立网站。
关键在于站点配置文件,我们用来更改 ServerName 的同一个文件。现在让我们创建两个虚拟主机。
首先,转到您创建虚拟机的目录并创建两个子目录:blog 和 store。您的原始 HTML 目录也应该仍然存在。
接下来,SSH 进入服务器并导航到/etc/apache2/sites-available
目录。
通过复制默认配置文件创建两个新文件:
1个
2个
|
cp 000- default .conf blog.conf; cp 000- default .conf store.conf |
shop.conf
使用我们之前讨论的方法编辑文件。确保将 ServerName 设置为shop.dev
并将 DocumentRoot 指令设置为/var/www/shop
——这是我们刚才创建的目录。
blog.conf
使用正确的值对文件执行相同的操作。
使用sudo a2ensite blog
和sudo a2ensite shop
命令启用这些站点并使用sudo service apache2 restart
命令 重新启动服务器并使用exit
命令退出 SSH 连接。
现在编辑主机文件以确保我们的计算机知道如何解析虚拟主机:
1个
2个
|
192.168.33.21 blog.dev 192.168.33.21 shop.dev |
现在您还有两个站点可以使用:一个可以通过在 URL 栏中键入 blog.dev 来访问,该站点的根目录将是 blog 目录。另一个是 shop.dev 站点,它使用 shop 目录作为其根目录。
这比创建多个虚拟机要容易得多,并且需要更少的计算机资源使用。
结论
我们在本文中经历了很多:我们安装了 Vagrant,学习了如何创建本地环境,并安装了 WordPress。我们还学习了一些技巧,例如使用服务器名称和虚拟主机。
这应该让您开始本地开发的道路。不要忘记,您可以在任何地方轻松地重新创建您的环境,您所需要的只是 Vagrantfile 和 install.sh 文件。
多做!
我们只是触及了 Vagrant 功能的皮毛。您可以在Vagrantcloud上找到要使用的自定义框,或者您甚至可以查找将模拟您的实际在线主机环境的框。
许多任务可以自动化和/或自定义,您可以使用自动化工具(例如WP-CLI)使用一些命令来安装 WordPress 和相关插件/主题。
最后,看看一些特定于 WordPress 的 Vagrant 环境,例如VCCW、Vagrantpress和来自 WPTavern 的13 Vagrant Resources。