Встановлення та налаштування XHProf (Ubuntu)


19

Проблема

Я намагаюся використовувати XHProf, але при кожному запуску я отримую жахливу помилку php.

Warning: Invalid argument supplied for foreach() in xhprof_compute_inclusive_times() (line 1670 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc).
Warning: Invalid argument supplied for foreach() in xhprof_compute_flat_info() (line 1644 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc).
Warning: Invalid argument supplied for foreach() in theme_xhprof_overall_summary() (line 367 of /var/www/drupal/sites/all/modules/XHProf/xhprof.module).

Проблема вирішена тут, оскільки тимчасова папка не існує, однак моя.

Налаштування серверної сторони

Я запускаю свіжий сервер Ubuntu 13.04 з Drupal 7.

Встановіть xhprof, pearдотримуючись тут інструкцій . Я також додав тимчасовий каталог до php.ini, який я створив вручну.

extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"

Налаштування Drupal

У мене встановлено і розробник, і я також встановив модуль XHProf.

В admin/config/development/xhprof, я включив профілювання всіх переглядів сторінок і Drush запитів.

Після переходу на xhprof посилання я отримую помилку вище.

введіть тут опис зображення

Відповіді:


35

Добрий бог Бетмен. Це було неймовірно розчаровує. Ось посібник із налагодження роботи xhprof. (Примітка. Я дуже новачок у Linux. Я не впевнений, чи безпечні я дозволи безпечні, чи є кращий спосіб зробити це. Я б це робив лише в тестовому середовищі.)

ВАЖЛИВО: Це нічого не скаже про те, як його інтерпретувати. Я не маю уявлення, як це зробити, я просто радий, що це працює.

Початок роботи XHProf

1. Яку операційну систему ви працюєте?

Mac чи Linux?

Це можливо.

Windows?

Напевно, ні. Для запуску xhprof на Windows у вас повинен бути складений dll. У цій темі є посилання на одне , але у мене завжди виникали проблеми сумісності, коли я намагався використовувати його на XAMPP.

Я думаю, це було складено з іншою версією Apache.

2. Початок роботи над Ubuntu

Це можливо на Mac. Ось два корисні посилання:

http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopard http://www.midwesternmac.com/blogs/jeff-geerling / get-xhprof-working-well

Але я цього не зробив. Мені вдалося змусити його працювати на Ubuntu Server 13.04, хоча я думаю, що будь-яка остання версія Ubuntu Server буде працювати.

Я налаштував свій сервер на VirtualBox. VirtualBox безкоштовний, але може знадобитися трохи, щоб дізнатися, як його налаштувати.

3.Установка XHProf

Я припускаю, що у нас є повністю функціонуючий сервер Ubuntu.

Спочатку нам потрібно встановити грушу. Ми будемо використовувати це для встановлення XHProf.

sudo apt-get install pear

Ми дотримуємося цього за допомогою phpdev, який також потрібен.

sudo apt-get install php5-dev

Якщо ці команди не працюють, і я неправильно їх зрозумів, просто продовжуйте:

sudo pecl install -f xhprof

Ubuntu підкаже вам, чого вам не вистачає, і підкаже вам про його встановлення. Після того, як ви отримаєте всі залежності, встановіть xhprof.

Можливо, ви отримаєте помилку при встановленні xhprof, вона спробує завантажити бета-версію і не вдасться. У такому випадку спробуйте:

sudo pecl install -f xhprof-beta

Сподіваємось, xhprof зараз встановлений.

Тепер нам потрібно це налаштувати. Відкрийте свій php.ini, який є, /etc/php5/apache2/php.ini і додайте наступні два рядки в розділ розширень:

extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"

Другий рядок встановлює вихідний каталог. Якщо цієї папки не існує, вам доведеться її створити. Коли ви зробите цю перезавантаження апашу, використовуючи

sudo service apache2 restart

4. Перевірка, чи працює XHProf

Тепер нам потрібно перевірити, чи спрацювало це.

Тест 1:

Введіть php -m

Якщо ви побачите xhprof у списку, ви добре піти. Якщо ні, не хвилюйтесь, спробуйте це замість цього, щоб перевірити, чи працює він:

Перейдіть до своєї веб-корені /var/www/та створіть файл php лише:

phpinfo();

Збережіть це як phpinfo.php. Відкрийте це у своєму браузері, і ви побачите інформацію про PHP. Шукайте xhprof, і якщо ви бачите це, то він працює.

введіть тут опис зображення

5. Налагодження роботи з Drupal

Я не міг змусити його працювати з модулем Drupal. Тому замість цього я розповім вам, як змусити це працювати з модулем devel.

Спочатку кілька конфігурацій, які я тут запозичив . Я не дуже стежив за цією частиною, але вона працює настільки подарунковою конем та всім цим.

Створіть новий конфігураційний файл із наступною командою:

sudo nano /etc/apache2/conf.d/xhprof.conf

і вставити наступний код.

alias /xhprof_html "/usr/share/php/xhprof_html/"

Тоді нам, можливо, потрібно створити символьне посилання на нашу папку xhprof_html. Тож про всяк випадок встановіть це:

ln -s / usr / share / php / xhprof_html / var / www / xhprof_html

Це створить папку у вашій веб-корені, яка вказує на існуючий файл xhprof. Потім у своєму браузері ви можете відкрити http://mywebsitehere.com/xhprof, щоб побачити всі зроблені вами запуски.

Потім перезапустіть апаш. Тепер час трохи налаштувати devel. Перейдіть до налаштувань розробки, увімкніть xhprof і встановіть:

xhprof directory = /usr/share/php

XHProf URL = /xhprof_html

Тепер у нижній частині кожної сторінки ви повинні побачити невелике посилання на xhprof.

введіть тут опис зображення

І натиснувши його, ви перейдете на сторінку, яка виглядає приблизно так. Ви закінчили. Вітаємо!

введіть тут опис зображення

Якщо це не спрацювало, і у вас виникають помилки, можливо, тому що Drupal не має дозволу писати в папку tmp, яку ми встановили раніше, тому введіть:

sudo chown -R www-data /var/tmp/xhprof

І, сподіваємось, це спрацює. Були зроблені. Ура!

Якщо ви не хочете графічних функцій. На щастя, це так просто, як:

sudo apt-get install graphviz
sudo service apache2 restart

А тепер у вас повинні бути графічні функції. Сподіваємось, це допомагає!


Вау, вражаюча відповідь. Оскільки це варті, дозволи, які ви використовували, здаються здоровими.
Летаріон

Так, був серйозний біль, і це спрацювало. Сподіваюся, це допоможе комусь іншому (і мені через два місяці, коли я забув).
Домінік Вудман

Чудова відповідь, працює чудово, ніж
дякує

У мене немає /etc/apache2/conf.dкаталогу. Я зробив sudo nano /etc/apache2/conf-enabled/xhprof.confі a2enconf xhprofзамість цього
мілковський

Дякую за пробіг. У Ubuntu 14.04 я встановив з репозиторіїв Ubuntu, а не PEAR, і виявив, що мені потрібно виконати php5enmod xhprof, щоб створити пріоритетне посилання із каталогу conf.d до каталогу, доступного модам, файл xhprof.ini. Інший спосіб перевірити, чи ввімкнено xhprof - це запустити php5-fpm -i | grep xhprof, замінивши php5-fpm будь-яким SAPI, який ви перевіряєте.
mesch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.