Laravel XHProf - Library for profiling in production.
- Vendor: bavix
- Package: Laravel XHProf
- Version:
- Laravel Version:
5.5
,5.6
,5.7
,5.8
,6.0
,7.0
,8.0
- PHP Version: 7.1+
- Composer:
composer require bavix/laravel-xhprof
- Install xhprof extension for PHP:
pecl install xhprof
- Add in php.ini or other included config (xhprof.ini):
extension=xhprof.so
xhprof.output_dir=/tmp/xhprof
- Restart PHP:
sudo systemctl restart fp2-php72-fpm.service
- Check XHProf in PHP Info:
php -i | grep xhprof
Result:
/opt/php72/conf.d/xhprof.ini,
xhprof
xhprof support => enabled
xhprof.collect_additional_info => 0 => 0
xhprof.output_dir => /tmp/xhprof => /tmp/xhprof
xhprof.sampling_depth => 2147483647 => 2147483647
xhprof.sampling_interval => 100000 => 100000
-
Add domain for view results profiling (xhprof.domain.ru).
-
Download library for view:
cd /var/www/xhprof.domain.ru;
wget http://pecl.php.net/get/xhprof-0.9.4.tgz
gzip -d xhprof-0.9.4.tgz
tar -xvf xhprof-0.9.4.tar
-
Change root path in Nginx config for this domain:
set $root_path /var/www/xhprof.domain.ru/xhprof-0.9.4/xhprof_html;
-
Install this package:
composer req bavix/laravel-xhprof --dev
- Create config xhprof.php to Laravel in
config
dir (if empty):
<?php
return [
'path' => base_path('../xhprof.domain.ru/xhprof-0.9.4'),
'enabled' => true,
'freq' => 1
];
-
If you have old laravel (<=5.4), register the service provider by add this line
\Bavix\XHProf\XHProfServiceProvider::class
in your/config/app.php
. If laravel 5.5 and older then skip this step. -
Reload page Laravel site and go to xhprof.domain.ru
Enjoy!
I wrote the instructions @wdda, thank you.