Cài đặt và cấu hình XHProf (Ubuntu)


19

Vấn đề

Tôi đang cố gắng sử dụng XHProf nhưng tôi gặp lỗi php khủng khiếp mỗi khi nó chạy.

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

Vấn đề được giải quyết ở đây vì thư mục tạm thời không tồn tại, tuy nhiên tôi thì có.

Phía máy chủ thiết lập

Tôi đang chạy Ubuntu Server 13.04 mới với Drupal 7.

Cài đặt xhprof bằng cách làm peartheo các hướng dẫn ở đây . Tôi cũng đã thêm một thư mục tạm thời vào php.ini mà tôi đã tạo thủ công.

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

Thiết lập Drupal

Tôi đã cài đặt cả devel và tôi cũng đã cài đặt mô-đun XHProf.

Trong admin/config/development/xhprof, tôi đã kích hoạt hồ sơ của tất cả các lượt xem trang và yêu cầu drush.

Theo liên kết xhprof tôi nhận được lỗi ở trên.

nhập mô tả hình ảnh ở đây

Câu trả lời:


35

Thần tốt Batman. Điều đó thật khó chịu. Dưới đây là hướng dẫn để xhprof hoạt động. (Lưu ý: Tôi rất mới đối với Linux. Tôi không chắc các quyền tôi sử dụng có an toàn không, hoặc liệu có cách nào tốt hơn để làm việc đó không. Tôi chỉ làm điều này trên môi trường thử nghiệm.)

QUAN TRỌNG: Nó sẽ không cho bạn biết bất cứ điều gì về cách giải thích nó. Tôi không biết làm thế nào, tôi chỉ vui khi nó hoạt động.

Bắt XHProf làm việc

1. Bạn đang chạy hệ điều hành nào?

Mac hay Linux?

Điều đó là có thể.

Các cửa sổ?

Chắc là không. Để chạy xhprof trên windows, bạn phải có một dll được biên dịch. Có một liên kết đến một trong chủ đề này , nhưng tôi luôn gặp vấn đề tương thích với nó khi tôi cố gắng sử dụng nó trên XAMPP.

Tôi nghĩ rằng nó đã được biên dịch với một phiên bản khác của Apache.

2. Làm cho nó hoạt động trên Ubuntu

Có thể có trên Mac. Đây là hai liên kết hữu ích:

http://www.lullabot.com/blog/article/installing-xhprof-mamp-and-php-52-mac-os-106-snow-leopard http://www.midwesternmac.com/bloss/jeff-ge Muff / nhận-xhprof-làm việc tốt

Nhưng tôi đã không làm điều đó. Tôi đã quản lý để làm cho nó hoạt động trên Ubuntu Server 13.04, mặc dù tôi nghĩ rằng bất kỳ phiên bản Ubuntu Server gần đây nào cũng sẽ hoạt động.

Tôi thiết lập máy chủ của mình trên VirtualBox. VirtualBox là miễn phí nhưng có thể mất một chút để tìm hiểu cách thiết lập nó.

3. Cài đặt XHProf

Tôi sẽ giả định rằng chúng ta có một Máy chủ Ubuntu hoạt động đầy đủ.

Đầu tiên chúng ta cần cài đặt lê. Chúng tôi sẽ sử dụng điều này để cài đặt XHProf.

sudo apt-get install pear

Chúng tôi theo dõi điều này với phpdev cũng cần thiết.

sudo apt-get install php5-dev

Nếu các lệnh này không hoạt động và tôi đã hiểu sai, hãy tiếp tục với:

sudo pecl install -f xhprof

Ubuntu sẽ cho bạn biết những gì bạn đang thiếu và cung cấp cho bạn lời nhắc để cài đặt nó. Khi bạn đã có tất cả các phụ thuộc cài đặt xhprof.

Bạn có thể gặp lỗi khi cài đặt xhprof, nó sẽ thử tải xuống bản beta và không thành công. Trong trường hợp đó hãy thử:

sudo pecl install -f xhprof-beta

Hy vọng xhprof đã được cài đặt.

Bây giờ chúng ta cần cấu hình nó. Mở php.ini của bạn tại /etc/php5/apache2/php.ini và thêm hai dòng sau trong phần mở rộng:

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

Dòng thứ hai đặt thư mục đầu ra. Nếu thư mục này không tồn tại, bạn sẽ phải tạo nó. Khi bạn thực hiện việc khởi động lại apache đó bằng cách sử dụng

sudo service apache2 restart

4. Kiểm tra xem XHProf có chạy không

Bây giờ chúng tôi cần kiểm tra nếu điều đó làm việc.

Bài kiểm tra 1:

Đi vào php -m

Nếu bạn thấy xhprof trong danh sách, bạn nên đi. Nếu không, đừng lo lắng, thay vào đó hãy thử điều này để kiểm tra xem nó có hoạt động không:

Truy cập webroot của bạn /var/www/và chỉ tạo một tệp php:

phpinfo();

Lưu nó dưới dạng phpinfo.php. Mở cái này trong trình duyệt của bạn và bạn sẽ thấy thông tin PHP. Tìm kiếm xhprof và nếu bạn thấy cái này thì nó đang chạy.

nhập mô tả hình ảnh ở đây

5. Làm cho nó hoạt động với Drupal

Tôi không thể làm cho nó hoạt động với mô-đun Drupal. Vì vậy, thay vào đó tôi sẽ cho bạn biết làm thế nào để nó hoạt động với mô-đun phát.

Đầu tiên một số cấu hình mà tôi mượn từ đây . Tôi đã không thực sự làm theo phần này, nhưng nó hoạt động rất tốt cho ngựa và tất cả những thứ đó.

Tạo một tệp cấu hình mới bằng lệnh sau:

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

và chèn đoạn mã sau.

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

Sau đó, chúng tôi có thể cần phải tạo một liên kết tượng trưng đến thư mục xhprof_html của chúng tôi. Vì vậy, chỉ trong trường hợp thiết lập này:

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

Điều này sẽ tạo một thư mục trong webroot của bạn trỏ đến tệp xhprof hiện có. Sau đó, trong trình duyệt của bạn, bạn có thể mở http://mywebsitehere.com/xhprof để xem tất cả các hoạt động bạn đã thực hiện.

Sau đó khởi động lại apache. Bây giờ là thời gian cho một cấu hình devel nhỏ. Chuyển đến cài đặt phát, bật xhprof và đặt:

xhprof directory = /usr/share/php

XHProf URL = /xhprof_html

Bây giờ ở dưới cùng của mỗi trang, bạn sẽ thấy một liên kết nhỏ đến xhprof.

nhập mô tả hình ảnh ở đây

Và nhấp vào nó sẽ đưa bạn đến một trang giống như thế này. Bạn đã hoàn tất. Xin chúc mừng!

nhập mô tả hình ảnh ở đây

Nếu điều đó không hiệu quả và bạn đang gặp lỗi khi chạy thì có lẽ vì Drupal không có quyền ghi vào thư mục tmp mà chúng ta đã đặt trước đó nên hãy nhập:

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

Và hy vọng rằng nó hoạt động. Đã được thực hiện. Hoan hô!

Trừ khi bạn muốn các chức năng vẽ đồ thị. Rất may đó là dễ dàng như:

sudo apt-get install graphviz
sudo service apache2 restart

Và bây giờ bạn nên có chức năng vẽ đồ thị. Hy vọng rằng sẽ giúp!


Wow, câu trả lời ấn tượng. Đối với những gì nó có giá trị, các quyền bạn đã sử dụng dường như lành mạnh.
Letharion

Vâng, có một số nỗi đau nghiêm trọng để làm việc đó. Hy vọng nó sẽ giúp được người khác (và tôi sau hai tháng nữa khi tôi quên).
Đaminh Woodman

Câu trả lời tuyệt vời, hoạt động hoàn hảo, thanx để giảm đau :-)
JurgenR

Tôi không có /etc/apache2/conf.dthư mục. Tôi đã thực hiện sudo nano /etc/apache2/conf-enabled/xhprof.confa2enconf xhprofthay vào đó
milkovsky

Cảm ơn đã chạy qua. Trên Ubuntu 14.04, tôi đã cài đặt từ kho Ubuntu chứ không phải PEAR và thấy rằng tôi cần phải thực thi php5enmod xhprofđể tạo liên kết tượng trưng ưu tiên từ thư mục conf.d đến tệp xhprof.ini thư mục có sẵn mods. Một cách khác để kiểm tra xem xhprof có được bật hay không là chạy php5-fpm -i | grep xhprof, thay thế php5-fpm bằng bất cứ thứ gì SAPI bạn đang kiểm tra.
mesch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.