Боже, Бэтмен. Это было невероятно сложно. Вот руководство по работе с xhprof. (Примечание: я очень плохо знаком с Linux. Я не уверен, безопасны ли используемые мной разрешения, или есть ли лучший способ сделать это. Я бы делал это только в тестовой среде.)
ВАЖНО: Он не скажет вам ничего о том, как его интерпретировать. Я понятия не имею, как, я просто счастлив, что это работает.
Начало работы XHProf
1. Какую операционную систему вы используете?
Mac или Linux?
Это возможно.
Окна?
Возможно нет. Для запуска xhprof на окнах вы должны иметь скомпилированную DLL. В этой теме есть ссылка на нее, но у меня всегда были проблемы с совместимостью, когда я пытался использовать ее на XAMPP.
Я думаю, что он был скомпилирован с другой версией Apache.
2. Как это работает на Ubuntu
Это возможно на Mac. Вот две полезные ссылки:
http://www.lullabot.com/blog/article/install-xhprof-mamp-and-php-52-mac-os-106-snow-leopard
http://www.midwesternmac.com/blogs/jeff-geerling / посаживания xhprof-работоспособного хорошо
Но я этого не сделал. Мне удалось заставить его работать на 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"
Вторая строка устанавливает выходной каталог. Если эта папка не существует, вам придется ее создать. Когда вы выполните эту перезагрузку Apache, используя
sudo service apache2 restart
4. Проверка, работает ли XHProf
Теперь нам нужно проверить, сработало ли это.
Тест 1:
Войти php -m
Если вы видите xhprof в списке, вы можете пойти. Если нет, не беспокойтесь, попробуйте вместо этого проверить, работает ли он:
Перейдите в свой webroot /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
Это создаст папку в вашем webroot, которая указывает на существующий файл xhprof. Затем в вашем браузере вы можете открыть http://mywebsitehere.com/xhprof, чтобы увидеть все прогоны, которые вы сделали.
Затем перезапустите Apache. Теперь пришло время для небольшой конфигурации devel. Зайдите в настройки devel, включите xhprof и установите:
xhprof directory = /usr/share/php
XHProf URL = /xhprof_html
Теперь внизу каждой страницы вы должны увидеть небольшую ссылку на xhprof.
И нажав на нее, вы попадете на страницу, которая выглядит следующим образом. Вы сделали Поздравляем!
Если это не сработало, и вы получаете ошибки запуска, возможно, потому что у Drupal нет разрешения на запись в папку tmp, которую мы установили ранее, поэтому введите:
sudo chown -R www-data /var/tmp/xhprof
И, надеюсь, это работает. Были сделаны. Hoorah!
Если вы не хотите графических функций. К счастью, это так просто, как:
sudo apt-get install graphviz
sudo service apache2 restart
И теперь у вас должны быть графические функции. Надеюсь, это поможет!
/etc/apache2/conf.d
каталога. Я сделалsudo nano /etc/apache2/conf-enabled/xhprof.conf
иa2enconf xhprof
вместо этогоphp5enmod xhprof
, чтобы создать приоритетную символическую ссылку из каталога conf.d в файл каталога xhprof.ini, доступный для модов. Другой способ проверить, включен ли xhprof, - это запуститьphp5-fpm -i | grep xhprof
, заменив php5-fpm тем SAPI, который вы проверяете.