在本地进行开发是您可能会遇到的最好的事情之一。 它不仅可以让您省去上传/下载的时间,还可以创建任意数量的项目,可以在本地使用真实域,并且通常可以加快您的工作速度 。
Vagrant是一款出色的软件, 可以创建可复制且可移植的虚拟机 ,您可以将其用作本地Web服务器环境。 在本文中,我将向您展示为什么Vagrant如此出色,以及如何快速地在出色的WordPress测试环境中启动和运行。
什么是无业游民?
用Vagrant自己的话说,它可以用来“创建和配置 轻量级 ,可复制和可移植的开发环境”。 让我们找出这些术语对您当地环境的意义。
可配置的:
您的虚拟机易于创建,易于配置,更重要的是:可以进行广泛的配置。 默认设置是蛮好的大多数项目和休闲的测试,所以你不必摆弄它,但如果你所需要的力量,它的存在。
您可以像在真实服务器环境中一样进行设置。 从配置IP到自动安装git和其他软件,一切皆有可能,并由您决定。
我在计算机上运行多个虚拟机,每个虚拟机都有两个配置文件,总大小不超过4KB ,是的,两个文件,总共4KB。 老实说,我的设置非常简单,但是即使您有非常复杂的设置 ,最多也不会超过10-100KB 。
这些文件的可移植性是腰围很紧的事实。 一个文件是特殊的Vagrant文件,另一个文件是bash文件。 每个都包含简单的文本,没有什么特别的。 因此,您可以来回发送电子邮件,将它们保存在Evernote,Google Drive或Dropbox上。
这是Vagrant的最佳功能之一。 由于所需文件的大小和可移植性,可以轻松复制特定的服务器配置。 假设您创建一个需要高度优化的服务器的应用程序。 为它创建Vagrantfile和安装bash文件并启动并运行。
现在,您可以将配置通过电子邮件发送给您的团队成员,他们将在几分钟内运行完全相同的服务器 。
安装
一般来说,使用Vagrant开发环境入门需要三部分。
- 安装Vagrant和Virtualbox
- 创建服务器配置
- 创建您的Web环境(例如:安装WordPress)
安装无业游民
可以通过访问下载页面 ,选择操作系统并运行下载的软件包来安装Vagrant。 由于Vagrant依赖虚拟化,因此您将需要虚拟化软件。 Vagrant内置了对VirtualBox的支持,但可以使其与其他人一起使用,但是在本示例中,我们将使用VirtualBox。 在这里抓住它。
创建服务器配置
您可以使用现成的脚本为您做所有事情。 Jeffrey Way撰写了一篇很棒的教程,内容涉及放弃MAMP并改为使用Vagrant。 看一下并确保记下顶部的代码:
curl -L -o 'install.sh' http://bit.ly/1hBfq57 && curl -L -o 'Vagrantfile' http://bit.ly/1mE3Qt9 && vagrant up
如果创建文件夹,请使用终端或命令提示符导航至该文件夹并粘贴上面的代码,您将快速创建了一个本地环境。 让我们剖析一下,看看发生了什么。
curl -L -o 'install.sh' http://bit.ly/1hBfq57
该命令下载一个预制的安装文件 : install.sh
文件,负责在虚拟机运行后安装和配置软件。 PHP,Apache,MySQL和其他类似的东西都在这里处理。
curl -L -o 'Vagrantfile' http://bit.ly/1mE3Qt9
这将下载Vagrantfile ,其中包含有关服务器配置和其他基本安装说明的信息。 这决定了服务器使用的操作系统,网络映射到的IP。 它可以用来控制文件的权限和所有权等等。
vagrant up
此命令引导服务器 。
首次执行此操作时,可能需要5-20分钟。 需要下载所谓的“盒子”(例如,其中包含操作系统),其大小可能约为700+ MB。 然后将配置(安装和配置)服务器,然后将其启动并运行。
如果重新启动计算机或关闭虚拟机(VM),则需要再次运行该命令。 这次只需要几秒钟即可使其运行。
简而言之,这非常类似于在计算机上安装OS和环境。 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
: CREATE DATABASE wordpress
接下来,转到WordPress下载页面并获取最新版本。 将其解压缩到html
目录(根目录)中,并确保将创建的wordpress
子目录中的所有文件上移。
最后,您应该在html
目录中看到两个WordPress目录 (wp-admin,wp-includes)和默认的WordPress文件 。
绕行:故障排除
如果您按照这些说明进行操作,将会发现您可能无法通过WordPress界面上传文件 。 这与可以轻松解决的用户和组问题有关 。
SSH进入服务器,然后输入以下sudo vi /etc/apache2/apache.conf
。 这将打开一个VI编辑器,可用于编辑该文件。
输入/User
。 这会在文档中搜索“用户”的出现。 您应该看到可以定义用户和组的部分。
按“ i”进入编辑模式。 使用箭头键与光标一起导航 ,并将用户和组编辑为“无用”,如下所示:
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
将以下行添加到文件中的任何位置:
192.168.33.21 wordpress.local
确保使用您在配置文件中定义的主机名并保存主机文件。 该文件从本质上告诉我们的计算机从何处加载服务器名称以及如何解析它 。 默认情况下,您的计算机将访问Internet。 如果您输入facebook.com,它将从网络加载它。
但是, 如果将facebook.com绑定到虚拟机IP并将其定义为ServerName,它将在本地加载它 。
现在,您应该可以键入wordpress.local并看到与键入192.168.33.21相同的结果。
如果在安装WordPress 之后执行此操作,则可能会看到样式和脚本等内容损坏。 原因是WordPress将安装目标位置存储在数据库中,并将其设置为IP。
为了确保不会发生这种情况,您应该首先创建您的命名服务器,然后通过转至wordpress.local (或您选择的任何其他名称)来安装WordPress,而不要使用IP。
使用虚拟服务器
我们现在做的很好,但是就目前而言,我们必须为每个项目运行一个虚拟机,这很浪费。 通过使用虚拟服务器,您可以在同一虚拟机上运行任意数量的独立网站 。
关键在于站点配置文件 ,该文件是我们用来更改ServerName的文件。 现在创建两个虚拟主机。
首先,转到您在其中创建虚拟机的目录,然后创建两个子目录:blog和store。 您原始的html目录也应该在那里。
接下来,通过SSH进入服务器并导航到/etc/apache2/sites-available
目录。
通过复制默认配置文件来创建两个新文件:
cp 000-default.conf blog.conf;
cp 000-default.conf store.conf
使用前面讨论的方法编辑shop.conf
文件。 确保将ServerName设置为shop.dev
,并将DocumentRoot指令设置为/var/www/shop
shop.dev
这是我们刚才创建的目录。
使用正确的值对blog.conf
文件执行相同的blog.conf
。
使用sudo a2ensite blog
和sudo a2ensite shop
命令启用这些站点,并使用sudo service apache2 restart
命令重新启动服务器并通过使用exit
命令退出SSH连接。
现在编辑主机文件,以确保我们的计算机知道如何解析虚拟主机:
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资源 。
翻译自: https://www.hongkiat.com/blog/install-wordpress-locally-vagrant/