geerlingguy/drupal-vm

此包已被 废弃 且不再维护。未建议替代包。

用于本地Drupal开发的虚拟机,基于Vagrant + Ansible构建

资助包维护!
geerlingguy
Patreon

安装次数: 2,973,130

依赖者: 6

建议者: 3

安全: 0

星标: 1,388

关注者: 77

分支: 664

开放问题: 16

语言:Jinja

类型:vm

6.0.4 2021-05-28 20:26 UTC

README

Drupal VM Logo

弃用通知:Drupal VM不再维护,不会再发布新版本。有关详情,请参阅问题 #2164。感谢过去十年中所有用户和维护者!

CI Documentation Status Packagist Docker Automated build irc://irc.freenode.net/drupal-vm

Drupal VM 是一个用于Drupal的虚拟机,使用Ansible构建。

Drupal VM让构建Drupal开发环境变得快速且简单,并引导开发者进入在虚拟机或Docker容器(而不是陈旧的MAMP/WAMP开发)上进行Drupal开发的奇妙世界。

你可以使用两种方式使用Drupal VM

  1. 使用Vagrant和VirtualBox。
  2. 使用Docker。

本README的其余部分假设你正在使用Vagrant和VirtualBox(这是目前最灵活且最广泛使用的方法)。如果你想使用Docker与Drupal VM一起使用,请阅读Drupal VM Docker文档

Drupal VM在Ubuntu 18.04(默认)Linux虚拟机上安装以下内容

  • Apache(或Nginx)
  • PHP(可配置版本)
  • MySQL(或MariaDB,或PostgreSQL)
  • Drupal 7、8或9
  • 可选
    • Drupal Console
    • Drush
    • Varnish
    • Apache Solr
    • Elasticsearch
    • Node.js
    • Selenium,通过Behat测试您的网站
    • Ruby
    • Memcached
    • Redis
    • SQLite
    • Blackfire、XHProf或Tideways以分析您的代码
    • XDebug,用于调试您的代码
    • Adminer,用于直接访问数据库
    • MailHog,用于捕获和调试邮件

在有良好宽带连接的情况下,从头开始构建或重建虚拟机应该需要5-10分钟。

请阅读本README的其余部分和Drupal VM文档以获取帮助配置和集成Drupal VM与您的流程。

文档

完整的Drupal VM文档可在http://docs.drupalvm.com/找到

自定义虚拟机

有几个地方你可以根据需求自定义虚拟机

  • config.yml:覆盖来自default.config.yml的任何默认虚拟机配置;定制虚拟机中安装的任何软件的几乎所有方面(更多关于配置Drupal VM的信息)。
  • drupal.composer.jsondrupal.make.yml:包含Drupal核心版本、模块和补丁的配置,这些将在Drupal的初始安装时下载(您可以使用Composer、Drush make或自己的代码库进行构建)。

如果您想在初始安装时使用Drupal 8,请执行以下操作

  1. config.yml中设置drupal_major_version: 8
  2. config.yml中设置drupal_composer_project_package: "drupal/recommended-project:^8@dev"

如果您想在初始安装时使用Drupal 7,请按照以下步骤操作:

  1. 切换到使用Drush Make文件
  2. 更新您drupal.make.yml文件中的versioncore
  3. config.yml中设置drupal_major_version: 7

快速入门指南

本快速入门指南将帮助您在Drupal VM上快速构建一个Drupal 9网站,创建一个新的Composer项目。您还可以使用Drupal VM与ComposerDrush Make文件本地Drupal代码库或甚至Drupal多站安装一起使用。

如果您想轻松地本地安装Drupal网站,只需:

  1. 安装VagrantVirtualBox
  2. 将此项目下载或克隆到您的工作站。
  3. 进入此项目目录,并运行vagrant up

但Drupal VM允许您使用所需的任何工具,以几乎无限的可定制性和灵活性来构建您的网站!

1 - 安装Vagrant和VirtualBox

下载并安装VagrantVirtualBox

您还可以使用Parallels或VMware等替代供应商。 (Parallels Desktop 11+需要“Pro”或“Business”版本和Parallels Provider,VMware需要付费的Vagrant VMware集成插件)。

注意:

  • 为了加快部署(仅限macOS/Linux):在您的宿主机器上安装Ansible,这样Drupal VM就可以在本地而不是在VM内运行部署步骤。
  • 为了稳定性:由于每个VirtualBox版本都会对网络进行更改,为了最佳稳定性,您应该安装Vagrant的vbguest插件:vagrant plugin install vagrant-vbguest
  • Linux上的NFS:如果您的宿主上还没有安装NFS,您需要安装它以使用默认的NFS同步文件夹配置。请参阅Linux的nfs说明
  • 版本:请确保您正在运行Vagrant、VirtualBox和Ansible的最新版本——截至2020年,Drupal VM推荐:Vagrant 2.2.x、VirtualBox 6.1.x和Ansible 2.9.x。

2 - 构建虚拟机

  1. 下载此项目并将其放置在您想要的位置。
  2. (可选)将default.config.yml复制到config.yml,并根据您的喜好进行修改。
  3. 创建一个本地目录,其中将安装Drupal,并在config.yml中配置到该目录的路径(在vagrant_synced_folders中的local_path)。
  4. 打开终端,使用cd进入此目录(包含Vagrantfile和此README文件)。
  5. 输入 vagrant up 命令,让 Vagrant 展示其魔法。

过程完成后,您将在项目的 drupal/ 目录中拥有一个 Drupal 代码库。

注意:如果在运行 vagrant up 的过程中出现任何错误,并且它将您送回到命令提示符,只需运行 vagrant provision 继续从您离开的地方构建虚拟机。如果这样做几次后仍然存在错误,请在 GitHub 上向该项目的 issue 队列提交错误。

3 - 访问虚拟机。

打开您的浏览器,访问 http://drupalvm.test/。管理员账户的默认登录名和密码都是 admin

注意:默认情况下,Drupal VM 配置使用 192.168.88.88 作为其 IP 地址,如果您正在运行多个虚拟机,可以使用 auto_network 插件(vagrant plugin install vagrant-auto_network)来帮助管理 IP 地址,如果将 config.yml 中的 vagrant_ip 设置为 0.0.0.0,则可以帮助。

额外软件/实用工具

默认情况下,此虚拟机包括 config.yml 选项 installed_extras 中列出的额外软件,例如

installed_extras:
  - adminer
  # - blackfire
  # - drupalconsole
  - drush
  # - elasticsearch
  # - java
  - mailhog
  [...]

如果您不需要或不需要这些额外软件之一或多个,只需从列表中删除它们或取消注释即可。如果您想减少 PHP 内存使用量或以其他方式节约系统资源,这很有用。

使用 Drupal VM

Drupal VM 是为了与每个开发者的工作流程集成而构建的。有关使用 Drupal VM 进行常见开发任务的许多指南可在 Drupal VM 文档站点 上找到。

更新 Drupal VM

Drupal VM 遵循语义版本控制,这意味着您的配置应该在整个主要发布周期中继续工作(可能需要非常小的修改)。以下是更新 Drupal VM 之间小版本的方法

  1. 阅读 发布说明 并添加/修改其中提到的 config.yml 变量。
  2. 对您的 config.yml 与更新的 default.config.yml 进行 diff(例如,curl https://raw.githubusercontent.com/geerlingguy/drupal-vm/master/default.config.yml | git diff --no-index config.yml -)。
  3. 运行 vagrant provision 以配置虚拟机,并纳入所有最新更改。

对于主要版本升级(例如,4.x.x 到 5.x.x),可能更简单的是销毁虚拟机(vagrant destroy),然后使用新版本的 Drupal VM 重新构建一个全新的虚拟机(vagrant up)。

系统要求

Drupal VM 几乎可以在运行 VirtualBox 和 Vagrant 的任何现代计算机上运行,但是为了获得最佳开箱即用体验,建议您拥有至少以下配置的计算机

  • 启用 VT-x 的 Intel Core 处理器
  • 至少 4 GB RAM(越高越好)
  • 固态硬盘(对于同步文件夹的速度更快)

其他说明

  • 要关闭虚拟机,请在具有 Vagrantfile 的同一文件夹中的终端中输入 vagrant halt。要完全销毁它(如果您想节省一点磁盘空间,或者想重新从头开始使用 vagrant up 重建它),请输入 vagrant destroy
  • 要登录虚拟机,请输入 vagrant ssh。您还可以使用 vagrant ssh-config 获取机器的 SSH 连接详细信息。
  • 当您重新构建虚拟机(例如执行vagrant destroy然后执行另一个vagrant up)时,请确保清空宿主机上drupal文件夹的内容,否则在重新构建虚拟机时Drupal可能会返回一些错误(它不会干净地重新安装Drupal)。
  • 您可以通过编辑config.yml中的变量来更改已安装的Drupal或drush版本,或任何其他配置选项。
  • 在本演示文稿中了解更多关于使用Vagrant + VirtualBox + Ansible进行本地开发的信息:本地开发环境 - Vagrant, VirtualBox和Ansible
  • 通过阅读Ansible for DevOps了解Ansible如何加速您创新和管理基础设施的能力。

测试

使用Docker和Molecule运行基本集成测试

  1. 安装Docker.
  2. 安装Molecule: pip3 install ansible molecule[docker]
  3. 在此项目目录中,运行:composer run-tests

该项目的自动化测试通过GitHub Actions运行,更全面的测试套件涵盖了多个Linux发行版以及许多不同的Drupal VM使用场景和部署技术。

许可

本项目采用MIT开源许可证。

关于作者

Jeff Geerling于2014年创建了Drupal VM,以实现更高效的Drupal站点和核心/贡献开发工作流程。本项目在Ansible for DevOps中作为示例。