» » Настройка окружения для PHP разработчиков

 

Настройка окружения для PHP разработчиков

Автор: admin от 31-10-2016, 17:50, посмотрело: 397

В данной статье мы рассмотрим настройку окружения для PHP разработчиков с использованием Vagrant, Docker, Xdebug, PHPUnit, и интеграцию с IDE PHPStorm.

Настройка окружения для PHP разработчиков + Настройка окружения для PHP разработчиков

Требования



  • Окружение должно развертываться на Windows, MacOS, Linux

  • Установка должна быть максимально простой

  • Быстрая работа с файловой системой

  • Интеграция с IDE PHPStorm

  • Несколько версии PHP интерпретаторов (5.6, 7.0)



Подготовка


Мы не будем заострять свое внимание на установке необходимых инструментов под определенные ОС, инструкции по установке есть на официальных сайтах, ссылки прилагаются.


Что входит в сборку?



  • Nginx

  • MySQL 5 (Percona)

  • MongoDB 3

  • Redis 3

  • PHP 5.6, 7.0 CLI + FPM


PHP-extensions

 5.6
 7.0

Настройка и конфигурирование


Внимание! Все описанные настройки и файлы выложены на GitHub. Если у вас возникают вопросы по использованию Vagrant или Docker обратитесь к официальной документации.

Развертывание окружения чуть-чуть отличается на разных ОС:


  • MacOS все пройдет, как положено без дополнительных действий.

  • Windows необходимо запустить вспомогательный скрипт hosts-set.cmd для установки прав текущему пользователю на запись для hosts файла до запуска vagrant up, также если у вас имя текущего пользователя содержит любые символы non-ACSII, то вам придется сменить путь до вашей рабочей директории vagrant.d используя переменную окружения VAGRANT_HOME.

  • Linux на усмотрение, можно поставить Vagrant с NFS сервером или просто использовать docker-compose инструкции.



Гостевая ОС будет работать на Ubuntu 14.04 (Trusty), статическом IP адресе 10.0.0.2 и в качестве share-папки будем использовать монтирование через NFS.

Для удобства создайте папку под названием dockrant (Docker + Vagrant = Dockrant), далее в статье мы будем отталкиваться от этой папки.

Определимся со структурой папок:

./dockrant — наша корневая папка
./dockrant/ssh — SSH ключики для гостевой ОС (в данном туториале используем стандартные ключи vagrant)
./dockrant/share — share-папка между хост и гостевой ОС
./dockrant/share/tools — папка с нашими инструментами и bash скриптами
./dockrant/vagrant/build —  исполняемые bash скрипты при поднятии гостевой ОС

Теперь нам необходимо по структуре папок описанных выше положить все необходимые наши скрипты и инструкции, пойдем по списку.

./dockrant/ssh — положим два файла id_rsa (приватный ключ) и id_rsa.pub (публичный ключ)


./dockrant/share/ — создадим файл phpinfo.php с phpinfo() функцией, чтобы потом проверить работоспособность


./dockrant/share/tools/ — положим несколько вспомогательных скриптов для запуска PHP интерпретаторов из под Docker exec и PHPUnit (скачайте c сайта phpunit.phar)


Для php* скриптов мы не используем TTY, эти скрипты нужны для корректной настройки интеграции с IDE в использовании remote интерпретаторов, скрипты php*tty нужны для ручного использования запуска PHP скриптов, в том числе и в интерактивном режиме php -a.

./dockrant/vagrant/build/php/ — положим init.sh bash скрипт для копирования исполняемых файлов запуска PHP интерпретаторов.


./dockrant/vagrant/build/docker/ — положим init.sh и docker-compose.sh bash скрипты для установки docker-compose и команд на сборку контейнеров при поднятии гостевой ОС.


Docker-compose


Создадим файл ./dockrant/share/docker-compose.yml

Теперь опишем инструкции для создания docker-контейнеров, мы не будем описывать инструкции для сборки каждого образа, возьмём готовые.

Собираем из следующих образов:


  • redis:3

  • percona:5

  • gurukami/php:5.6

  • gurukami/php:7.0 (для FPM используется по умолчанию)

  • gurukami/nginx

  • mongo:3



Vagrantfile


Создайте в папке dockrant файл Vagrantfile и запишите туда следующие инструкции


Тюнинг:


  • При необходимости шаринга можно добавить опцию config.vm.network :public_network, чтобы поднять на публичном интерфейсе или использовать vagrant share

  • Увеличить использование выделенной памяти vb.memory, по умолчанию стоит 1024 MB

  • Увеличить кол-во использованных процессоров vb.cpus, по умолчанию стоит 2


Запуск


В папке dockrant запускаем команду

vagrant up --provider virtualbox

После сборки откроем в браузере — sandbox.local/phpinfo.php

Настройка окружения для PHP разработчиков

Docker-machine


Для того чтобы наша виртуальная машина работала как docker-machine нам необходимо добавить её используя generic драйвер, запускаем из под папки dockrant

docker-machine create --driver generic --generic-ip-address=10.0.0.2 --generic-ssh-key ./ssh/id_rsa --generic-ssh-user vagrant sandbox

После создания docker-machine, гостевую машину нужно перезагрузить, т.к. после установки все docker контейнеры останавливаются

vagrant reload

PHP-CLI


Запуск PHP скриптов осуществляется на гостевой машине (10.0.0.2), помните, что между хост-машиной и гостевой есть /share папка.

php56 /path/to/file
php70 /path/to/file

Запуск PHP интерпретаторов в интерактивном режиме

php56tty -a
php70tty -a

Интеграция с PHPStorm


Мы настроим дебаггер с помощью XDebug, прикрутим PHPUnit а также добавим управление нашими контейнерами через плагин Docker Integration, с помощью которого можно будет смотреть логи наших сервисов, перезагружать контейнеры, исполнять скрипты.

Добавим в настройки наши PHP интерпретаторы, открываем настройки Languages & Frameworks -> PHP

Настройка окружения для PHP разработчиков

Добавляем сначала 5.6 версию, потом повторяем для версии 7.0, нажимаем на кнопку ...

Затем нажав на + выбираем Remote...

Настройка окружения для PHP разработчиков

В всплывающем окне выбираем тип Vagrant и указываем путь до PHP интерпретатора на гостевой ОС /usr/bin/php56

Настройка окружения для PHP разработчиков

Настройка окружения для PHP разработчиков

Теперь добавим наш удаленный сервер в список для работы с дебаггером по запросу из браузера
Language & Frameworks -> PHP -> Servers. Пропишем path mappings до нашей /share папки чтобы IDE смог распознать запросы по путям между хост машиной и гостевой

Настройка окружения для PHP разработчиков

Настроим PHPUnit, идем в настройки Language & Frameworks -> PHP -> PHPUnit и для каждой версии PHP интерпретатора пропишем путь до /share/tools/phpunit.phar

Настройка окружения для PHP разработчиков

Настройка окружения для PHP разработчиков

Мы почти готовы к отладке нашего приложения, но еще осталось настроить конфигурации запуска

Настройка окружения для PHP разработчиков

Настроим удаленную отладку PHP Remote Debug

Настройка окружения для PHP разработчиков


Настройка окружения для PHP разработчиков

Ставим breakpoint к примеру в файле phpinfo.php на 2 строчке, запускаем дебаггер, переходим в браузере на страницу sandbox.local/phpinfo.php и видим, что наш дебаггер сработал в IDE

Настройка окружения для PHP разработчиков

Настройка окружения для PHP разработчиков

Настройка окружения для PHP разработчиков

Теперь перейдем к PHPUnit

Настройка окружения для PHP разработчиков

Создадим проcтенький Unit test файл под именем Test.php в ./dockrant/share папке


Настроим конфигурацию запуска

Настройка окружения для PHP разработчиков

Запускаем Unit test

Настройка окружения для PHP разработчиков

Настройка окружения для PHP разработчиков

Также можно запустить Unit test с дебаггером

Настройка окружения для PHP разработчиков

Настройка окружения для PHP разработчиков

Теперь настроим плагин Docker Integration, после установки плагина необходимо добавить нашу машину в настройках Build, Execution, Deployment -> Docker как правило папки docker-machines лежат в вашей домашней директории текущего пользователя, нам нужен sandbox docker-machine который мы создавали по инструкции вверху используя generic драйвер

Настройка окружения для PHP разработчиков

Внизу вкладка Docker будет показана после перезагрузки IDE

Настройка окружения для PHP разработчиков

Итог


Мы имеем окружение с полным набором необходимых сервисов и утилит разворачиваемое на большинстве операционных систем.

Развертывание окружения было протестировано на:


  • Windows 10

  • MacOS Sierra 10.12

  • Ubuntu 14.04 Desktop


Спасибо за прочтение, надеюсь эта статья поможет вам организовать удобное окружение.

Источник: Хабрахабр

Категория: Программирование

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

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *