Seems as though I’ve stumbled on to a little known, poorly documented fact or a deliberate omission which would be very disappointing. Maybe Zend doesn’t want you to know this? My saga to get Zend Studio 5.5 debugging working continued today with a solution I can finally live with. First let me make a clarification to that first post.
Internal debugging will pump your PHP script through the bundled PHP interpretor without going through the web server. As a result it is impossible to get the internal debugger working by pointing to a url like http://www.example.com/?foo=bar. To debug from a URL like this the Zend Studio 5.5 installation will insist you need Zend Platform which in turn needs Zend Core. Worst yet, our shop uses APC for opcode caching and shared memory support and if you go the Zend Platform route you are out of luck because APC and Zend Platform won’t mix. If you were to contact their website’s chat and talk to someone there you may get the same song and dance I did. I should note the lady I was talking to admitted she wasn’t technical support and she was very nice. Nonetheless, we stumbled onto this situation quite on accident.
A co-worker here was going through similar problems with Zend Studio 5.5. He’d even gotten so frustrated he tried installing phpEclipse and in doing that installed Zend’s debugger. Little did he know that by doing that he had enabled remote debugging support in Zend Studio 5.5 without the need for Zend Platform and we can still happily use APC.
Now the million dollar question is why doesn’t Zend document or promote this fact? Sure, they want you to install and test drive their “PHP Application Server” but if you don’t desire all of that why force it down our throat? Oddly enough this PDF is the only thing thing as a part of Zend’s documentation that even remotely mentions this is possible (you’ll see it on page 19). Anyway, the saga is now over. If you want an easy way to do remote debugging and don’t want to install all the stuff bundled in Zend Platform and Zend Core you now have a way.To get working get Zend Debugger from here. Oddly enough it was easier to find the debugger on the Eclipse project site than it was Zend’s own site (sigh). Then all you have to do is add this to your php.ini:
zend_extension_ts=C:\path\to\zend\debugger\folder\phpversion\ZendDebugger.dll zend_debugger.allow_hosts=127.0.0.1 session.save_path=C:\TEMP zend_debugger.expose_remotely=always
For those who may later stumble onto this, there was a bit of a rebuttle to this here by Shahar (he tried posting here but the mail server was down). I don’t have any further feedback to give on that other than while I didn’t contact the support channel the chat referenced should have gotten me an answer which, obviously, it didn’t. Also I’d say it’s a fair argument that having this “unofficial” way to debug would be on the Zend website in a bit more obvious place would help. I guess this article can serve has a better, more direct discussion on the subject once the crawlers get a hold of it.