快速入门|示例|特点| 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 creation Automated SSL Automated DNS Host permission sync | 模式Static files PHP files Reverse Proxy Websockets | 后端PHP-FPM NodeJS Python Golang ... | 分析Blackfire Xdebug XHProf |
项目Unlimited Projects Inter-Project Communication Custom Project domains Valid browser HTTPS | 内联网Virtual Hosts C&C Email Reader OpCache Gui | 电池Adminer phpMyAdmin phpPgAdmin phpRedMind | 服务SQL NoSQL Cache ... |
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