PHP

PHP Blackfire quick start

Установка Blackfire на сервере с PHP

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

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

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

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

wget -q -O - https://packages.blackfire.io/gpg.key | sudoapt-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:

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

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

 

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

[blackfire]
;extension=/usr/lib/php/20190902/blackfire-php-linux_amd64-php-74.so
extension=blackfire
blackfire.agent_socket = unix:///var/run/blackfire/agent.sock
blackfire.agent_timeout = 0.25

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

 

Перезапускаем PHP, чтобы изменения вступили в силу:

sudo systemctl restart php7.4-fpm

 

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

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

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

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

 

Источники:

 

 

Афоризм дня:
Между человеком образованным и необразованным такая же разница, как между живым и мертвым. (557)

Leave a reply

Яндекс.Метрика