使用Vagrant设置本地WordPress开发环境
使用Vagrant设置本地WordPress开发环境
如果使用WordPress进行开发,最好设置一个本地环境,您可以在其中安装服务器,数据库工具和一些Wordpress站点以及您需要的其他工具。如果您只处理几个项目,这很好。但是当它们繁殖时,会出现问题。还有维护多个环境的麻烦,因为客户端的设置与您不同。
要解决这个问题,我们可以使用我们称之为Vagrant的东西。 Vagrant是一个用于处理虚拟环境的工具。它提供了一种使用少量命令设置本地开发环境的简便方法,您可以轻松地复制完整设置,无需手动安装所有内容。要运行Vagrant,您需要定义一组规则。 Vagrant根据这些规则设置您的虚拟机。 Vagrant需要两个文件:Vagrantfile,它告诉Vagrant虚拟机需要什么样的硬件,以及一个部署文件,告诉Vagrant在虚拟机上做什么。
由于Vagrant适用于虚拟环境,因此您需要虚拟机软件来运行Vagrant。出于我们的目的,我们将使用开源虚拟框。
安装VirtualBox
转到Virtualbox的下载页面,下载与Guest主机对应的二进制文件。 (来宾主机是您将在其中运行开发环境的操作系统。)安装Virtualbox。
安装Vagrant
从Vagrant的下载页面下载与您的操作系统对应的二进制文件并进行安装。
要测试是否已成功安装,请在OS的命令行中键入以下命令。
$vagrant -v
安装Vagrant主机更新程序插件
vagrant-hostupdater插件将修改操作系统的hosts文件,以便Vagrant设置的域可以正常工作。要安装它,请运行以下命令
$vagrant plugin install vagrant-hostsupdater
安装Vagrant / Virtualbox后重新启动操作系统,以免出现网络问题。
安装Git
Linux的
我们还需要Git版本控制来完成本教程。如果您没有安装它,如果您有Debian / Ubuntu发行版,请使用以下命令安装它
$sudo apt install git
或者如果你有Fedora
$sudo dnf install git
或者如果你有CentOS / RHEL
$sudo yum install git
通过以下命令检查安装的Git版本
$git --version
你会看到类似的东西
$git version 2.20.1
您需要通过以下命令设置Git。
$git config --global user.name "Your Name"
$git config --global user.email "(email protected)"
视窗
要在Windows上安装Git,请转到Git的下载页面并安装二进制文件。
苹果系统
如果您安装了自制程序,则可以通过以下命令安装Git。
$brew install git
或者您可以从Git的下载页面下载二进制包并进行安装。
安装Varying Vagrant Vagrants
我们将使用Varying Vagrant Vagrant(VVV) – 一种开源的Vagrant配置,专门用于创建WordPress开发环境,而不是从头开始设置Vagrant。标准VVV将基于Ubuntu 18.04以及Nginx服务器,MariaDB数据库,PHP,WP-CLI,Node.js,MailHog,Composer,memcached,phpMyAdmin,git和各种其他工具来设置您的虚拟机。默认情况下,VVV将为您提供多个WordPress安装,其中一个是最新的前沿版本,可帮助您进行实验。
第一步是将VVV的Git存储库克隆到系统上的本地目录。
$git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vvv
这里我们克隆系统上存储库的主分支。如果您想要更快的更新,那么您可以使用开发分支。
开始VVV
切换到克隆VVV的目录。
$cd vvv
启动Vagrant环境,安装虚拟机并设置所有内容。
$vagrant up
这个过程需要一段时间,所以要耐心等待。在设置系统主机文件所需的过程中,可能会要求您提供root密码。
Windows 8/10用户注意事项
如果您使用的是Windows,则可能会出现以下错误
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ("startvm", "1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6", "--type", "headless")
Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only
Ethernet Adapter #3' (VERR_INTNET_FLT_IF_NOT_FOUND).
VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
请注意这里提到的适配器:
VirtualBox Host-Only Ethernet Adapter #3
打开控制面板>>网络和共享中心。现在单击“更改适配器设置”。右键单击名称或设备名称与VirtualBox Host-Only Ethernet Adapter#3匹配的适配器,然后单击Properties。单击“配置”按钮。
现在单击Driver选项卡。单击更新驱动程序。选择浏览计算机以查找驱动程序现在选择让我从计算机上的可用驱动程序列表中选择。选择您获得的选项,然后单击Next。单击“关闭”以完成更新。现在返回到Terminal / Powershell / Command窗口并重复vagrant up命令。这次应该可以正常工作。
完成后,您可以访问http://vvv.test网址上的VVV仪表板。
VVV附带两个默认的WordPress安装 – http://one.wordpress.test和http://two.wordpress.test两个站点都有相同的登录详细信息,admin作为用户名和密码作为密码。两个站点的数据库凭据都是wp作为用户名和密码。 MySQL Root用户凭据是root用户名和密码。 VM的root用户凭据是root用户名和vagrant用作密码。
在http://trunk.wordpress.net上有一个开发人员wordpress安装,但由于没有配置,它将无法正常工作。如果您是使用Trac票证和补丁的WordPress贡献者,则此安装非常有用。要启用它,请打开vvv-custom.yml并将wordpress-trunk下的skip_provisioning值更改为false,然后使用该命令重新配置VM
$vagrant reload --provision
还有另一个wordpress安装没有url标记为wordpress-meta-environment。此安装将创建一个对WordPress元组的贡献有用的环境,例如WordCamps,.org等。要启用此安装,请在文件vvv-custom.yml中的wordpress-meta-environment下添加以下行。
hosts:
- wpmeta.test
然后将skip_provisioning的值更改为false并重新配置VM。
$vagrant reload --provision
添加新网站
如果要将另一个站点添加到VM,则需要编辑可在vvv目录中找到的vvv-custom.yml文件。如果不存在,只需复制vvv-config.yml并创建它。这是一次性过程,您无需再次执行此操作。始终在vvv-custom.yml中进行更改,因为更新VVV时会覆盖vvv-config.yml。
将sites部分下的以下代码添加到vvv-custom.yml以添加新站点。
newsite: repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template description: "A WordPress subdir multisite install"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
branch: master
nginx_upstream: php skip_provisioning: false hosts: - newsite.test custom: wp_type: subdirectory
变量
repo变量是指预定义的Github存储库,其中包含有关如何在VM上设置新WordPress站点的信息。目前,我们正在使用由VVV维护的回购。
描述变量是不言自明的。
vm_dir是您的站点所在VM的实际目录。
local_dir是您的站点所在主机上的目录。
branch变量告诉Vagrant在这里的示例中检出repo的主分支。
nginx_upstream用于设置Nginx传递请求的位置,通常用于更改安装所需的PHP版本。 php这里指的是默认的PHP版本7.2。您可以使用php71将其更改为PHP 7.1或php56以将其更改为PHP 5.6。
skip_provisioning设置为false,这意味着我们需要将此站点包含在VM中。
hosts变量用于设置访问站点所需的URL。
如果您需要对WordPress网站进行一些额外的控制,自定义部分非常有用。您可以使用此部分来设置多站点安装或安装不同版本的WordPress,甚至可以更改将用于安装的数据库或站点的名称。
wp_type变量决定您的安装是带有域的多个mulsite还是带有子目录的多站点。 wp_type有四个值:single,subdomain,subirectory和none。使用子域安装,您可以按以下格式为多站点安装定义多个主机
hosts: - multisite.test - site1.multisite.test - site2.multisite.test custom: wp_type: subdomain
您可以在自定义部分下添加一个变量,即wp_version。如果要安装Nightly版本的WordPress,可以将其设置为每晚。它需要三个值:nightly,latest和version number。
custom: wp_version: nightly
还有另一个变量db_name,它允许您为安装设置数据库的名称。
custom: db_name: super_secet_db_name
最后,site_title变量允许您设置WP站点的标题。
custom: site_title: My Awesome Dev Site
这应该涵盖在VVV中添加自己的网站所需的所有变量和选项。更改vvv-custom.yml文件后,只需运行以下命令即可使新站点正常工作。
$vagrant reload --provision
添加现有站点
到目前为止,我们学习了如何向VVV添加一个全新的站点。但是,如果您已经在网站上工作并希望在VVV下添加它,该怎么办?让我们看看我们如何做到这一点。
要添加现有站点,第一步与之前相同,即编辑vvv-custom.yml文件并添加以下代码。
howtoforge: repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template description: "A WordPress site"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
hosts: - howtoforge.local
这将告诉VVV设置一个可通过http://howtoforge.local访问的新站点但它是一个全新的站点。我们需要做的是将其转换为现有的安装。为此,我们需要将现有WordPress安装中的文件复制到本地目录,即/ home / user / vvv / www / newsite
$cp /var/www/howtoforge/ /home/user/vvv/www/newsite/
现在我们需要复制数据库。一种简单的方法是将现有数据库导出为.sql文件,将该文件复制到我们博客的目录中,然后通过SSH连接到我们的VM再次导入数据库。
首先,在本地系统的命令行中登录mysql,然后使用以下命令导出数据库。
$cd /home/user/vvv/www/newsite $mysqldump -u username -p database_name > data-dump.sql
现在我们可以再次配置VM。
$vagrant reload --provision
SSH进入您的VM。
$vagrant ssh
现在将数据库导回到您的VM中。
$cd /srv/www/newsite $mysql -u root -p newsite < data-dump.sql
VVV在为我们的名为newsite的博客配置期间已经创建了一个新数据库。 root用户的密码是root。上面的命令会将我们现有的数据库导入到新数据库中。
这样就完成了VVV中现有站点的设置。
启用SSL
Localhost安装通常不安全。在localhost上安装自己的证书可能是一个漫长而繁琐的过程,即使使用Let的加密货币也是如此。但是VVV使这个过程非常简单,默认情况下,所有WordPress安装都启用了SSL。只需开始在您的网站上使用https即可。您的浏览器第一次会抱怨证书无效,但是将其作为例外添加,从现在开始应该没问题。
更新WordPress
您可以从仪表板更新WordPress安装。此外,VVV会在您重新配置VM时更新您的wordpress。您还可以通过从WordPress.org下载并解压缩zip文件来手动更新WordPress。您还可以使用与VVV捆绑在一起的WP CLI。要使用WP CLI更新站点,请使用以下命令。
$cd /srv/www/newsite $wp core update
更新VVV
第一步是停止Vagrant机器。
$vagrant halt
现在请确保您的流浪者和Virtualbox是最新的。如果没有,请再次下载并安装。
运行以下命令以更新您的Vagrant框。它是可选的,但最好是你应该继续它。
$vagrant box update
现在,从Github获取最新的VVV版本。
$git pull
再次重新配置该框以完成更新。
$vagrant up --provision
其他工具
VVV附带了可以安装的各种实用程序。您将在vvv-custom.yml文件的“实用程序”部分下列出它们。默认情况下,启用tls-ca和phpmyadmin。您可以通过在实用程序部分中删除它们前面的#来进一步安装从5.6到7.3的memcached,opcache,webgrind,mongodb,tideways和php版本。
您甚至可以添加自己想要安装的软件。您需要使用类似的东西修改vvv-custom.yml文件
utilities: core: - tls-ca
- phpmyadmin java: - java7 utility-sources: java: repo: https://github.com/example/java-utilities.git branch: master
例如,您将在此处添加一个新的部分java。安装代码将来自git存储库。你的git存储库的结构应该是这样的
java7/ provision.sh
provision.sh文件将包含在VM中安装java所需的代码。该文件夹的名称应与您在vvv-custom.yml文件中使用的名称相匹配。
结论
关于如何使用Vagrant设置本地WordPress开发环境的教程到此结束。如果你有问题就告诉我们。