Co používáte na debugování?
- Martin Mates
- Člen | 179
Chci se zeptat, jak řešíte debugování PHP aplikací (krokování apod.). Případně, jaký máte operační systém. Zkoušel jsem namontovat do NetBeans xdebug, ale marně. Podle všeho to na 64b Vistách nejde.
- Majkl578
- Moderator | 1364
redhead napsal(a):
…po nainstalování XDebugu mi někdy padá apache…
To se mi stává taky a zatím jsem nezjistil co to způsobuje. Každopádně
je to rozšíření PHP, takže je možné vše.
Pro příklad: nedávno jsem kompiloval 5.3.2b1. Použil jsem totožný ./configure a
výsledek byl kompletně jiný. 5.3.1 je TS, 5.3.2 je NTS. A aby toho nebylo málo, tak to
i složilo běžící Nette aplikaci…
Editoval Majkl578 (14. 1. 2010 19:00)
- iguana007
- Člen | 970
nAS napsal(a):
Na Win7 NetNeans a XDebug. Teď mi funguje dobře, ale několik let dělal přesně to co popisuješ – shazoval Apache. Nikdy dřív se mi to nepodařilo dobře vyřešit. Nyní používám WAMP server místo ručního sestavování, tak je to možná tím, nebo tím, že jsem změnil WinVista za Win7.
Nehodil by si mi zde prosím nějaký krátký popis jak krokování a debug
celkově s NetBeans a XDebug na Win7 rozjet? Zkousel jsem postup na Neteans
webu: http://netbeans.org/…windows.html
Ale bez výsledku … debug v IDE používám prvně v životě, tak nevím
kam sáhnout.
Díky moc
igi
Editoval iguana007 (15. 1. 2010 17:56)
- nAS
- Člen | 277
Já už si moc přesně nepamatuju, jak jsem to rozcházel, ale v
php.ini
mám:
[XDebug]
zend_extension_ts="D:/wamp/bin/php/php5.2.11/ext/php_xdebug.dll"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_log="D:/wamp/logs/xdebug.log"
ten php_xdebug.dll nevím, jestli už byl ve WAMPu nebo jsem ho stahoval zvlášť, každopádně je to verze 2.0.5 a má 168017 bajtů. NetBeans jsou nastaveny standardně, tam jsem tuším nic neměnil.
- Martin Mates
- Člen | 179
Tak jsem zkoušel rozjet ten Xdebug celý den a pořád nic. Mám tušení že to na Vistách 64b NetBeans + Wamp/Xampp vůbec nejde. Psal jsem i na NetBeans fórum (http://forums.netbeans.org/viewtopic.php?…).
Problém je TUŠÍM v tom, že Wamp nainstaluje 32b verzi Apache, která potřebuje VC6 verzi Xdebugu. Verze VC6 pro PHP 5.3 existuje jen v 32b verzi (http://www.xdebug.org/download.php). Podle mého bych měl nainstalovat 64b verzi Xdebugu (jako je operační systém).
Zkoušel jsem samozřejmě i tu 32b verzi a ta nefunguje.
V php.ini mám následující:
zend_extension_ts="F:/Program Files/wamp2/bin/php/php5.3.0/ext/php_xdebug-2.0.5-5.3-vc6.dll"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
Tohle je jediná konstalace, se kterou se nahraje Xdebug jako rozšíření do PHP. Bohužel to ale nefunguje. V Apache error logu je následující: PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0. Zkoušel jsem tedy dát pryč to ‚_ts‘ u zend_extension a žádná změna.
Budu rád za jakékoli Vaše zkušenosti a nápady, co zkusit. Díky!
Editoval Martin Mates (18. 1. 2010 18:29)
- Panda
- Člen | 569
64b verze je hloupost, 32b aplikace nemůže natáhnout 64b dll, i když by jsi jel na 64b OS. S xdebug 2.0.5 jsem měl taky kdysi potíže. Teď jdu vyzkoušet aktuální betu – 32b VC9. Pak dám vědět, jak to funguje.
//Doplnění: tak zatím mohu konstatovat minimálně to, že se Xdebug načte a debuggovat jde. Jak je to stabilní, to budu muset poreferovat až později.
Editoval Panda (18. 1. 2010 18:56)
- iguana007
- Člen | 970
A nemáš náhodou předtím v php.ini nezakomentovanou část týkající se Zend?
[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:
správně máš mít výše uvedený blok celý zakomentovaný jinak ti xdebug nepojede, je to ostatně uvedené přímo v poznámce u xdebug:
;; Only Zend OR (!) XDebug
Dej vědět, jestli pomohlo…
igi
- Martin Mates
- Člen | 179
iguana007 napsal(a):
A nemáš náhodou předtím v php.ini nezakomentovanou část týkající se Zend?
[Zend] zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll" zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer" zend_optimizer.enable_loader = 0 zend_optimizer.optimization_level=15 ;zend_optimizer.license_path = ; Local Variables: ; tab-width: 4 ; End:
Díky. Tohle píšou už v tom návodu na NetBeans webu. V php.ini tento blok vůbec nemám. Jediný nezakomentovaný řádek obsahující zend je ten zend_extension_ts.
- Martin Mates
- Člen | 179
iguana007 napsal(a):
Zatím jsem to zkoušel jen na 32bit Vistách a tam mi to šlo … teď sedím u 64bit Win7, tak to zkusím, mělo by to být podobné jako 64bit Visty, tak dám vědět, jestli mi to šlo.
igi
Díky moc! Budu se těšit.
- iguana007
- Člen | 970
Tak jsem s tím včera bojoval do 5ti do rána. Nejdříve jsem zkoušel XAMPP 1.7.1 … tam se mi xdebug depodařilo rozjet (Apache chybu nehlásil, ale NetBeans jej nedokázaly použít) … tak jsem si řekl, že zkusím step by step install Apache, PHP a MySQL … nejříve 64bit verzi a potom 32bit … v 64Bit se mi nepodařilo vůbec rozjet některé knihovny (např. curl a gettext) a v obou jsem nerozjel mod_rewrite … asi jsem něco dělal špatně v nastavení apache, ale nepřišel jsem na to. Taky jsem narazil na zajimavou věc a to, že mi nechodilo latest MySQL 5.1 – jediná verze co mi jela bylo MySQL 5.0.X … dneska to ještě zkusím znovu.
igi
Editoval iguana007 (19. 1. 2010 9:48)
- Martin Mates
- Člen | 179
Ono když se podíváš na stránkách Xamppu na Win32 compatibility list, tak se tam píše:
Windows comatibility list (win32), here tests for version 1.7.1
Windows 2000 (w2k): server test okay (but no xdebug support)
Windows Server 2003 R2: server test okay (but no xdebug support)
Windows XP Service Pack 2: server test okay
Windows XP Service Pack 3: server test okay
VISTA Ultimate: server test okay (but no xdebug support)
Takže s tím xdebugem to bude bída. Spíš bych vkládal naději v ten Wamp.
- iguana007
- Člen | 970
Martin:
Me uz to asi bezi …
zkus si v httpd.conf zmenit radky, kde nacitas php na toto:
#Toto nechej jak je
Action application/x-httpd-php "/php/php-cgi.exe"
#Tady si uprav cesty, podle toho kde mas instalnute PHP
PHPINIDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_2.dll"
Z XDEBUG jsem si stahnul tuto verzi: http://xdebug.org/…-5.2-vc6.dll
A co se tyce Apache+PHP+MySQL, tak jsem to nainstaloval rucne. Mam verze: PHP 5.2.12 TS, Apache/2.2.14 (Win32) a MySQL 5.0.51a
igi
- Martin Mates
- Člen | 179
iguana007 napsal(a):
Martin:
Me uz to asi bezi …
zkus si v httpd.conf zmenit radky, kde nacitas php na toto:#Toto nechej jak je Action application/x-httpd-php "/php/php-cgi.exe" #Tady si uprav cesty, podle toho kde mas instalnute PHP PHPINIDir "C:/php" LoadModule php5_module "C:/php/php5apache2_2.dll"
Z XDEBUG jsem si stahnul tuto verzi: http://xdebug.org/…-5.2-vc6.dll
A co se tyce Apache+PHP+MySQL, tak jsem to nainstaloval rucne. Mam verze: PHP 5.2.12 TS, Apache/2.2.14 (Win32) a MySQL 5.0.51a
igi
Zkusím to, díky! Dám vědět.
- Martin Mates
- Člen | 179
2iguana:
Tak jsem zkusil do Wampu strčit PHP ve verzi 5.2.11 (5.2.12 plugin neexistuje) a zkusil jsem na to našroubovat tu verzi Xdebugu, co jsi vybral. Teď je to dost zvláštní, protože podle testovacího skriptu z NetBeans wiki ten Xdebug nefunguje (tady v tom bodě už jsem určitě byl).
Nicméně jsem tentokrát zkoušel v NetBeansech odkrokovat jednu aplikaci a to funguje. Občas slítne Apache (pokaždé když se pokusím o phpinfo). Už to tak nějak hala bala funguje. Zkusím to chvíli takto a kdyby to nešlo, nainstaluju to zvlášť všechno a uvidíme.
- Martin Mates
- Člen | 179
Tak jsem zkoušel nové verze Xdebug. Konkrétně Xdebug 2.1.0beta2 – 5.2 VC6 (32 bit) a 5.3 VC6 (32 bit). Konečně se objevila nová verze pro PHP 5.3 VC6 32bit, která dříve chyběla.
S PHP 5.3 a NetBeans 6.8 verze 5.3 VC6 (32 bit), Windows Vista 64b:
- Extension se v pořádku načte
- Při debugování v NetBeans se dole objeví optimistické netbeans-xdebug RUNNING
- Nicméně program se nezastaví na žádném break pointu, takže to nejede
S PHP 5.2.11 a NetBeans 6.8 verze 5.2 VC6 (32 bit), Windows Vista 64b:
- Extension se načte v pohodě
- Debugování funguje ALE je to nějaké zacyklené, u proměnných se objevuje jejich název a typ asi stokrát a pořád to pribývá viz screenshot
Samozřejmě mluvím jen o Nette aplikaci. Ještě to zkusím na normálním skriptu. Nevíte někdo, co s tím?
- Panda
- Člen | 569
Zkusil bych poslední vývojové buildy: xdebug-latest.tgz. S cyklením to stále dělá nějaké psí kusy, ale je to použitelné a nejede to donekonečna.
- Panda
- Člen | 569
Jinak až teď jsem si přečetl, že tu byl požadavek na mojí konfiguraci webserveru.
Až donedávna jsem používal Apache z Apache Lounge a k tomu oficiální PHP VC9 x86 TS. Pokud jsem potřeboval, tak rozšíření od Pierra, Imagick od Mikko Koppanena.
Teď: Apache x64 z Blackdot.be a k tomu vlastním enterem zkompilované PHP + Xdebug + ImageMagick + Imagick – vše 64bit. Na požádání se mohu podělit…
Editoval Panda (27. 2. 2010 12:39)