Прикрутить профилировщик 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!
Ссылки
Источник: https://www.kobzarev.com/linux/blackfire-local-lightning/