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 не запускается? Есть решение!

Установка Nginx 1.13, PHP 7, MySQL 5.7, MariaDB 10.1 в Debian и Ubuntu

Набор инструкций для установки последних версий Nginx, PHP, MySQL, MariaDB на компьютер (сервер) под управлением операционных систем Debian или Ubuntu. Инструкции описывают простое добавление альтернативных репозиториев в систему и установку приложений из них.

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

Описаны следующие приложения (версии указаны на момент написания статьи):

  1. Nginx (1.13)
  2. MySQL (5.7)
  3. MariaDB (10.1)
  4. PostgreSQL (9.6)
  5. PHP (7.0, 7.1)
  6. MongoDB (3.4)
  7. Elasticsearch (5.4)

Читать далее Установка Nginx 1.13, PHP 7, MySQL 5.7, MariaDB 10.1 в Debian и Ubuntu

RedMine + BitBucket git

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

Так как RedMine по умолчанию может работать только с локальными репозиториями, то мы организуем зеркало (выполним клонирование с ключом --mirror) репозитория с BitBucket на локальный сервер с RedMine, а затем подключим его как локальный к проекту.

Также мы будем периодически выполнять git fetch --all -p, чтобы синхронизировать наше зеркало с репозиторием.

Итак. Приступим. Читать далее RedMine + BitBucket git

Установка Asterisk 13 + chan_dongle (E1550, E1750) на Debian 8

В предыдущей статье шла речь об установке системы Asterisk версии 11 на сервер под управлением Ubuntu. Основным поводом установки 11 версии было то, что под 13 версию не существовало модуля chan_dongle. Теперь такой модуль есть, поэтому есть смысл написать заново, теперь уже о Asterisk 13, Debian и некоторых других удобных полезных функциях.

Данная инструкция описывает процесс установки телефонной системы Asterisk с модулями DAHDI, LibPRI, PJSip, SpanDSP, chan_dongle и дополнительными кодеками Opus и g729. Никаких WEB-интерфейсов и прочих утилит для конфигурирования и мониторинга системы данная инструкция не предусматривает. Это связано с тем, что автору приходилось неоднократно разбираться с конфигурационными файлами, сгенерированными автоматически при помощи FreeBPX и прочих подобных систем, что вызывало у автора сильную ненависть к подобным оболочкам. Поэтому, друзья, настраивайте все руками в конфигурационных файлах. Это не так сложно, зато работает как часы и разобраться намного проще. Читать далее Установка Asterisk 13 + chan_dongle (E1550, E1750) на Debian 8

Asterisk. Пример 2 — SIP и DONGLE

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

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

В первую очередь настроим вызовы между двумя SIP линиями, которые будем использовать для проверки, тестирования и изучения. Читать далее Asterisk. Пример 2 — SIP и DONGLE

Установка Apache 2.4VC14 + PHP 7 на Windows 7 ­- 10

Данная инструкция служит дополнением к инструкции по установке Apache 2.4VC11 и PHP 5.6 и описывает лишь отличительные моменты, которые касаются установки Apache24 и PHP7 на Windows. Описание установки СУБД MySQL остается прежним и не повторяется в этой инструкции.

Прежде чем продолжить чтение, обратите внимание на то, действительно ли вам необходимо устанавливать и настраивать всё это под Windows?Может быть Вам стоит обратить внимание на быстрый способ развернуть более качественное окружение для разработки под Windows, основанное на виртуализации Vagrant и не тратить свое время и нервы на настройку того же самого напрямую в Windows? В любом случае, прочтите статью про Vagrant. Возможно она сэкономит вам не только время, но и здоровье.

Данная инструкция рассчитана на разработчиков с базовыми знаниями Apache и PHP. В данной инструкции будут описана только разница в установке Apache и PHP с основной инструкцией по установке PHP 5.6. Если Вы не в курсе, что такое WEB-сервер, http-протокол и интерпретатор PHP, то Вы всегда можете узнать об этом более подробно, прочитав документацию.

Я не буду отвечать в комментариях на вопросы, ответ на которые есть в этой или основной инструкциях, ссылка на основную инструкцию указана в первом абзаце, а так же на вопросы, которые касаются понимания работы Apache и PHP и уж тем более на вопросы по ошибкам в разработке. Для этого существуют соответствующие ресурсы, литература, форумы, курсы. Однако, Вы всегда можете задать любой интересующий Вас вопрос. Возможно, кто-то из сообщества сможет Вам помочь.

Итак, поехали! Читать далее Установка Apache 2.4VC14 + PHP 7 на Windows 7 ­- 10

Как установить FreeBSD с флешки (с картинками)

Подобных статей интернет насчитывает тысячи, еще столько же видеоуроков на YouTube. Все они простые и понятные. Цель написания еще одной статьи простая: дать информацию для моих коллег и клиентов в той форме, в которой они привыкли. Статья совершенно не претендует на уникальность. Скорее всего, Вы ничего не найдете в ней нового. Но есть огромная масса людей, которым до сих пор действительно сложно справиться с установкой системы.

Если Вы хотите установить FreeBSD вручную или на Flash накопитель, то обратитесь к вот этой моей статье. В этой статье будет описана простейшая установка системы в три шага без заморочек. Читать далее Как установить FreeBSD с флешки (с картинками)

Изменить размер раздела GPT FreeBSD

При эксплуатации серверов под управлением FreeBSD в виртуальной среде VMware, иногда возникает необходимость увеличения объема раздела жесткого диска. Следующие инструкции помогут сделать это легко и быстро.

  1. Изменяем размер диска в vSphere Client, затем перезагружаем виртуальную машину. (В данном примере общий объем диска был 6 Гб, я увеличил его до 8 Гб. Основной раздел UFS нужно было увеличить с 4 до 6 Гб)
  2. Проверяем, что появилось свободное место
    # gpart show da0
    =>      34  12582845  da0  GPT  (8.0G) [CORRUPT]
            34       256    1  freebsd-boot  (128K)
           290   4194304    2  freebsd-swap  (2.0G)
       4194594   8388284    3  freebsd-ufs  (4.0G)
      12582878         1       - free -  (512B)

    Если вместо свободного места Вы обнаруживаете, что разметка повреждена [CORRUPT], не расстраивайтесь.

  3. Починить разметку, если необходимо, можно следующей командой:
    # gpart recover da0
    da0 recovered

    Теперь с разметкой все в порядке. Можно еще раз посмотреть таблицу разделов.

    # gpart show da0
    =>      34  16777149  da0  GPT  (8.0G)
            34       256    1  freebsd-boot  (128K)
           290   4194304    2  freebsd-swap  (2.0G)
       4194594   8388284    3  freebsd-ufs  (4.0G)
      12582878   4194305       - free -  (2.0G)

    Вот сейчас видно, что добавилось 2 Гб свободного места. Отлично.

  4. Чтобы изменить размер раздела № 3 до конца свободного места, выполняем следующую команду:
    # gpart resize -i 3 da0
    da0p3 resized
  5. И теперь посмотрим, что получилось:
    # gpart show da0
    =>      34  16777149  da0  GPT  (8.0G)
            34       256    1  freebsd-boot  (128K)
           290   4194304    2  freebsd-swap  (2.0G)
       4194594  12582589    3  freebsd-ufs  (6.0G)

    Теперь третий раздел имеет 6 Гб.

  6. Последний штрих — изменение размера файловой системы на данном разделе. Выполняется простой командой:
    # growfs /dev/da0p3
    Device is mounted read-write; resizing will result in temporary write suspension for /.
    It's strongly recommended to make a backup before growing the file system.
    OK to grow filesystem on /dev/da0p3, mounted on /, from 4.0GB to 6.0GB? [Yes/No] Yes
    super-block backups (for fsck_ffs -b #) at:
     8975872, 10258112, 11540352

     

    Вот так все просто. Удачи!