Верх страницы
Обложка к записи Установка Blackfire в Local Lightning
Время для прочтения: 1 мин. 7 сек.

Установка Blackfire в Local Lightning

Прикрутить профилировщик PHP кода Blackfire к Local Lightning не составляет особого труда, а вот профита от этого вагон и маленькая тележка.

Конфигурация репозитория

Blackfire использует свой собственный Debian репозиторий для распространения пакетов. Он совместим с большинством Debian подобных дистрибутивов, таких как: Ubuntu, Kubuntu или Linux Mint.

Регистрируем ключ:

wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add -

Добавляем репозиторий:

echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list

Обновляем список пакетов:

sudo apt update

Установка пакетов

Устанавливаем пакет blackfire-agent:

sudo apt install blackfire-agent

Настройка агента

Конфигурируем локальный агент, указывая ему свои персональные ключи из личного кабинета:

sudo blackfire-agent --register --server-id=<server-id> --server-token=<servcer-token>

Перезапускаем сервис:

sudo /etc/init.d/blackfire-agent restart

После установки локального агента в системе появится новый сервис /etc/init.d/blackfire-agent, который вы сможете включать, выключать и перезапускать. После любого изменения конфигурации агента — сервис необходимо перезапускать.

Если у вас, вдруг, что-то пошло не так, то первым делом проверьте лог, который расположен по адресу: /var/log/blackfire/agent.log.

Установка PHP расширения

Устанавливаем расширение blackfire-php, которое ребята из Blackfire почему-то зовут PHP Probe. Запускаем Local, нажимаем правой клавишей на нужном сайте и выбираем «Open site shell».

В появившемся терминале вводим команду для поиска папки с расширениями:

php -i | grep 'extension_dir'

В ответ мы получаем путь, по которому нам нужно положить расширение blackfire-php:

extension_dir => /home/vsts/work/_temp/local-lightning-php/php-7.3.5/build/lib/php/extensions/no-debug-non-zts-20180731 => /home/vsts/work/_temp/local-lightning-php/php-7.3.5/build/lib/php/extensions/no-debug-non-zts-20180731

Скачиваем расширение в данную папку:

wget -c https://packages.blackfire.io/binaries/blackfire-php/1.29.6/blackfire-php-linux_amd64-php-74.so

Открываем php.ini для выбранного сайта (у меня это файл по пути /home/mihdan/www/kobzarev.test/conf/php/php.ini.hbs) и вписываем туда путь к расширению blackfire-php:

[blackfire]
extension=/opt/blackfire/blackfire.so
blackfire.agent_socket = unix:///var/run/blackfire/agent.sock
blackfire.agent_timeout = 0.25

При этом строки, связанные с xdebug лучше закомментировать:

;[xdebug]
;{{#if os.windows}}
;zend_extension = php_xdebug.dll
;{{else}}
;zend_extension = {{extensions.xdebug}}
;{{/if}}

;xdebug.remote_enable=1
;xdebug.remote_connect_back=Off
;xdebug.remote_port="9000"
;xdebug.profiler_enable=0

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

PHP крашится, если включено одно из расширений: XHProf, Pinba, или Suhosin. Поэтому лучше их отключить как и XDebug, чтобы избежать непредвиденных ошибок в поведении.

Установка браузерного расширения

Чтобы запускать профилирование через браузер, если у вас веб-приложение, можно использовать браузерное расширение под Chrome или Firefox.

Скачиваем и устанавливаем его и указываем свои реквизиты доступа из личного кабинета:

blackfire config --client-id=<client-id> --client-token=<client-token>

Профилирование

Открываем Local, стартуем нужный сайт, переходим в браузер, нажимаем кнопку Blackfire -> Profile!

Запуск профилирования
Результат профилирования

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, OpenCart, DLE, Laravel, Moonshine, Symfony, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

2 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Филипп
Филипп
4 лет назад

спасибо за статью! а с докером как это все подружить?)

Предыдущая запись
Следующая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы