Heute habe ich mal das “Zend Studio for Eclipse” getestet. Da ich meinen bestehenden lokalen Webserver gerne für die Tests nutzen wollte, musste ich dort den Zend Debugger aktivieren. Nach der Installation wie vorgeschrieben (Auswahl der richtigen Dll passend zur PHP-Version usw) meldete sich der Webserver bei mir mit folgendem Fehler:

1
PHP Fatal error: [Zend Optimizer] Zend Debugger must be loaded after Zend Optimizer in Unknown on line 0

Seltsamerweise sah aber meine php.ini korrekt aus:

1
2
3
4
5
6
7
zend_extension_ts = "C:\Programme\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:\Programme\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
zend_extension_ts="C:\Programme\xampp\php\zendDebugger\ZendDebugger.dll"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,192.168.0.0/255

Ich las also in wenig in verschiedensten Foren und kam dann auf die Lösung. Den Debugger sollte man als “debug server” nur mit dem Pfad, nicht der Dll in der php.ini einbinden:

1
zend_extension_manager.debug_server_ts=C:\Programme\xampp\php\zendDebugger

Wenn man das so eingetragen hat, muss die ZendDebugger.dll in ein passendes Unterverzeichnis “unter” zendDebugger je nach PHP-version geschoben werden. Ich fahre beispielsweise php-5.2.6, also heisst mein Verzeichnis php-5.2.x. Welches nun das passende ist, lässt sich sehr schnell herausfinden. Einfach die obenstehende Zeile in die php.ini eintragen. Jetzt wird ein Fehler im Apache-Log geworfen:

1
PHP Warning: Zend Debug Server for PHP 5.2.x cannot be found (expected at 'C:\\Programme\\xampp\\php\\zendDebugger\\php-5.2.x\\ZendDebugger.dll') - try reinstalling the Zend Debug Server in Unknown on line 0

Wie man sieht, wurde auch ausgegeben, wo der Webserver bzw. dessen PHP den ZendDebugger erwartet hätte. In diesen Fall in C:\Programme\xampp\php\zendDebugger\php-5.2.x\ZendDebugger.dll. Einfach dort die passende Dll ablegen und gut is ;)