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

यहाँ समस्या हल हो गई है क्योंकि अस्थायी फ़ोल्डर मौजूद नहीं है, हालाँकि मेरा है।

सेट-अप सर्वर साइड

मैं Drupal 7 के साथ एक नया Ubuntu सर्वर 13.04 चला रहा हूं।

यहाँpear निर्देशों का पालन करके xhprof स्थापित करें । मैंने php.ini में एक अस्थायी निर्देशिका भी जोड़ी है, जिसे मैंने स्वयं बनाया है।

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

ड्रुपल सेट-अप

मेरे पास दोनों devel स्थापित हैं और मैंने XHProf मॉड्यूल भी स्थापित किया है।

में admin/config/development/xhprof, मैंने सभी पेज व्यू और ड्रश रिक्वेस्ट की प्रोफाइलिंग को सक्षम किया।

Xhprof लिंक का अनुसरण करने पर मुझे ऊपर त्रुटि मिलती है।

यहाँ छवि विवरण दर्ज करें

जवाबों:


35

अच्छा भगवान बैटमैन। यह अविश्वसनीय रूप से निराशाजनक था। यहाँ xhprof काम करने के लिए एक गाइड है। (नोट: मैं लिनक्स के लिए बहुत नया हूं। मुझे यकीन नहीं है कि मैं जिन अनुमतियों का उपयोग करता हूं वे सुरक्षित हैं, या क्या ऐसा करने का कोई बेहतर तरीका है। मैं केवल एक परीक्षण वातावरण पर ऐसा करूंगा।)

महत्वपूर्ण: यह आपको कुछ नहीं बताएगा कि इसकी व्याख्या कैसे करें। मुझे नहीं पता कि कैसे, मुझे खुशी है कि यह काम करता है।

XHProf कार्य करना

1. आप कौन सा ऑपरेटिंग सिस्टम चला रहे हैं?

मैक या लिनक्स?

यह संभव है।

खिड़कियाँ?

शायद ऩही। खिड़कियों पर xhprof चलाने के लिए आपके पास संकलित dll होना चाहिए। इस थ्रेड में एक के लिए एक लिंक है , लेकिन जब मैं XAMPP पर इसका उपयोग करने की कोशिश करता था तो मेरे पास हमेशा इसके साथ संगतता के मुद्दे थे।

मुझे लगता है कि यह अपाचे के एक अलग संस्करण के साथ संकलित किया गया था।

2. इसे उबंटू पर काम करना

यह मैक पर संभव है। यहां दो उपयोगी लिंक दिए गए हैं:

http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopard http://www.midwesternmac.com/blogs/jeff-geerling / रही-xhprof काम अच्छी तरह से

लेकिन मैंने ऐसा नहीं किया है। मैं इसे Ubuntu सर्वर 13.04 पर काम करने में कामयाब रहा, हालांकि मुझे लगता है कि Ubuntu सर्वर का कोई भी हालिया संस्करण काम करेगा।

मैंने VirtualBox पर अपना सर्वर सेट किया। वर्चुअलबॉक्स मुक्त है, लेकिन इसे स्थापित करने का तरीका सीखने में थोड़ा समय लग सकता है।

3. XHProf को रोकना

मैं मान रहा हूं कि हमारे पास पूरी तरह से काम करने वाला उबंटू सर्वर है।

पहले हमें नाशपाती स्थापित करने की आवश्यकता है। हम XHProf स्थापित करने के लिए इसका उपयोग करेंगे।

sudo apt-get install pear

हम इसके लिए phpdev का अनुसरण करते हैं, जिसकी आवश्यकता भी है।

sudo apt-get install php5-dev

यदि ये कमांड काम नहीं करते हैं और मैंने उन्हें गलत कर दिया है, तो बस सीधे आगे बढ़ें:

sudo pecl install -f xhprof

उबंटू आपको बताएगा कि आप क्या याद कर रहे हैं और आपको इसे स्थापित करने का संकेत देगा। एक बार जब आप सभी निर्भरताएँ 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 मॉड्यूल के साथ काम नहीं कर सका। इसलिए इसके बजाय मैं आपको यह बताने जा रहा हूं कि इसे कैसे काम करना है?

पहले कुछ विन्यास जो मैंने यहां से उधार लिए थे । मैं वास्तव में इस हिस्से का पालन नहीं करता था, लेकिन यह बहुत सारे घोड़े और उपहार का काम करता है।

निम्नलिखित कमांड के साथ एक नई कॉन्फिग फ़ाइल बनाएँ:

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 config के लिए समय है। डेवेल सेटिंग्स पर जाएं, 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

और अब आपको रेखांकन कार्य करना चाहिए। उम्मीद है कि मदद करता है!


वाह, प्रभावशाली जवाब। इसकी कीमत क्या है, इसके लिए आपके द्वारा उपयोग की गई अनुमतियाँ समझदार हैं।
सुस्ती

हाँ वहाँ कुछ गंभीर दर्द हो रहा था कि काम करने के लिए। उम्मीद है कि यह किसी और की मदद करेगा (और मुझे भूल जाने पर दो महीने में)।
डोमिनिक वुडमैन

महान जवाब, पूरी तरह से काम करता है, दर्द को दूर करने के लिए thanx :-)
JurgenR

मेरे पास /etc/apache2/conf.dनिर्देशिका नहीं है । मैंने बनाया sudo nano /etc/apache2/conf-enabled/xhprof.confऔर a2enconf xhprofइसके बजाय
दूधोव्स्की

रन-थ्रू के लिए धन्यवाद। उबंटू 14.04 पर मैंने PEAR के बजाय उबंटू रिपॉजिटरी से स्थापित किया, और पाया कि मुझे php5enmod xhprofप्रॉडक्ट सिलिंक को प्राथमिकता देने के लिए निष्पादित करने की जरूरत है । जाँच करने का एक और तरीका है कि अगर xhprof सक्षम है php5-fpm -i | grep xhprof, तो चलाने के लिए , php5-fpm की जगह जो भी SAPI आप जाँच कर रहे हैं।
MESCH
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.