XHProf'u Yükleme ve Yapılandırma (Ubuntu)


19

Sorun

XHProf kullanmaya çalışıyorum ama her çalıştığında korkunç php hatası alıyorum.

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).

Geçici klasör mevcut olmadığı için problem burada çözüldü , ancak benimki var.

Kurulum Sunucusu Tarafı

Drupal 7 ile yeni bir Ubuntu Server 13.04 çalıştırıyorum.

Kullanarak xhprof yükleme peartalimatları izleyerek burada . Ayrıca elle oluşturduğum php.ini dosyasına geçici bir dizin ekledim.

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

Drupal Kurulumu

Hem devel kurulu hem de XHProf modülünü kurdum.

'De admin/config/development/xhprof, tüm sayfa görüntülemelerinin ve drush isteklerinin profilini oluşturmayı etkinleştirdim.

Bir xhprof bağlantısını takiben yukarıdaki hatayı alıyorum.

resim açıklamasını buraya girin

Yanıtlar:


35

Tanrım Batman. Bu inanılmaz derecede sinir bozucuydu. İşte xhprof'u çalıştırmak için bir rehber. (Not: Linux için çok yeniyim. Kullandığım izinlerin güvenli olup olmadığından ya da bunu yapmanın daha iyi bir yolu olup olmadığından emin değilim. Bunu yalnızca test ortamında yapardım.)

ÖNEMLİ: Size nasıl yorumlanacağı hakkında bir şey söylemez. Nasıl yapılacağı hakkında hiçbir fikrim yok, sadece çalıştığı için mutluyum.

XHProf'u Çalıştırma

1. Hangi işletim sistemini kullanıyorsunuz?

Mac mi Linux mu?

Mümkün.

Pencereler?

Muhtemelen değil. Windows üzerinde xhprof çalıştırmak için derlenmiş bir dll olması gerekir. Bu iş parçacığında bir bağlantı var , ama XAMPP üzerinde kullanmaya çalıştığımda her zaman onunla uyumluluk sorunları vardı.

Sanırım farklı bir Apache sürümü ile derlendi.

2. Ubuntu üzerinde çalışmasını sağlamak

Mac'te mümkündür. İşte iki faydalı bağlantı:

http://www.lullabot.com/blog/article/instal-xhprof-mamp-and-php-52-mac-os-106-snow-leopard http://www.midwesternmac.com/blogs/jeff-geerling / alma-xhprof-işçi de

Ama ben yapmadım. Ubuntu Server'ın son sürümlerinin işe yarayacağını düşünmeme rağmen Ubuntu Server 13.04 üzerinde çalışmayı başardım.

Sunucumu VirtualBox üzerinde kurdum. VirtualBox ücretsizdir ancak nasıl ayarlanacağını öğrenmek biraz zaman alabilir.

3. XHProf Kurulumu

Tamamen çalışan bir Ubuntu Sunucumuz olduğunu varsayacağım.

İlk önce armut yüklememiz gerekiyor. Bunu XHProf'u kurmak için kullanacağız.

sudo apt-get install pear

Bunu da gerekli olan phpdev ile takip ediyoruz.

sudo apt-get install php5-dev

Bu komutlar işe yaramazsa ve yanlış yaparsam, aşağıdakileri yapın:

sudo pecl install -f xhprof

Ubuntu size neyin eksik olduğunu söyleyecek ve yüklemenizi isteyecektir. Bir kez tüm bağımlılıkları var xhprof yükleyin.

Xhprof'i yüklerken bir hata alabilirsiniz, beta'yı indirmeye ve başarısız olmaya çalışacaktır. Bu durumda şunu deneyin:

sudo pecl install -f xhprof-beta

Umarım xhprof şimdi kurulmuştur.

Şimdi yapılandırmamız gerekiyor. Adresindeki php.ini dosyanızı açın /etc/php5/apache2/php.ini ve uzantılar bölümünün altına aşağıdaki iki satırı ekleyin:

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

İkinci satır çıktı dizinini ayarlar. Bu klasör yoksa onu oluşturmanız gerekir.

sudo service apache2 restart

4. XHProf'un çalışıp çalışmadığını kontrol etme

Şimdi bunun işe yarayıp yaramadığını kontrol etmeliyiz.

Test 1:

Giriş php -m

Listede xhprof görürseniz, gitmekte fayda var. Değilse endişelenmeyin, çalışıp çalışmadığını kontrol etmek için bunu deneyin:

Webroot'unuza gidin /var/www/ve yalnızca bir php dosyası oluşturun:

phpinfo();

Phpinfo.php kaydedin. Bunu tarayıcınızda açın, PHP bilgilerini görmelisiniz. Xhprof arayın ve bunu görürseniz çalışır.

resim açıklamasını buraya girin

5. Drupal ile çalışma

Drupal modülüyle çalıştıramadım. Bunun yerine size bunun devel modülü ile nasıl çalışacağını anlatacağım.

Önce buradan ödünç aldığım bazı yapılandırmalar . Bu kısmı gerçekten takip etmedim, ama hediye atı ve tüm bunlar çok işe yarıyor.

Aşağıdaki komutla yeni bir yapılandırma dosyası oluşturun:

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

ve aşağıdaki kodu girin.

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

O zaman muhtemelen xhprof_html klasörümüze bir sembolik bağlantı oluşturmanız gerekir. Yani bunu ayarlamanız durumunda:

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

Bu, web kökünüzde mevcut xhprof dosyasına işaret eden bir klasör oluşturur. Ardından tarayıcınızda yaptığınız tüm koşuları görmek için http://mywebsitehere.com/xhprof adresini açabilirsiniz .

Ardından apache'yi yeniden başlatın. Şimdi küçük bir devel yapılandırma zamanı. Geliştirme ayarlarına gidin, xhprof'u etkinleştirin ve ayarlayın:

xhprof directory = /usr/share/php

XHProf URL = /xhprof_html

Şimdi her sayfanın altında xhprof için küçük bir bağlantı görmelisiniz.

resim açıklamasını buraya girin

Ve tıklamak sizi böyle bir sayfaya götürmelidir. Sen bittin. Tebrikler!

resim açıklamasını buraya girin

Bu işe yaramadıysa ve çalışma hataları alıyorsanız, muhtemelen Drupal'ın daha önce ayarladığımız tmp klasörüne yazma izni olmadığından şunu girin:

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

Ve umarım bu işe yarar. Yapılmıştı. Hoorah!

Grafik fonksiyonları istemediğiniz sürece. Neyse ki bu kadar kolay:

sudo apt-get install graphviz
sudo service apache2 restart

Ve şimdi grafik fonksiyonlarına sahip olmalısınız. Umarım bu yardımcı olur!


Vay, etkileyici bir cevap. Değeri ne olursa olsun, kullandığınız izinler mantıklı görünüyor.
Letharion

Evet, işe yarayan ciddi bir acı vardı. Umarım başka birine (ve unuttuğum iki ay içinde bana) yardımcı olacaktır.
Dominic Woodman

Büyük cevap, mükemmel çalışıyor, ağrıyı hafifletmek için
teşekkürler

Bende olmayan /etc/apache2/conf.ddizin. Ben yapılan sudo nano /etc/apache2/conf-enabled/xhprof.confve a2enconf xhprofyerine
milkovsky

Geçiş için teşekkürler. Ubuntu 14.04'te PEAR yerine Ubuntu depolarından yükledim ve php5enmod xhprofconf.d dizininden mods-available dizini xhprof.ini dosyasına öncelikli symlink oluşturmak için yürütmem gerektiğini buldum. Xhprof'un etkin olup olmadığını kontrol etmenin başka bir yolu da php5-fpm -i | grep xhprofphp5- fpm'yi denetlediğiniz SAPI ile değiştirerek çalıştırmaktır .
Ağustos'ta mesch
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.