快速入門|範例|特點| 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 映像。
在瀏覽器中造訪http://localhost
下載惡魔盒
git 克隆 https://github.com/cytopia/devilbox
進入Devilbox git目錄
CD惡魔盒
複製預設環境文件
cp env-範例 .env
重要:確保主機系統上的連接埠 80
和443
上沒有任何內容正在偵聽。 Devilbox Web 伺服器需要這些連接埠。
啟動httpd
、 php
和mysql
容器
# 根據需要,此步驟可能需要幾分鐘# 首先必須拉取 Docker 映像。
在瀏覽器中造訪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 映像。
在瀏覽器中造訪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