Установка Xhgui+Tideways XHProf на vps с Debian8+VestaCP+php7.

1 — Установка MongoDB.

Для работы XHProf понадобится установить MongoDB. Для этого, подключаем репозиторий MongoDB командами:
wget -qO - https://www.mongodb.org/static/pgp/server-3.6.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" | tee /etc/apt/sources.list.d/mongodb-org-3.6.list
apt-get update

Устанавливаем MongoDB командой:
apt-get install -y mongodb-org

Устанавливаем дополнительные модули для PHP:
apt-get install php-pear php7.0-dev php7.0-mbstring php7.0-mongodb php-xml

Запускаем:
service mongod start

Проверяем, что все работает:
service mongod status



Ограничиваем время хранения документов, что бы избежать проблем со свободным местом на диске сервера. Для этого:
Входим в MongoDB командой:
mongo

И вводим данные строчки:
use xhprof
db.results.ensureIndex( { "meta.request_ts" : 1 }, { expireAfterSeconds : 432000 } )

Выходим из MongoDB командой:
exit

2 — Установка Tideways XHProf

Для установки Tideways XHProf вводим данные команды на сервере:
git clone https://github.com/tideways/php-profiler-extension.git
cd php-profiler-extension/
phpize
./configure
make
make install
cp modules/tideways_xhprof.so  /usr/lib/php/20151012/tideways_xhprof.so

Подключаем модуль tideways xhprof, для этого создаем файл конфигурации командой:
nano /etc/php/7.0/apache2/conf.d/40-tideways_xhprof.ini

Добавляем в данный файл строки:
; Configuration for Tideways Profiler Extension
; priority=40
extension=tideways_xhprof.so

Сохраняем, нажав комбинацию клавиш Ctrl+O и выходим с помощью клавиш Ctrl+X.

Перезагружаем вебсервер Apache для подключения модулей:
/etc/init.d/apache2 restart

Проверяем подключенные модули, для этого создадим файл phpinfo.php в корневой директории сайта.
nano /home/admin/web/%sitename%/public_html/phpinfo.php

Добавляем в файл:
<?php 
phpinfo();

Сохраняем и выходим — Ctrl+O и Ctrl+X

В окне браузера вводим — 185.230.142.72/phpinfo.php
Необходимо указать ip вашего сервера вместо — 185.230.142.72

Проверяем, что модули mongodb и tideways_xhprof установлены.





Если все в порядке то можно переходить к следующему шагу, если же данных модулей нет в списке подключенных, то необходимо удостовериться что предыдущие части инструкции выполнены верно.

3 — Установка XHGui

Клонируем XHGui в корневую директорию нашего домена:
git clone https://github.com/perftools/xhgui.git

Изменяем права доступа для папки cache:
chmod -R 777 /home/admin/web/%site_name%/public_html/cache/

Переходим в папку с XHGui:
cd /home/admin/web/%site_name%/public_html/xhgui/

Запускаем установку:
php install.php

По окончанию установки XHGui будет доступен по адресу — %site_name%/xhgui/webroot/
Вместо %site_name% необходимо указать доменное имя вашего сайта или ip севрера.

Далее копируем файл config.default.php в файл config.php
Для профилирования всех запросов следует вместо
'profiler.enable' => function() {
        return rand(1, 100) === 42;
    },

Сделать
'profiler.enable' => function() {
             return true;
         },

Внимание! В текущей версии xhgui есть ошибка, вместо profiler.enable в рекомендациях стоит profiler.enabled

Для подключения XHGui к нужному домену, необходимо отредактировать файл конфигурации Apache для данного домена. Для этого выполним команду:
nano /home/admin/conf/web/site1.example.com.apache2.conf

Имя файла может быть отлично от указанного и должно содержать название домена к которому необходимо подключить XHGui

Добавляем в Directory где указан путь к каталогу с сайтом:
php_admin_value auto_prepend_file /home/admin/web/site1.example.com/public_html/xhgui/external/header.php

Сохраняем и выходим — Ctrl+O и Ctrl+X

В итоге должно выглядеть вот так:
<Directory /home/admin/web/site1.example.com/public_html>
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
        php_admin_value open_basedir /home/admin/web/site1.example.com/public_html:/home/admin/tmp
        php_admin_value upload_tmp_dir /home/admin/tmp
        php_admin_value session.save_path /home/admin/tmp
        php_admin_value auto_prepend_file /home/admin/web/site1.example.com/public_html/xhgui/external/header.php
    </Directory>

Перезагружаем вебсервер Apache:
/etc/init.d/apache2 restart

Теперь XHGui подключен к домену и будет отображать статистику собранную профайлером.

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.