geerlingguy / drupal-vm
用于本地Drupal开发的虚拟机,基于Vagrant + Ansible构建
- dev-master
- 6.0.4
- 6.0.3
- 6.0.2
- 6.0.1
- 6.0.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.9.2
- 4.9.1
- 4.9.0
- 4.8.1
- 4.8.0
- 4.7.2
- 4.7.1
- 4.7.0
- 4.6.0
- 4.5.0
- 4.4.5
- 4.4.4
- 4.4.3
- 4.4.2
- 4.4.1
- 4.4.0
- 4.3.1
- 4.3.0
- 4.2.1
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.0
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- dev-2109-github-actions-molecule
- dev-2078-remove-drupal-console
- dev-newer-solr
This package is auto-updated.
Last update: 2023-03-13 03:31:39 UTC
README
弃用通知:Drupal VM不再维护,不会再发布新版本。有关详情,请参阅问题 #2164。感谢过去十年中所有用户和维护者!
Drupal VM 是一个用于Drupal的虚拟机,使用Ansible构建。
Drupal VM让构建Drupal开发环境变得快速且简单,并引导开发者进入在虚拟机或Docker容器(而不是陈旧的MAMP/WAMP开发)上进行Drupal开发的奇妙世界。
你可以使用两种方式使用Drupal VM
- 使用Vagrant和VirtualBox。
- 使用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.json
或drupal.make.yml
:包含Drupal核心版本、模块和补丁的配置,这些将在Drupal的初始安装时下载(您可以使用Composer、Drush make或自己的代码库进行构建)。
如果您想在初始安装时使用Drupal 8,请执行以下操作
- 在
config.yml
中设置drupal_major_version: 8
。 - 在
config.yml
中设置drupal_composer_project_package: "drupal/recommended-project:^8@dev"
。
如果您想在初始安装时使用Drupal 7,请按照以下步骤操作:
- 切换到使用Drush Make文件。
- 更新您
drupal.make.yml
文件中的version
和core
。 - 在
config.yml
中设置drupal_major_version: 7
。
快速入门指南
本快速入门指南将帮助您在Drupal VM上快速构建一个Drupal 9网站,创建一个新的Composer项目。您还可以使用Drupal VM与Composer、Drush Make文件、本地Drupal代码库或甚至Drupal多站安装一起使用。
如果您想轻松地本地安装Drupal网站,只需:
- 安装Vagrant和VirtualBox。
- 将此项目下载或克隆到您的工作站。
- 进入此项目目录,并运行
vagrant up
。
但Drupal VM允许您使用所需的任何工具,以几乎无限的可定制性和灵活性来构建您的网站!
1 - 安装Vagrant和VirtualBox
下载并安装Vagrant和VirtualBox。
您还可以使用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 - 构建虚拟机
- 下载此项目并将其放置在您想要的位置。
- (可选)将
default.config.yml
复制到config.yml
,并根据您的喜好进行修改。 - 创建一个本地目录,其中将安装Drupal,并在
config.yml
中配置到该目录的路径(在vagrant_synced_folders
中的local_path
)。 - 打开终端,使用
cd
进入此目录(包含Vagrantfile
和此README文件)。 - 输入
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 之间小版本的方法
- 阅读 发布说明 并添加/修改其中提到的
config.yml
变量。 - 对您的
config.yml
与更新的default.config.yml
进行 diff(例如,curl https://raw.githubusercontent.com/geerlingguy/drupal-vm/master/default.config.yml | git diff --no-index config.yml -
)。 - 运行
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运行基本集成测试
- 安装Docker.
- 安装Molecule:
pip3 install ansible molecule[docker]
- 在此项目目录中,运行:
composer run-tests
该项目的自动化测试通过GitHub Actions运行,更全面的测试套件涵盖了多个Linux发行版以及许多不同的Drupal VM使用场景和部署技术。
许可
本项目采用MIT开源许可证。
关于作者
Jeff Geerling于2014年创建了Drupal VM,以实现更高效的Drupal站点和核心/贡献开发工作流程。本项目在Ansible for DevOps中作为示例。