Xdebug unter Mamp Pro 1.9.5 einrichten, damit einwandfreies Debugging möglich ist. Gerne per Teamviewer.
am 18.04.2011 - 18:31 Uhr in
Liebe Dienstleister,
ich habe versucht Xdebug unter MAMP Pro 1.9.5 zu konfigurieren, damit ich mit Netbeans PHP debuggen kann. Allerdings bekomme ich mit Netbeans keine Verbindung. Ich habe bereits einige Zeit investiert, um das Problem zu lösen. Es hat sogar nach einem Rechner-Neustart plötzlich funktioniert. Nach einem erneuten Rechner-Neustart bekam ich allerdings wieder keine Verbindung. Das Problem habe ich mit allen Einzelheiten unter http://goo.gl/FIrci beschrieben.
Es wäre schön, wenn es jemand für mich Xdebug unter MAMP über eine Teamviewer-Fernwartungssitzung für mich konfigurieren könnte, damit ich mit Netbeans ohne Probleme debuggen kann. Also ohne, dass ich nach einem Neustart wieder Probleme habe. Hoffe hier findet sich jemand mit ausreichend Know-How, um mir hierbei helfen zu können.
Die Vergütung erfolgt nach Verhandlung auf Stundenbasis. Falls ihr Fragen habt, so zögert bitte nicht, diese zu stellen.
Beste Grüße!
- Anmelden oder Registrieren um Kommentare zu schreiben
XAMPP
am 18.04.2011 - 20:00 Uhr
Hi jepster,
definitiv problemlos ist die Installation XAMPP für MacOs und Netbeans einschl. debugger.
In php.ini folgendes ergänzen:
[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts=”C:\xampp\php\ext\php_xdebug.dll”
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.profiler_enable=0
xdebug.profiler_output_dir=”/Applications/XAMPP/tmp”
Apache restarten und schon sollte Alles laufen
Viele Grüße
Jörg
www.drupalme.de
joerg-1958
am 18.04.2011 - 21:59 Uhr
zend_extension_ts=”C:\xampp\php\ext\php_xdebug.dll”
Danke für deinen Post. Aber MacOS ist nicht Windows. Du kannst dir sicher sein, dass ich bereits viel Zeit investiert habe und es durchaus problematisch ist, Xdebug innerhalb von MAMP so einzurichten, dass man damit debuggen kann.
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
XAMPP
am 18.04.2011 - 22:05 Uhr
oh sorry, ich habe die Änderungen in php.ini aus dem Internet kopiert, auf dem MAC muss es heissen
zend_extension_ts=”/Applications/XAMPP/php/ext/php_xdebug.dll”
Viele Grüße
Jörg
www.drupalme.de
xdebug
am 19.04.2011 - 06:29 Uhr
Hallo.
auf dem MAC muss es heissen
zend_extension_ts=”/Applications/XAMPP/php/ext/php_xdebug.dll”
Garantiert nicht. Wenn, dann xdebug.so.
@jepster Probier das mal: http://kwnetzwelt.net/wordpress/archives/381
Ich wollte gestern auch "noch schnell" xDebug einrichten, habs jedoch selbst kompiliert. Mit dem Ergebnis, dass die Erweiterung von Apache nicht geladen werden konnte :)
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hi, Gib mal in der Console
am 19.04.2011 - 08:53 Uhr
Hi,
Gib mal in der Console php -m ein um sicher zu gehen,
dass das xdebug modul von php korrekt geladen wurde.
Sie auch mal in den error logs von apache nach.
@undpaul
Diese erweiterung wird von php geladen, nicht von Apache.
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Modul
am 19.04.2011 - 09:18 Uhr
@undpaul
Hihi ... kannst ruhig "stBorchert" schreiben :)
Diese erweiterung wird von php geladen, nicht von Apache.
Ja, stimmt. Aber der Fehler wird im apache-Errorlog protokolliert :D
Wenn xdebug geladen ist, wird das auch über
php -i | grep xdebug
angezeigt. Wenn da nix kommt, dann ist die Extension nicht geladen (so wie bei mir gestern :/ ).Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hyp1 schrieb Gib mal in der
am 19.04.2011 - 11:17 Uhr
Gib mal in der Console php -m ein um sicher zu gehen,
dass das xdebug modul von php korrekt geladen wurde.
Habe ich eingegeben. Xdebug wird nicht angezeigt. Wobei es ja Mehrere PHP-Versionen auf einem MAMP-System gibt:
1, Die (alte) PHP-Version die MacOS beiliegt.
2., PHP 5.2.x
3., PHP 5.3.x
Sodass wohl die MacOS-PHP Version im Include Path steckt, welche ja nicht für die Verarbeitung unter MAMP verantwortlich ist. Mit phpinfo(); bekomme ich allerdings die Info, dass Xdebug geladen wurde. Damit debuggen kann ich allerdings nicht.
Aber der Fehler wird im apache-Errorlog protokolliert :D
Habe nachgesehen. Davon ist dort nichts zu sehen.
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
Zitat: /Applications/MAMP/bin
am 19.04.2011 - 11:58 Uhr
/Applications/MAMP/bin/php5.3/bin/php -m
bringt mir
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
json
ldap
libxml
mbstring
mcrypt
mongo
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
tokenizer
XCache
xdebug
xml
xmlreader
xmlwriter
xsl
yaz
zip
zlib
[Zend Modules]
XCache
Xdebug
Zeigt mir ebenso wie phpinfo(); an, dass Xdebug geladen ist. Der selbige Interpreter ist bei Netbeans eingestellt. Ich kann sowohl mit der xdebug.so von Komodo und der, die bei MAMP enthalten ist (die ist von der Dateigröße doppelt so schwer) keine Verbindung mit Netbeans aufbauen.
Wichtig: Wenn sich jemand definitiv sicher ist, das über eine Teamviewer-Sitzung lösen zu können, dann steht mein Angebot mit der Vergütung weiterhin.
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
Ich hab das gerade mal
am 19.04.2011 - 13:55 Uhr
Ich hab das gerade mal ausprobiert - hab hier MAMP 1.9.5 mit PHP 5.3.5 laufen.
Aktivierung der Extension in der php.ini:
[xdebug]
zend_extension = /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=192.168.0.155 // hier müsstest du localhost/127.0.0.1 eintragen
xdebug.remote_port=9010
xdebug.idekey=jeffg
xdebug.profiler_enable=1
xdebug.profiler_output_name=xdebug.cachegrind-out.%s.%p
Die xdebug.so stammt aus dem Standard-MAMP Paket - Download xdebug.so
Neustart Apache / MAMP - in der phpinfo() sollte ein Abschnitt, wie im Screenshot zu sehen sein.
Testen der Konfiguration über einfaches PHP-Script, welches versucht Verbindung zum Debugger aufzubauen:
<?php
$address = '192.168.0.155';
$port = 9010;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);
?>
Aufruf des Scripts über die Konsole:
php dbgtest.php
Hier sollte dann nach einiger Wartezeit eine Verbindung zustande kommen.
Konfiguration von Netbeans nach Screenshot.. Hier muss auch die korrekte PHP Runtime und der Remote-Port eingetragen sein !
Zeitaufwand ca 0.5 Stunden :) - läuft auch nach Neustart noch wundervoll ...
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Leider trete ich noch immer auf der Stelle
am 20.04.2011 - 01:51 Uhr
Hallo,
danke für die Posts.
Es ist schön, dass ihr mir helfen wollt. Aber ich komme weiterhin leider nicht weiter.
Wenn ich mittels phpinfo(); nachsehen will, ob Xdebug geladen ist, so erhalte ich dort einen Block zu Xdebug. Ähnlich wie in SteffenRs Screenshot. Mit
php -m
bekomme ich auch die Info, dass das Modul geladen ist. Wenn ich mit dem PHP-Code, von dir SteffenR, die Verbindung zu Xdebug testen will, dann erhalte ich damit selbst nach 30 Minuten keine Verbindung. Egal ob mit Port 9000 oder Port 9010 im Test-Code sowie in der betreffenden php.ini. Selbstverständlich bekommt auch Netbeans weiterhin keine Verbindung. Auch der versuchsweise Austausch der xdebug.so, die du freundlicherweise hochgeladen hast, zeigt keinen positiven Effekt.
@stBorchert: Hast du die Konfiguration bei dir mittlerweile geschafft? Wolltest es ja am Abend testen.
»Möglicherweise« funktioniert es bei mir, wenn ich es auf die grobe Tour mache und MacOS neu installiere. Aber es kann nicht sein, dass dieser Weg gerechtfertigt ist, wenn das Problem nur mit den Dateien innerhalb von MAMP zutun haben soll.
Hat jemand von euch weitere Vorschläge, was ich tun könnte, um das Problem zu lösen? Weis jemand, wie man unter MacOS prüfen kann ob Port 9000 oder 9010 von anderen Programmen belegt sind und wenn ja, von welchen?
Danke im Voraus für eure Mühe!
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
Firewall checken, mit netstat
am 20.04.2011 - 02:01 Uhr
Firewall checken, mit netstat schauen welche Ports benutzt werden, einfach mit telnet auf den Port zugreifen, ...
Suchmaschinenoptimierung (SEO) & Drupal
Es ist mir nichts davon
am 20.04.2011 - 02:07 Uhr
Es ist mir nichts davon bekannt, dass ich unter MacOS eine Firewall installiert hätte. Ist da von Haus aus etwas konfiguriert? Kennst du aus dem Stegreif den betreffenden Telnet Befehl?
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
D.h. ja nicht, dass es
am 20.04.2011 - 02:34 Uhr
D.h. ja nicht, dass es schadet entsprechend mal nachzuschauen ob nicht doch die FW aktiv ist.
Der Telnet-Befehl heißt telnet und Details erfährt man wie auf nem Unix-System üblich über die man-Page ("man telnet").
Suchmaschinenoptimierung (SEO) & Drupal
Hallo, um auf MAC OS
am 20.04.2011 - 06:57 Uhr
Hallo,
um auf MAC OS nachzusehen ob der debugger am Port
9000 hört:
netstat -atp | grep -i "listen"
Dann solltest du so etwas sehen:
TCP *:9000 (LISTEN)
Mach es am besten so:
1. Schau mit netstat nach welcher Port noch nicht belegt ist.
2. Dann stellst du XDebug auf den freien Port ein.
3. Apache neustart
4. nochmal netstat um zu sehen ob an diesem Port gehört wird (LISTEN)
Sollte es dann immer noch nicht klappen hast du warscheinlich eine Software Firewall
oder ein ähnliches Security Tool im System.
Gruss
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Mit Zitat: netstat -atp |
am 20.04.2011 - 11:46 Uhr
Mit
netstat -atp | grep -i "listen"
bekomme ich nur das hier
netstat: option requires an argument -- p
Usage: netstat [-AaLlnW] [-f address_family | -p protocol]
netstat [-gilns] [-f address_family]
netstat -i | -I interface [-w wait] [-abdgt]
netstat -s [-s] [-f address_family | -p protocol] [-w wait]
netstat -i | -I interface -s [-f address_family | -p protocol]
netstat -m [-m]
netstat -r [-Aaln] [-f address_family]
netstat -rs [-s]
Habe unter http://snippets.dzone.com/posts/show/5712 jedoch eine Alternative gefunden:
sudo lsof -i -P
Damit sehe ich weder in der Spalte PID, dass eine Port-ID 9000 oder 9010 belegt ist noch das irgendwo :9000 oder :9010 indem ich
| grep -i "9000"
an den Befehl hänge.
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
Hi, ich würde hier eher
am 20.04.2011 - 12:16 Uhr
Hi,
ich würde hier eher annehmen, dass die PID
die Prozess ID ist und keine Port Nummer.
Ich habe allerdings keinen MAC.
LG
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Xdebug requires Zend Engine API version 220090626. The Zend Engi
am 20.04.2011 - 13:58 Uhr
Hi,
meine jetzt zu wissen woran es liegt. Xdebug ist mit der Version der Zend Engine API nicht kompatibel. Die Version der xdebug.so die bei MAMP dabei ist (!!!) sowie die Version von Komodo (= http://code.activestate.com/komodo/remotedebugging/) werden beide mit einer nahezu gleichen Fehlermeldung gemängelt. Nur die Nummer neben »version« ist etwas anders. Wenn ich also php -v oder drush eingebe, erhalte ich die Meldung
noname:~ jepster$ php -v
Xdebug requires Zend Engine API version 220090626.
The Zend Engine API version 220060519 which is installed, is outdated.
PHP 5.2.13 (cli) (built: Oct 13 2010 12:46:30)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
with XCache v1.2.2, Copyright (c) 2005-2007, by mOo
Nun habe ich auf beim FAQ von Xdebug einen Hinweis darauf gefunden, dass ich Xdebug selber kompilieren sollte. Das habe ich jedoch bereits versucht und da gibt es Probleme mit phpize.
Ich will also den Xdebug-Wizard unter http://xdebug.org/find-binary.php befolgen.
1., Paste den Output von phpinfo(); in das Textfeld
2., Komme auf eine Seite wo ich
Configuring for:
...
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
sehen sollte, wenn ich
phpize
in die Konsole eingebe. Die bei mir ausgegebenen Zahlen stimmen jedoch nicht mit den angezeigten überein:
noname:xdebug-2.1.1 jepster$ phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Es sollte stattdessen laut Wizard folgendes angezeigt werden:
Run: phpize
As part of its output it should show:
Configuring for:
...
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Führe ich
/Applications/MAMP/bin/php5.3/bin/phpize
oder
/Applications/MAMP/bin/php5.2/bin/phpize
in der Konsole aus, erhalte ich nur
noname:xdebug-2.1.1 jepster$ /Applications/MAMP/bin/php5.3/bin/phpize
grep: /Applications/MAMP/bin/php5.3/include/php/main/php.h: No such file or directory
grep: /Applications/MAMP/bin/php5.3/include/php/Zend/zend_modules.h: No such file or directory
grep: /Applications/MAMP/bin/php5.3/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
Ich befinde mich wohlgemerkt im Verzeichnis von den entpackten Xdebug Source-Dateien. Wobei ich auf dem gesamten System eben nur die zwei genannten phpize Dateienhabe.
Fazit: Es ist mir also unmöglich, die richtige Xdebug Version zu kompilieren, weder Xdebug auf irgendwie zu recherchierende Weise zu installieren. Xdebug ist ein krass zusammen gebastelter Rotz - den sich kein Dienstleister zu supporten traut. Danke liebe verkonfiguriert verbastelte OpenSource-Welt.
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
Hi nochmal, ich hatte genau
am 20.04.2011 - 19:19 Uhr
Hi nochmal,
ich hatte genau die gleichen Probleme unter Win32
mit xdedug,
Kann Dir leider nicht mehr genau sagen wie ich das gelöst habe,
Aber grundlegend lag es daran dass ich 32 bit und 64 bit Module
gemischt hatte.
Ich konnte das alles jedenfalls erst lösen indem ich alles auf 32 bit hatte
die Fehlermeldungen waren gelcih (Zend API requires blah ....).
Hoffe das hilft Dir weiter.
BTW:
Ich verwende Eclipse + XAMPP
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hab mir ne eigene xdebug.so
am 20.04.2011 - 19:42 Uhr
Hab mir ne eigene xdebug.so Datei laut dem 64Bit-Tutorial von http://www.netbeans-forum.de/viewtopic.php?f=30&t=3166 kompiliert, aber nach dem Neustart ist genauso tote Hose wie vorher. Mit php -m habe ich das Modul nicht. Das Xdebug hat mal funktioniert: ohne Kompilierung. Ich werde wohl auf den Zend Debugger umsteigen müssen. Hoffe da ist besser vorausgedacht worden als bei Xdebug, sodass die Software benutzbarer und weniger zeitintensiv ist.
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn
Schade dass es nicht geklappt
am 20.04.2011 - 22:37 Uhr
Schade dass es nicht geklappt hat.
Wenn Du xdebug auf 64 bit kompilierst muss ALLES 64 bit sein.
PHP und alle PHP Module 64 Bit, Apache 64 Bit, C Runtime 64 Bit.
Ein Mix funktioniert da nicht.
Ich hatte das erst hinbekommen (unter Windows7 64 Bit) als alles 32 Bit war.
Gruss
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
1:07 Uhr: Endlich Erfolg!
am 21.04.2011 - 00:27 Uhr
Liebe Community,
erstmal herzlichen Dank für euer Mitlesen und das Austauschen eures Expertenwissens.
Ich bin nochmal alle php.ini Einstellungen durchgegangen und habe die xdebug.so von Komodo benutzt (weiter oben im Thread mehrmals erwähnt). Anschließend habe ich den Rechner neu gestartet. Die für Xdebug relevanten php.ini-Einstellungen sehen bei mir momentan so aus:
[xdebug]
zend_extension="/Applications/MAMP/bin/php5.2/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
Zudem ist es halt wichtig, dass man die Projekt Properties und die PHP-Einstellungen von Netbeans korrekt einstellt. Dazu den Projektnamen mit rechter Maustaste anklicken, im Kontextmenü »Properties« wählen und da unter »Run Configuration« die Project URL bestimmen. Bei mir steht da nur http://mein-projekt (nutze MAMP Pro Vhost).
Dann halt noch in den Netbeans-Einstellungen das PHP-BInary als PHP-Interpreter bestimmen. Bei »Open Result« ist bei mir nur »Output Window« ausgewählt. Sobald ich debugge, öffnet sich das Browserfenster. Doch selbst wenn ich »Output Window« unausgewählt lasse, öffnet sich immer das Browserfenster.
Habe dann testweise den MacGDBp laufen lassen, welcher die Debug-Session startet, sobald der PHP-Interpreter startet. Ein sehr primitiver Debugger ohne Breakpoints - für Drupal-Projekte kann man ihn vergessen. Als ich testweise meine Drupal-Seite auf meinem lokalen Webserver aufgerufen habe, ging MacGDBp mit. Somit habe ich gesehen, dass Xdebug tut. Zunächst habe ich eine Test PHP-Datei mit Netbeans aufgerufen, aber Netbeans konnte wiedermal keine Verbindung aufbauen. Versuchsweise habe ich dann eine .module-Datei aus meinem Drupal-Projekt ausgewählt und den Debugger gestartet - zack - der Debugger ging mit.
Jetzt hoffe ich, dass der Debugger auch weiterhin funktioniert und ich seine Funktionen stressfrei erkunden kann.
Eins noch: ich habe auch Eclipse mit PDT sowie Zend Studio ausprobiert. Diese Programme sind unglaublich überladen. Netbeans ist bezgl. der Übersichtlichkeit seiner Oberfläche ein wahrer Segen...
- Mein Profil auf Drupal.org
- Mein Profil auf LinkedIn