Быстрый старт | Примеры | Особенности | Стек 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
:Докер-движок 17.06.0+
Docker Compose 1.16.0+
Будьте готовы к работе за 2 минуты.
Загрузите Дьяволбокс
git-клон https://github.com/cytopia/devilbox
Войдите в каталог git Devilbox.
компакт-диск дьяволбокс
Скопируйте файл среды по умолчанию
cp env-пример .env
Важно: Убедитесь, что порты 80
и443
вашей хост-системы не прослушиваются. Эти порты необходимы веб-серверу Devilbox.
Запустите контейнер httpd
, php
и mysql
# Этот шаг может занять несколько минут, если необходимо # Первоначально необходимо загрузить образы Docker. # Внутри Devilbox gitdirectorydocker-compose up httpd php mysql
Посетите http://localhost в своем браузере.
Загрузите Дьяволбокс
git-клон https://github.com/cytopia/devilbox
Войдите в каталог git Devilbox.
компакт-диск дьяволбокс
Скопируйте файл среды по умолчанию
cp env-пример .env
Важно: Убедитесь, что порты 80
и443
вашей хост-системы не прослушиваются. Эти порты необходимы веб-серверу Devilbox.
Запустите контейнер httpd
, php
и mysql
# Этот шаг может занять несколько минут, если необходимо # Первоначально необходимо загрузить образы Docker. # Внутри Devilbox gitdirectorydocker-compose up httpd php mysql
Посетите http://localhost в своем браузере.
WSL2
, обратитесь к руководству по Linux. Клонируйте https://github.com/cytopia/devilbox
в C:devilbox
с помощью Git для Windows.
Скопируйте C:devilboxenv-example
в C:devilbox.env
Важно: Убедитесь, что порты 80
и443
вашей хост-системы не прослушиваются. Эти порты необходимы веб-серверу Devilbox.
Откройте терминал в Windows и запустите контейнер httpd
, php
и mysql
:
Запустите контейнер httpd
, php
и mysql
# При необходимости этот шаг может занять несколько минут # Первоначально необходимо загрузить образы Docker. # Внутри Devilbox gitdirectorydocker-compose up httpd php mysql
Посетите http://localhost в своем браузере.
Devilbox позволяет вам работать над проектами как в хост-системе, так и внутри рабочего контейнера. Файлы вашего проекта будут доступны в обоих местах. Рабочий процесс обычно следующий:
Используйте предпочитаемую вами IDE (например, PhpStorm) в вашей хост-системе для добавления и изменения файлов.
Работайте внутри контейнера, чтобы запускать общие инструменты командной строки, такие как node
, composer
, npm
, phpcs
, webpack
и многие другие.
Чтобы войти в рабочий контейнер, просто запустите ./shell.sh
В Linux, MacOS и Windows с WSL2
# Внутри каталога git Devilbox./shell.sh
В Windows без WSL2
# Внутри каталога git Devilbox./shell.bat
Создайте свой первый проект:
Запустите нужный вам контейнер:
docker-compose up httpd php mysql
Введите рабочий контейнер:
./shell.sh
Перейдите в /shared/httpd
:
компакт-диск /shared/httpd
Создайте каталог своего проекта
mkdir dummy-проект
Посетите 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 fileecho '<?php echo "itworks";' > индекс.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 стремится стать швейцарским армейским ножом для местного развития, предоставляя вам все услуги, которые вам когда-либо могут понадобиться. Чтобы получить представление об архитектуре, лежащей в его основе, а также увидеть, что доступно, взгляните на его компоненты и использование.
Самый маленький стекЭто минимально возможный и полнофункциональный стек, который вы можете запустить. | Полный стекЧтобы лучше понять, что на самом деле возможно, взгляните на полный пример. |
Вы можете запускать и использовать Devilbox тремя разными способами через docker-compose
:
Выборочный запуск
По требованию (добавление/удаление контейнера во время работы)
Полный запуск
Если вы уже знаете, какой контейнер вам нужен перед запуском Devilbox, вы можете просто указать его явно.
# Внутри каталога git Devilbox запустите httpd php mysql и redisdocker-compose up httpd php mysql redis
Интранет покажет вам, какой контейнер у вас запущен в данный момент:
Если Devilbox уже запущен, вы можете подключить дополнительные контейнеры на лету.
# Внутри каталога git Devilbox прикрепите mongo и memcacheddocker-compose up mongo memcd
Вы также можете закрыть определенные контейнеры, которые вам не нужны.
# Внутри каталога Devilbox git выключение redisdocker-compose stop redis
Если вы просто хотите все запустить, запустите docker-compose up
без каких-либо аргументов.
# Внутри каталога git Devilbox запустите их alldocker-compose up
Интранет покажет вам, какой контейнер у вас запущен в данный момент:
Если вы предпочитаете визуальное руководство, посмотрите два вводных видеоролика на Youtube:
Документация: Установка Devilbox | Запустите Devilbox | .env-файл
В следующей таблице перечислены все интегрированные и предварительно настроенные контейнеры Docker, поставляемые Devilbox. Обязательными являются только веб-сервер и контейнер PHP, все остальные необязательны и их не нужно запускать.
Каждый из них также доступен в нескольких различных версиях, чтобы точно отразить желаемую среду.
Ускорение | Интернет | Приложение | SQL | NoSQL | Очередь/Поиск | ЛОСЬ | Утилиты |
---|---|---|---|---|---|---|---|
HAProxy | Апач | PHP | МарияДБ | Мемкеш | КроликMQ | ЭластичныйПоиск | Связывать |
Лак | Нгинкс | Питон (Колба) | MySQL | МонгоБД | Солр | Логсташ | Блэкфайр |
ПерконаДБ | Редис | Кибана | MailHog | ||||
PostgreSQL | Нгрок |
Документация: Доступный контейнер
Каждый прикрепляемый контейнер поставляется в различных версиях. Чтобы выбрать нужную версию контейнера, просто отредактируйте файл .env
и раскомментируйте выбранную версию. Возможна любая комбинация.
Апач | Нгинкс | PHP | MySQL | МарияДБ | Перкона | PgSQL | Редис | Мемкеш | МонгоБД |
---|---|---|---|---|---|---|---|---|---|
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 | последний |
Документация: Изменение версий контейнера
Помимо стека по умолчанию, существует множество других служб, которые можно легко включить и запустить.
Питон (Колба) | Блэкфайр | ЛОСЬ | MailHog | Нгрок | КроликMQ | Солр | HAProxy | Лак |
---|---|---|---|---|---|---|---|---|
2,7 | 1,8 | 5.xy | v1.0.0 | 2.х | 3.6 | 5 | 1.х | 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amqp | |||||||||||||
БТР | |||||||||||||
апку | |||||||||||||
bcmath | |||||||||||||
черный огонь | д | д | д | д | д | д | д | ||||||
бз2 | |||||||||||||
календарь | |||||||||||||
ctype | |||||||||||||
завиток | |||||||||||||
дата | |||||||||||||
дба | |||||||||||||
дом | |||||||||||||
очаровывать | |||||||||||||
эрег | |||||||||||||
exif | |||||||||||||
ИФИ | |||||||||||||
информация о файле | |||||||||||||
фильтр | |||||||||||||
FTP | |||||||||||||
Боже | |||||||||||||
получить текст | |||||||||||||
GMP | |||||||||||||
хэш | |||||||||||||
значок v | |||||||||||||
игбинарный | |||||||||||||
воображение | |||||||||||||
изображение | |||||||||||||
межбазовый | |||||||||||||
международный | |||||||||||||
ионкуб | д | д | д | д | д | д | д | ||||||
JSON | |||||||||||||
ldap | |||||||||||||
библиотека libxml | |||||||||||||
лз4 | |||||||||||||
лзф | |||||||||||||
mbstring | |||||||||||||
mcrypt | |||||||||||||
кэш памяти | |||||||||||||
кэширование памяти | |||||||||||||
Мхэш | |||||||||||||
монго | |||||||||||||
монгодб | |||||||||||||
пакет сообщений | |||||||||||||
MySQL | |||||||||||||
MySQLi | |||||||||||||
mysqlnd | |||||||||||||
OAuth | |||||||||||||
oci8 | д | д | д | д | д | д | д | д | д | д | д | д | |
ОПкэш | |||||||||||||
OpenSSL | |||||||||||||
pcntl | |||||||||||||
pcre | |||||||||||||
ПДО | |||||||||||||
pdo_dblib | |||||||||||||
PDO_Firebird | |||||||||||||
pdo_mysql | |||||||||||||
PDO_OCI | д | д | д | д | д | д | д | д | |||||
pdo_pgsql | |||||||||||||
pdo_sqlite | |||||||||||||
pdo_sqlsrv | д | д | д | д | д | д | д | д | |||||
pgsql | |||||||||||||
сокол | д | д | д | д | д | д | д | д | д | д | д | ||
Фар | |||||||||||||
позикс | |||||||||||||
пспелл | |||||||||||||
пср | д | д | д | д | д | д | д | д | д | д | д | ||
случайный | |||||||||||||
Рдкафка | д | д | д | д | д | д | д | д | д | д | д | д | |
линия чтения | |||||||||||||
перекодировать | |||||||||||||
Redis | |||||||||||||
Отражение | |||||||||||||
сессия | |||||||||||||
Шмоп | |||||||||||||
ПростоXML | |||||||||||||
SNMP | |||||||||||||
мыло | |||||||||||||
розетки | |||||||||||||
натрий | |||||||||||||
сольр | |||||||||||||
СПЛ | |||||||||||||
Склайт | |||||||||||||
sqlite3 | |||||||||||||
sqlsrv | д | д | д | д | д | д | д | д | |||||
ssh2 | |||||||||||||
опухать | д | д | д | д | д | д | д | д | д | д | д | ||
sysvmsg | |||||||||||||
сисвсем | |||||||||||||
сисвшм | |||||||||||||
аккуратный | |||||||||||||
токенизатор | |||||||||||||
прогресс загрузки | |||||||||||||
uuid | |||||||||||||
VIP-персоны | |||||||||||||
вддкс | |||||||||||||
Xdebug | |||||||||||||
xhprof | д | д | д | д | д | д | д | д | |||||
xlswriter | |||||||||||||
xml | |||||||||||||
xmlreader | |||||||||||||
xmlrpc | |||||||||||||
xmlwriter | |||||||||||||
xsl | |||||||||||||
ямл | |||||||||||||
молния | |||||||||||||
zlib | |||||||||||||
ЗСТД |
Ядро включено (нельзя отключить):
Включено (можно отключить):
Доступно, но отключено (можно включить): 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
угловой-кли | |||||||||||||
Асгардсмс | |||||||||||||
потрясающе-ци | |||||||||||||
кодецепция | |||||||||||||
композитор | |||||||||||||
базовый пакет | |||||||||||||
развертыватель | |||||||||||||
эслинт | |||||||||||||
мерзавец | |||||||||||||
git-поток | |||||||||||||
grunt-cli | |||||||||||||
глоток | |||||||||||||
jq | |||||||||||||
jsonlint | |||||||||||||
laravel-установщик | |||||||||||||
laravel-люмен | |||||||||||||
проверка ссылок | |||||||||||||
леев | |||||||||||||
мдлинт | |||||||||||||
Mupdf-инструменты | |||||||||||||
сетевые инструменты | |||||||||||||
узел | |||||||||||||
НПМ | |||||||||||||
НВМ | |||||||||||||
Phalcon-devtools | |||||||||||||
php-cs-фиксатор | |||||||||||||
phpcbf | |||||||||||||
PHPS | |||||||||||||
phpmd | |||||||||||||
phpunit | |||||||||||||
пункт | |||||||||||||
pm2 | |||||||||||||
pwncat | |||||||||||||
rsync | |||||||||||||
нахальный | |||||||||||||
шеллчек | |||||||||||||
сш | |||||||||||||
стильлинт | |||||||||||||
СВН | |||||||||||||
Symfony-CLI | |||||||||||||
файл задачи | |||||||||||||
тиг | |||||||||||||
вим | |||||||||||||
vue-cli | |||||||||||||
вебпак-кли | |||||||||||||
wkhtmltopdf | |||||||||||||
WP-кли | |||||||||||||
wscat | |||||||||||||
ямлинт | |||||||||||||
пряжа | |||||||||||||
yq | |||||||||||||
зш |
Насколько протестировано, ограничений нет, и вы можете использовать любую платформу или CMS так же, как в своей реальной среде. Ниже приведены несколько примеров тщательно протестированных фреймворков и CMS:
Документация:
Настройка CakePHP | Настройка CodeIgniter | Настройка Контао | Настройка CraftCMS | Настройка Друпала | Настройка Joomla | Настройка Ларавел | Настройка Magento 2 | Настройка PhalconPHP | Настройка PhotonCMS | Настройка PrestaShop | Настройка ProcessWire | Настройка программного обеспечения | Настройка Symfony | Настройка Typo3 | Настройка WordPress | Настройка Yii | Настройка Зенд
Насколько протестировано, ограничений нет, и вы можете использовать любое приложение, создающее открытый порт. Эти порты будут обратно проксироваться веб-сервером и даже позволят вам использовать для них действительный HTTPS . Благодаря встроенной функции автозапуска Devilbox вы можете гарантировать, что ваше приложение автоматически запустится, как только вы запустите docker-compose up
.
Документация:
Настройка обратного прокси NodeJs | Документация по настройке обратного прокси-сервера Sphinx
Devilbox поставляется с предварительно настроенной внутренней сетью http://localhost
и https://localhost
. Это можно явно отключить или защитить паролем. Интранет не только покажет вам выбранную конфигурацию, но также проверит состояние текущей конфигурации, например, существуют ли записи DNS (на хосте и в контейнере), правильно ли настроены каталоги. Кроме того, он предоставляет внешние инструменты, позволяющие взаимодействовать с базами данных и электронной почтой.
Обзор виртуального хоста (проверяет каталоги и DNS)
Командование и контроль
Обзор электронной почты
Обзор базы данных (MySQL, PgSQL, Redis, Memcache,...)
Информационные страницы (Httpd, MySQL, PgSQL, Redis, Memcache,...)
И многое другое...
По умолчанию во внутренней сети Devilbox доступны следующие батареи:
Администратор | phpMyAdmin | phpPgAdmin | phpRedMin | Администратор PHP Memcached | Графический интерфейс OpCache | Просмотрщик почты |
Документация: Интранет Devilbox
Несколько примеров того, как выглядит встроенный интранет.
Devilbox имеет множество функций: от простой однопользовательской среды разработки, которая работает «из коробки», до общей инфраструктуры разработки для корпоративной сети.
Чтобы быть в курсе всех этих функций, обязательно просмотрите документацию , чтобы знать, что можно сделать и как это может упростить вашу повседневную жизнь. Если у вас когда-нибудь возникнут непредвиденные проблемы, присоединяйтесь к чату Discord или посетите форумы и быстро получите поддержку сообщества.
Документы | Раздор | Форум | Пламя |
---|---|---|---|
Devilbox.readthedocs.io | дискорд/дьявольский ящик | Devilbox.discourse.group | github.com/devilbox/flames |
Devilbox — все еще молодой проект, у которого впереди длинный план развития. Функции определяются вами — сообществом , поэтому любой вклад приветствуется.
Пометить этот проект звездой
Открывайте проблемы для ошибок и запросов функций.
Клонируйте этот проект и отправьте исправления или функции.
Я стараюсь следить за буквально более чем 100 проектами. Если моя работа облегчает вам жизнь, подумайте о том, чтобы прислать кофе или пиво.
Спонсорство GitHub
Патреон
Вклад: PyPI: цитопия · Terraform: цитопия · Ansible: цитопия
Логотипы и баннеры можно найти по адресу Devilbox/artwork . Не стесняйтесь использовать или изменять их в соответствии с условиями их лицензии.
Лицензия MIT
Copyright (c) 2016 Cytopia