PHP: XDebug Profiling installieren für PHP-Webserver

http://www.xdebug.org/docs/profiler

Um die Profiling-Features von XDebug zu nutzen sind folgende Schritte auf einem Ubuntu-System erforderlich:
Installieren von XDebug:

sudo apt-get install php5-xdebug

Ermitteln der xdebug.so Datei zum Einbinden:

sudo find / -name 'xdebug.so' 2> /dev/null

Liefert zB folgende Rückgabe:
/usr/lib/php5/20121212/xdebug.so
Diesen Wert in der php.ini als zend_extension-Wert eintragen.

Anpassen der php.ini Datei:

sudo nano /etc/php5/cli/php.ini

(Die Apache-Datei (/etc/php5/apache2/php.ini) kann auch angepasst werden. Für den Entwicklungsserver wird die cli-ini Datei verwendet.)

zend_extension = "/usr/lib/php5/20121212/xdebug.so"
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_handler=dbgp 
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1 
xdebug.remote_port=9000

Anmerkung: Die xdebug-Einträge können auch im mods-available-Ordner abgelegt werden und dann über einen Symlink in mods-enabled auf einfach Weise aktiviert werden.

Apache restarten:

sudo service apache2 restart

Webserver starten:

cd /var/www
php -S localhost:8080

Die cacheGrind-Dateien (zum Auswerten des Profiling) sind standardmässig im Ordner /tmp abgelegt. Die Files beginnen mit cachegrind.out.. Der Ausgabepfad kann in der php.ini geändert werden:

xdebug.profiler_output_dir = "/home/user/cachegrind-files"

Die Ausgabe im cacheGrind-File ist als Textfile nicht sehr aussagekräftig. Mit einem Tool namens KCacheGrind lassen sich schnell Problemfälle identifizieren.

sudo apt-get install kcachegrind graphviz

http://kcachegrind.sourceforge.net/html/Documentation.html