Vagrant — единое окружение для разработки

Преамбула

Данная мини-статья является отсылкой к созданию более правильного окружения для разработки.

В современном мире WEB-разработки, разработчики уже давно перестали устанавливать окружение для разработки: PHP, WEB-сервер, СУБД и т.д. на свой локальный компьютер, на котором производят разработку.

Во-первых, установка и настройка занимает драгоценное время и силы.

Во-вторых, если разработчик работает на нескольких компьютерах (компьютер в офисе, дома, ноутбук), то достаточно проблематично настроить идентичное окружение везде и синхронизировать его настройку между всеми своими компьютерами. Эта проблема называется проблемой идентичности состояния, когда предполагается, что состав, версии и конфигурация всего ПО должна быть максимально идентичной.

В-третьих, если вы не один разработчик, то еще тяжелее поддерживать идентичность окружения на всех ваших компьютерах и на всех компьютерах ваших коллег. Здесь поддержать идентичное состояние еще сложней, так как от вас уже почти ничего не зависит.

В четвертых, состояние окружения вашего рабочего компьютера скорее всего не совпадает и не может совпадать с состоянием окружения вашего боевого (продакшн) сервера. Ведь у вас же Windows со всеми его причудами в конфигурировании, а на боевом сервере что-то однозначно другое.

В конечном итоге, если вы продолжите устанавливать окружение для разработки на свой локальный компьютер, то поймаете себя на мысли, что половина вашего рабочего времени проходит в попытках синхронизировать настройки окружения, а состояние вашей локальной операционной системы очень быстро превратится в свалку.

Избежать этого хаоса вам поможет виртуализация окружения разработки. Вам нужна виртуальная машина, которая бы разворачивалась по заданному вами сценарию, чтобы ее можно было развернуть одним кликом на любом компьютере под любой операционной системой. Пока вы будете пить кофе, ваша виртуальная машина будет готова. Также вам нужны какие-то средства для быстрого и простого управления такой виртуальной машиной (запуск, остановка, реконфигурация). И еще было бы здорово, если бы в файловой системе этой виртуальной машины был каталог, который отображался с каталога вашей локальной машины. Например, чтобы каталог локальной машины D:\myProjects, где хранятся ваши проекты, соответствовал каталогу виртуальной машины /var/myProjects или подобному. Еще хотелось бы иметь возможность выполнять настоящую отладку с использованием PHP-xDebug, причем приложение должно выполняться в виртуальной среде, на виртуальной машине, а управлять им вы могли с локальной. Уже нравится? Идем дальше! Читать далее Vagrant — единое окружение для разработки

Как установить Debian без знаний и опыта

«Как установить Debian без знаний и опыта» — это довольно частый вопрос, который мне приходится слышать. Хоть я и не считаю себя специалистом в этой области, я все же накопил некоторые инструкции для себя, которые позволяют мне быстро установить или настроить то или иное приложение либо операционную систему.

В данной статье, как и в остальных статьях моего блога, будет показан пример установки со скриншотами и подробным описанием того, что при этом происходит и для чего это нужно. Даже будет затронута тема LVM. Инструкция довольно длинная и нудная. Больше подойдет тем, кто сталкивается с установкой Linux впервые и хочет найти ответы на большинство своих вопросов в одном месте, не гугля целый день. Хотя, учитывая объем инструкции, Вам придется потратить на нее целый день :) Шутка. На самом деле уже через час у Вас будет свой собственный Debian сервер, который Вы создали и настроили сами!

Подача материала в этой инструкции тоже своеобразная: если затрагивается какая-то тема во время установки, то по этой теме при возможности будет дана краткая справочная информация и некоторые действия, которые можно произвести уже на установленной системе. Читать далее Как установить Debian без знаний и опыта

Laravel homestead Windows не запускается? Есть решение!

При установке laravel/homestead под Win10 столкнулся с проблемой запуска виртуальной машины. В консоли VirtualBox красовалась надпись, говорящая об ожидании сетевого подключения:

[    ***] A start job is running for Raise network interfaces (40s / 5 min)

В командной строке Windows, из которой запустили vagrant up, через несколько минут после старта возникала ошибка:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

Причем на этой же рабочей машине работают другие vagrant-коробки вполне успешно. Читать далее Laravel homestead Windows не запускается? Есть решение!

Yii2 интернационализация PHP, db, gettext начальная настройка

Не найдя простого руководства по инициализации процесса интернационализации и немного разобравшись во всем самостоятельно, я решил опубликовать простую пошаговую инструкцию, которая к концу написания стала не такой уж и простой.

Речь пойдет только об инициализации самого процесса. Сам же процесс отлично описан в официальном полном руководстве по Yii2. Прочитайте, пожалуйста, официальное руководство прежде чем продолжить. Читать далее Yii2 интернационализация PHP, db, gettext начальная настройка

Релиз PHP 7. Что нового

Вышел долгожданный релиз PHP 7. К разработке PHP 7 подошли очень ответственно — релиз должен был выйти ещё 12 ноября, но вместо этого незапланировано выпустили дополнительный кандидат RC 7 (с исправлением 17 багов) и отвели две недели на тестирование. Затем, 26 ноября, выпустили ещё один кандидат RC 8, исправляющий 11 багов, с неделей на тестирование.

Ниже — неполный список улучшений и нововведений: Читать далее Релиз PHP 7. Что нового

Калькулятор экспозиции для съемки с длинной выдержкой

Хочу рассказать о незаменимом приложении под Android, которое существенно облегчило расчеты при съемке с длинной выдержкой. Речь пойдет о приложении «Калькулятор экспозиции», которое можно бесплатно установить из Google Play. Приятным моментом будет то, что приложение, не смотря на свою бесплатность, не содержит рекламы, простое в использовании и выполняет все необходимые функции в максимально ожидаемом виде. Читать далее Калькулятор экспозиции для съемки с длинной выдержкой

Добавить жесткий диск в FreeBSD за 5 минут

Часто обращаю внимание на то, что простые вопросы чаще всего мало освещены в интернете. Наверное, это потому, что все гуру уверены, что никто никогда не задаст таких глупых вопросов, ведь это знает каждый. Но моя практика показала, что именно такие мелкие простые вопросы самые частые не только у новичков, а и у серьезных администраторов, которым просто не приходилось иметь с этим дела. Даже серьезные администраторы не делают это каждый день, а, чтобы не забыть, ведут некую шпаргалку для себя, никому в этом не признаваясь. Давайте все исправим. Сейчас Вы узнаете, как за 5 минут добавить жесткий диск в FreeBSD. Итак. Сначала будет преведена полная инструкция для понимания процесса, а в конце будет краткий список действий, которое будет содержать лишь список команд в качестве шпаргалки. Читать далее Добавить жесткий диск в FreeBSD за 5 минут

Ручная установка FreeBSD на USB flash или HDD

Данная статья подойдет как для ручной установки FreeBSD 10 на жесткий диск в целях повышения собственного skill, так и для ручной установки FreeBSD на USB flash накопитель, либо на любой другой накопитель, на который невозможно установить систему стандартными средствами.

Читать далее Ручная установка FreeBSD на USB flash или HDD

FreeBSD ping rapid как в Cisco или Juniper

Очень нравится, как реализован ping rapid в Cisco или Juniper. Легко и просто быстро качественно проверить канал связи. Суть работы данного режима (rapid) заключается в следующем: утилита посылает пакет удаленному узлу и, как только получает ответ, печатает в консоль символ восклицательного знака и сразу же отправляет следующий пакет без задержки. Если в течение 100 мс ответ не пришел, то это считается потерей. При потере в консоль печатается символ точки. Таким образом наглядно быстро и удобно можно определить качество канала связи. 1000 пакетов, чего вполне достаточно для проверки качества, проходит за приблизительно 10..20 секунд. Данная статья поможет Вам сделать свой FreeBSD PING RAPID. Читать далее FreeBSD ping rapid как в Cisco или Juniper