
快速入门|示例|特点| Devilbox 堆栈|社区|贡献|标志|执照

Devilbox 是一个多功能且高度可定制的零配置 PHP Docker 堆栈,通过自动反向代理集成支持 LEMP 和 MEAN 以及 Websockets、Node、Python 和 Golang。
主要目标是提供一个可重复的开发环境,该环境可以在所有主要平台上运行,并且能够切换和组合您需要的任何版本。它支持无限数量的项目,自动创建虚拟主机、SSL 证书和 DNS 记录。电子邮件拦截和流行的开发工具也将为您服务。无需配置,因为一切都已预先设置。
所有创建的项目(前端或后端)都能够相互通信,以支持模拟完整的微服务架构或 API 环境。
可用架构: amd64 、 arm64
可用的 PHP 版本: 5.2 、 5.3 、 5.4 、 5.5 、 5.6 、 7.0 、 7.1 、 7.2 、 7.3 、 7.4 、 8.0 、 8.1 、 8.2
Docker和Docker Compose :Docker 引擎 17.06.0+
Docker 组合 1.16.0+
2 分钟内即可启动并运行。
下载恶魔盒
git 克隆 https://github.com/cytopia/devilbox
进入Devilbox git目录
CD恶魔盒
复制默认环境文件
cp env-示例 .env
重要提示:确保主机系统上的端口 80和443上没有任何内容正在侦听。 Devilbox Web 服务器需要这些端口。
启动httpd 、 php和mysql容器
# 根据需要,此步骤可能需要几分钟# 首先必须拉取 Docker 镜像。# 在 Devilbox git 目录中 docker-compose up httpd php mysql
在浏览器中访问http://localhost
下载恶魔盒
git 克隆 https://github.com/cytopia/devilbox
进入Devilbox git目录
CD恶魔盒
复制默认环境文件
cp env-示例 .env
重要提示:确保主机系统上的端口 80和443上没有任何内容正在侦听。 Devilbox Web 服务器需要这些端口。
启动httpd 、 php和mysql容器
# 根据需要,此步骤可能需要几分钟# 首先必须拉取 Docker 镜像。# 在 Devilbox git 目录中 docker-compose up httpd php mysql
在浏览器中访问http://localhost
WSL2 ,请参阅 Linux 指南。使用适用于 Windows 的 Git 将https://github.com/cytopia/devilbox克隆到C:devilbox
将C:devilboxenv-example复制到C:devilbox.env
重要提示:确保主机系统上的端口 80和443上没有任何内容正在侦听。 Devilbox Web 服务器需要这些端口。
在 Windows 上打开终端并启动httpd 、 php和mysql容器:
启动httpd 、 php和mysql容器
# 根据需要,此步骤可能需要几分钟# 首先必须拉取 Docker 镜像。# 在 Devilbox git 目录中 docker-compose up httpd php mysql
在浏览器中访问http://localhost
Devilbox 允许您在主机系统以及工作容器内处理您的项目。您的项目文件将在两个位置都可用。工作流程通常是:
在主机系统上使用您喜欢的 IDE(例如 PhpStorm)来添加和更改文件
在容器内运行常见的 cli 工具,例如node 、 composer 、 npm 、 phpcs 、 webpack等等。
要进入工作容器,只需运行./shell.sh
在使用 WSL2 的 Linux、MacOS 和 Windows 上
# Devilbox git目录内./shell.sh
在没有 WSL2 的 Windows 上
# Devilbox git目录内./shell.bat
创建您的第一个项目:
启动您需要的容器:
docker-compose up httpd php mysql
进入工作容器:
./shell.sh
导航到/shared/httpd :
cd /共享/httpd
创建您的项目目录
mkdir 虚拟项目
访问http://localhost/vhosts.php
您会注意到您需要创建一个htdocs/目录
创建htdocs/目录
# 导航到您的项目目录cd /shared/httpd/dummy-project# 创建 htdocs dirmkdir htdocs
访问http://localhost/vhosts.php
您将看到一切现已设置完毕,您的项目已创建并可用
创建一个index.php文件
# 导航到您的项目 htdocs 目录cd /shared/httpd/dummy-project/htdocs# 创建一个简单的index.php 文件echo '<?php echo "it Works";' > 索引.php
在浏览器中查看您的项目:http://dummy-project.dvl.to
查找文档中的所有示例:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Devilbox 试图成为一个开箱即用的零配置堆栈,并自动化了所有无聊的任务。此外,它还提供日常工作所需的通用功能。
自动化Automated Project creationAutomated SSLAutomated DNSHost permission sync | 模式Static filesPHP filesReverse ProxyWebsockets | 后端PHP-FPMNodeJSPythonGolang... | 分析BlackfireXdebugXHProf |
项目Unlimited ProjectsInter-Project CommunicationCustom Project domainsValid browser HTTPS | 内联网Virtual HostsC&CEmail ReaderOpCache Gui | 电池AdminerphpMyAdminphpPgAdminphpRedMind | 服务SQLNoSQLCache... |
Devilbox 旨在为您提供所需的所有服务,成为当地发展的瑞士军刀。要了解其背后的架构并了解可用的内容,请查看其组件和用法。
最小堆栈这是您可以运行的最小且功能齐全的堆栈 | 全栈为了更好地理解实际可能的情况,请查看完整的示例 |
您可以通过docker-compose以三种不同的方式启动和操作 Devilbox:
选择性启动
按需(运行时添加/删除容器)
完全启动
如果您在启动 Devilbox 之前已经知道需要什么类型的容器,则可以明确指定它们。
# 在 Devilbox git 目录下启动 httpd php mysql 和 redisdocker-compose up httpd php mysql redis
内联网将显示您当前正在运行的容器:

如果 Devilbox 已经启动,您可以即时附加更多容器,
# 在 Devilbox git 目录中附加 mongo 和 memcacheddocker-compose up mongo memcd
您还可以关闭不需要的特定容器
# Devilbox git目录内 shutdown redisdocker-compose stop redis
如果您只想开始一切,请运行docker-compose up而不带任何参数
# 在 Devilbox git 目录中启动它们 docker-compose up
内联网将显示您当前正在运行的容器:

如果您喜欢视觉指南,请观看 Youtube 上的两个介绍视频: 

文档:安装 Devilbox |启动恶魔盒 | .env 文件
下表列出了 Devilbox 附带的所有集成和预配置的 Docker 容器。只有 Web 服务器和 PHP 容器是必需的,所有其他都是可选的,不需要启动。
它们中的每一个都有多个不同的版本,以反映您确切所需的环境。
| 加速器 | 网络 | 应用程序 | SQL | NoSQL | 队列/搜索 | 麋鹿 | 实用工具 |
|---|---|---|---|---|---|---|---|
| HA代理 | 阿帕奇 | PHP | 玛丽亚数据库 | 内存缓存 | RabbitMQ | 弹性搜索 | 绑定 |
| 漆 | nginx | Python(烧瓶) | MySQL | MongoDB | 索尔 | 日志存储 | 黑火 |
| Percona数据库 | 雷迪斯 | 木花 | 邮霸 | ||||
| PostgreSQL | 恩格罗克 |
文档:可用容器
每个可连接容器都有许多不同的版本。要为容器选择所需的版本,只需编辑.env文件并取消注释所选版本即可。任何组合都是可能的。
| 阿帕奇 | nginx | PHP | MySQL | 玛丽亚数据库 | 佩尔科纳 | 数据库SQL | 雷迪斯 | 内存缓存 | MongoDB |
|---|---|---|---|---|---|---|---|---|---|
| 2.2 | 稳定的 | 5.2 [1] | 5.5 | 5.5 | 5.5 | 9.0 | 2.8 | 1.4 | 2.8 |
| 2.4 | 主线 | 5.3 | 5.6 | 10.0 | 5.6 | 9.1 | 3.0 | 1.5 | 3.0 |
| 5.4 | 5.7 | 10.1 | 5.7 | 9.2 | 3.2 | 1.6 | 3.2 | ||
| 5.5 | 8.0 | 10.2 | 8.0 | 9.3 | 4.0 | 最新的 | 3.4 | ||
| 5.6 | 10.3 | 9.4 | 5.0 | 3.6 | |||||
| 7.0 | 10.4 | 9.5 | 6.0 | 4.0 | |||||
| 7.1 | 10.5 | 9.6 | 6.2 | 4.2 | |||||
| 7.2 | 10.6 | 10 | 7.0 | 4.4 | |||||
| 7.3 | 10.7 | 11 | 最新的 | 5.0 | |||||
| 7.4 | 10.8 | 12 | 最新的 | ||||||
| 8.0 | 10.9 | ... | |||||||
| 8.1 | 10.10 | 15 | |||||||
| 8.2 | 最新的 |
文档:更改容器版本
除了默认堆栈之外,还有多种其他可以轻松启用和启动的服务。
| Python(烧瓶) | 黑火 | 麋鹿 | 邮霸 | 恩格罗克 | RabbitMQ | 索尔 | HA代理 | 漆 |
|---|---|---|---|---|---|---|---|---|
| 2.7 | 1.8 | 5.xy | v1.0.0 | 2.x | 3.6 | 5 | 1.x | 4 |
| ... | ... | 6.xy | 最新的 | 3.7 | 6 | 5 | ||
| 3.7 | 1.18.0 | 7.xy | 最新的 | 7 | 6 | |||
| 3.8 | 最新的 | 最新的 | 最新的 |
文档:启用自定义容器
Devilbox 是一个开发堆栈,因此确保许多 PHP 模块开箱即用,以便与许多不同的框架配合使用。
核心已启用(无法禁用):
启用(可以禁用):
可用,但已禁用(可以启用): d
| 模块 | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 阿姆奎普 | |||||||||||||
| 装甲车 | |||||||||||||
| 阿普库 | |||||||||||||
| 数学数学 | |||||||||||||
| 黑火 | d | d | d | d | d | d | d | ||||||
| 乙二 | |||||||||||||
| 日历 | |||||||||||||
| 类型 | |||||||||||||
| 卷曲 | |||||||||||||
| 日期 | |||||||||||||
| 数据库管理员 | |||||||||||||
| 多姆 | |||||||||||||
| 附魔 | |||||||||||||
| 埃雷格 | |||||||||||||
| exif | |||||||||||||
| 外国金融机构 | |||||||||||||
| 文件信息 | |||||||||||||
| 筛选 | |||||||||||||
| 文件传输协议 | |||||||||||||
| 总督 | |||||||||||||
| 获取文本 | |||||||||||||
| 良好生产规范 | |||||||||||||
| 散列 | |||||||||||||
| 图标 | |||||||||||||
| 二进制 | |||||||||||||
| 意象 | |||||||||||||
| 图像映射 | |||||||||||||
| 间基 | |||||||||||||
| 国际 | |||||||||||||
| 离子立方体 | d | d | d | d | d | d | d | ||||||
| json | |||||||||||||
| LDAP | |||||||||||||
| 库文件 | |||||||||||||
| lz4 | |||||||||||||
| 勒兹夫 | |||||||||||||
| mbstring | |||||||||||||
| 密码 | |||||||||||||
| 内存缓存 | |||||||||||||
| 内存缓存 | |||||||||||||
| 哈希值 | |||||||||||||
| 蒙戈 | |||||||||||||
| 蒙古数据库 | |||||||||||||
| 消息包 | |||||||||||||
| mysql | |||||||||||||
| mysqli | |||||||||||||
| mysqlnd | |||||||||||||
| 开放认证 | |||||||||||||
| 奥西8 | d | d | d | d | d | d | d | d | d | d | d | d | |
| OP缓存 | |||||||||||||
| 开放式SSL | |||||||||||||
| 控制中心 | |||||||||||||
| 聚合酶链反应 | |||||||||||||
| 磷酸二氢钾 | |||||||||||||
| pdo_dblib | |||||||||||||
| PDO_火鸟 | |||||||||||||
| pdo_mysql | |||||||||||||
| PDO_OCI | d | d | d | d | d | d | d | d | |||||
| pdo_pgsql | |||||||||||||
| pdo_sqlite | |||||||||||||
| pdo_sqlsrv | d | d | d | d | d | d | d | d | |||||
| pgsql | |||||||||||||
| 法尔康 | d | d | d | d | d | d | d | d | d | d | d | ||
| 法尔 | |||||||||||||
| POSIX | |||||||||||||
| 拼写 | |||||||||||||
| PSR | d | d | d | d | d | d | d | d | d | d | d | ||
| 随机的 | |||||||||||||
| 德卡夫卡 | d | d | d | d | d | d | d | d | d | d | d | d | |
| 阅读线 | |||||||||||||
| 重新编码 | |||||||||||||
| 雷迪斯 | |||||||||||||
| 反射 | |||||||||||||
| 会议 | |||||||||||||
| 什莫普 | |||||||||||||
| 简单XML | |||||||||||||
| SNMP | |||||||||||||
| 肥皂 | |||||||||||||
| 插座 | |||||||||||||
| 钠 | |||||||||||||
| 索尔 | |||||||||||||
| 声压级 | |||||||||||||
| sqlite | |||||||||||||
| sqlite3 | |||||||||||||
| sqlsrv | d | d | d | d | d | d | d | d | |||||
| ssh2 | |||||||||||||
| 斯沃尔 | d | d | d | d | d | d | d | d | d | d | d | ||
| 系统信息 | |||||||||||||
| 系统仿真 | |||||||||||||
| 系统管理程序 | |||||||||||||
| 整齐的 | |||||||||||||
| 分词器 | |||||||||||||
| 上传进度 | |||||||||||||
| uuid | |||||||||||||
| 贵宾 | |||||||||||||
| 西德克斯 | |||||||||||||
| 调试工具 | |||||||||||||
| 教授 | d | d | d | d | d | d | d | d | |||||
| xls编写器 | |||||||||||||
| XML | |||||||||||||
| XML阅读器 | |||||||||||||
| xmlrpc | |||||||||||||
| XML编写器 | |||||||||||||
| xsl | |||||||||||||
| yaml | |||||||||||||
| 拉链 | |||||||||||||
| 兹库 | |||||||||||||
| 兹标准 |
核心已启用(无法禁用):
启用(可以禁用):
可用,但已禁用(可以启用): d
文档:启用/禁用 PHP 模块
知名且流行的工具将为您服务:














| 工具 | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 角度-cli | |||||||||||||
| 阿斯加德CMS | |||||||||||||
| 真棒-ci | |||||||||||||
| 代码接收 | |||||||||||||
| 作曲家 | |||||||||||||
| 核心包 | |||||||||||||
| 部署者 | |||||||||||||
| 埃斯林特 | |||||||||||||
| git | |||||||||||||
| git 流 | |||||||||||||
| grunt-cli | |||||||||||||
| 吞咽 | |||||||||||||
| 杰克 | |||||||||||||
| jsonlint | |||||||||||||
| laravel 安装程序 | |||||||||||||
| laravel 流明 | |||||||||||||
| 链接检查 | |||||||||||||
| 米德尔 | |||||||||||||
| 姆德林特 | |||||||||||||
| mupdf-工具 | |||||||||||||
| 网络工具 | |||||||||||||
| 节点 | |||||||||||||
| 新项目管理 | |||||||||||||
| 非易失性 | |||||||||||||
| phalcon-开发工具 | |||||||||||||
| php-cs-修复程序 | |||||||||||||
| phpcbf | |||||||||||||
| phpcs | |||||||||||||
| phpmd | |||||||||||||
| php单元 | |||||||||||||
| 点 | |||||||||||||
| 颗粒物 | |||||||||||||
| 猫猫 | |||||||||||||
| 同步 | |||||||||||||
| 萨斯 | |||||||||||||
| 外壳检查 | |||||||||||||
| SSH | |||||||||||||
| 风格林特 | |||||||||||||
| SVN | |||||||||||||
| symfony-cli | |||||||||||||
| 任务文件 | |||||||||||||
| 蒂格 | |||||||||||||
| 维姆 | |||||||||||||
| vue-cli | |||||||||||||
| webpack-cli | |||||||||||||
| wkhtml转pdf | |||||||||||||
| wp-cli | |||||||||||||
| WSCAT | |||||||||||||
| 亚姆林特 | |||||||||||||
| 纱 | |||||||||||||
| yq | |||||||||||||
| 桀骜 |
据测试,没有任何限制,您可以使用任何框架或 CMS,就像在实时环境中一样。以下是经过广泛测试的框架和 CMS 的一些示例:


















文档:
设置 CakePHP |设置 CodeIgniter |设置Contao |设置 CraftCMS |设置 Drupal |设置 Joomla |设置 Laravel |设置 Magento 2 |设置 PhalconPHP |设置 PhotonCMS |设置 PrestaShop |设置 ProcessWire |设置商店软件 |设置 Symfony |设置 Typo3 |设置 WordPress |设置 Yii |设置 Zend
据测试,没有任何限制,您可以使用任何创建开放端口的应用程序。这些端口将由 Web 服务器进行反向代理,甚至允许您对它们使用有效的 HTTPS 。通过 Devilbox 内置的自动启动功能,您可以确保您的应用程序在运行docker-compose up后立即自动启动。



文档:
设置反向代理 NodeJs |设置反向代理 Sphinx 文档
Devilbox 在http://localhost和https://localhost上预配置了 Intranet。这可以被明确禁用或受密码保护。内联网不仅会向您显示所选的配置,还会验证当前配置的状态,例如DNS 记录是否存在(在主机和容器上)、目录是否已正确设置。此外,它还提供外部工具来让您与数据库和电子邮件进行交互。
虚拟主机概述(验证目录和 DNS)
命令与控制
电子邮件概述
数据库概述(MySQL、PgSQL、Redis、Memcache...)
信息页面(Httpd、MySQL、PgSQL、Redis、Memcache...)
还有更多...
Devilbox内网默认提供以下电池:
| 管理员 | php我的管理员 | phpPg管理员 | phpRedMin | PHP Memcached 管理 | OpCache图形用户界面 | 邮件查看器 |
文档: Devilbox 内联网
内置 Intranet 的一些示例。
![]() | ![]() | ![]() |
![]() |
Devilbox 具有许多功能,从开箱即用的简单单用户开发环境到企业网络的共享开发基础设施。
为了了解所有这些功能,请确保浏览过文档,以便您知道可以做什么以及如何简化您的日常生活。如果您遇到任何不可预见的问题,请随时加入Discord 聊天或访问论坛并快速获得社区支持。
文档 | 不和谐 | 论坛 | 火焰 |
|---|---|---|---|
| Devilbox.readthedocs.io | 不和谐/恶魔盒 | Devilbox.discourse.group | github.com/devilbox/flames |
Devilbox 仍然是一个年轻的项目,未来还有很长的路线图。功能由您(社区)决定,因此欢迎任何形式的贡献。
给这个项目加星标
提出错误和功能请求的问题
克隆此项目并提交修复或功能
我努力跟上 100 多个项目。如果我的工作让您的生活更轻松,请考虑送咖啡或啤酒。
GitHub 赞助
帕特雷恩
贡献: PyPI:cypia · Terraform:cypia · Ansible:cypia
徽标和横幅可以在Devilbox/artwork中找到。请根据其许可条款随意使用或修改它们。



麻省理工学院许可证
版权所有 (c) 2016 cypia