Dobry Boże Batman. To było niesamowicie frustrujące. Oto przewodnik po uruchomieniu xhprof. (Uwaga: jestem nowy w Linuksie. Nie jestem pewien, czy uprawnienia, których używam, są bezpieczne, czy też jest lepszy sposób. Zrobiłbym to tylko w środowisku testowym.)
WAŻNE: nie powie nic o tym, jak to interpretować. Nie mam pojęcia jak, po prostu cieszę się, że to działa.
Uruchomienie XHProf
1. Z jakiego systemu operacyjnego korzystasz?
Mac czy Linux?
To jest możliwe.
Windows?
Prawdopodobnie nie. Aby uruchomić xhprof w systemie Windows, musisz mieć skompilowaną bibliotekę DLL. W tym wątku jest link do jednego , ale zawsze miałem z nim problemy ze zgodnością, gdy próbowałem użyć go na XAMPP.
Myślę, że został skompilowany z inną wersją Apache.
2. Przygotowanie do pracy w systemie Ubuntu
Jest to możliwe na Macu. Oto dwa przydatne linki:
http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopard
http://www.midwesternmac.com/blogs/jeff-geerling / getting-xhprof-well-well
Ale tego nie zrobiłem. Udało mi się uruchomić go na Ubuntu Server 13.04, chociaż myślę, że każda najnowsza wersja Ubuntu Server działałaby.
Skonfigurowałem mój serwer na VirtualBox. VirtualBox jest darmowy, ale nauczenie się jego konfiguracji może trochę potrwać.
3.Instalacja XHProf
Zakładam, że mamy w pełni funkcjonujący serwer Ubuntu.
Najpierw musimy zainstalować gruszkę. Użyjemy tego do zainstalowania XHProf.
sudo apt-get install pear
Śledzimy to za pomocą phpdev, który jest również potrzebny.
sudo apt-get install php5-dev
Jeśli te polecenia nie działają i mam je źle, po prostu idź dalej z:
sudo pecl install -f xhprof
Ubuntu powie ci, czego brakuje, i wyświetli monit o jego zainstalowanie. Po uzyskaniu wszystkich zależności zainstaluj xhprof.
Może pojawić się błąd podczas instalacji xhprof, spróbuje pobrać wersję beta i nie powiedzie się. W takim przypadku spróbuj:
sudo pecl install -f xhprof-beta
Mam nadzieję, że xhprof jest teraz zainstalowany.
Teraz musimy go skonfigurować. Otwórz php.ini, który jest w, /etc/php5/apache2/php.ini
i dodaj następujące dwa wiersze w sekcji rozszerzeń:
extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"
Drugi wiersz ustawia katalog wyjściowy. Jeśli ten folder nie istnieje, musisz go utworzyć. Po ponownym uruchomieniu apache ponownie
sudo service apache2 restart
4. Sprawdzanie, czy XHProf działa
Teraz musimy sprawdzić, czy to zadziałało.
Test 1:
Wchodzić php -m
Jeśli zobaczysz xhprof na liście, możesz zacząć. Jeśli nie, nie martw się, spróbuj zamiast tego sprawdzić, czy działa:
Idź do swojego webroota /var/www/
i utwórz plik php tylko:
phpinfo();
Zapisz go jako phpinfo.php. Otwórz to w przeglądarce i powinieneś zobaczyć informacje o PHP. Wyszukaj xhprof, a jeśli go zobaczysz, oznacza to, że jest uruchomiony.
5. Przygotowanie do pracy z Drupal
Nie mogłem go uruchomić z modułem Drupal. Zamiast tego powiem ci, jak to zrobić z modułem devel.
Najpierw trochę konfiguracji, którą stąd pożyczyłem . Tak naprawdę nie podążałem za tą częścią, ale działa, więc podaruj konia i tak dalej.
Utwórz nowy plik konfiguracyjny za pomocą następującego polecenia:
sudo nano /etc/apache2/conf.d/xhprof.conf
i wstaw następujący kod.
alias /xhprof_html "/usr/share/php/xhprof_html/"
Następnie prawdopodobnie musimy utworzyć dowiązanie symboliczne do naszego folderu xhprof_html. Więc na wszelki wypadek ustaw:
ln -s / usr / share / php / xhprof_html / var / www / xhprof_html
Spowoduje to utworzenie folderu w katalogu głównym, który wskazuje na istniejący plik xhprof. Następnie w przeglądarce możesz otworzyć http://mywebsitehere.com/xhprof, aby zobaczyć wszystkie wykonane przebiegi.
Następnie uruchom ponownie apache. Teraz nadszedł czas na małą konfigurację devel. Przejdź do ustawień devel, włącz xhprof i ustaw:
xhprof directory = /usr/share/php
XHProf URL = /xhprof_html
Teraz na dole każdej strony powinieneś zobaczyć mały link do xhprof.
Kliknięcie go powinno doprowadzić cię do strony, która wygląda następująco. Jesteś skończony. Gratulacje!
Jeśli to nie zadziałało i występują błędy uruchamiania, to prawdopodobnie dlatego, że Drupal nie ma uprawnień do zapisu w folderze tmp, który wcześniej ustawiliśmy, więc wpisz:
sudo chown -R www-data /var/tmp/xhprof
Mam nadzieję, że to zadziała. Skończyliśmy. Hura!
Chyba że chcesz funkcji graficznych. Na szczęście jest to tak proste jak:
sudo apt-get install graphviz
sudo service apache2 restart
A teraz powinieneś mieć funkcje wykresów. Mam nadzieję, że to pomaga!