Zend Server CE a Xdebug
O práci s Zend Serverem jsem už tu psal. Normálně je nainstalovaný Zend Debugger, který má tu nevýhodu, že neumí spolupracovat s PHPUnit. Proto, když píšu testy a mám v Hudsonu automatické zpracování reportů potřebuji Xdebug. Teď si ukážeme jak to na Ubuntu přidat do Zend Serveru podporu pro Xdebug. Pro windows by to mělo fungovat obdobně jen se vyhnete kompilaci Xdebugu ze zdrojového kódu a máte si možnost stáhnout zkompilovanou knihovnu.
Nechápu moc Zend proč se trochu nesnaží, aby se dal Zend Debugger používat stejným způsobem jako Xdebug. Obzvláště když vím, že v Zend Studiu je code coverage a profiling dostupný.
Teď už jak na to v Ubuntu:
- Zend Server CE nainstalovaný dle postupu
- Musíte mít nainstalovaný balíček pro kompilaci
sudo apt-get install build-essential sudo apt-get install autoconf
- Stáhnout zdrojové kódy xdebugu, rozbalit a dat kompilovat.
wget http://www.xdebug.org/files/xdebug-2.0.4.tgz tar -xzf xdebug-2.0.4.tgz cd xdebug-2.0.4/ /usr/local/zend/bin/phpize ./configure --enable-xdebug --with-php-config=/usr/local/zend/bin/php-config make
- Knihovnu najdete v
xdebug-2.0.4/modules/xdebug.so - Knihovnu nakopirujte do
/usr/local/zend/lib/debugger/xdebug.so - Upravte soubor
/usr/local/zend/etc/ext.d/debugger.inia zakomentujte řádek;zend_extension_manager.dir.debugger=/usr/local/zend/lib/debugger
- Přidejte nakonec do
/usr/local/zend/etc/php.iniřádekzend_extension=/usr/local/zend/lib/debugger/xdebug.so
- Nezapomeňte restartovat server
sudo /etc/init.d/zend-server restart
sudo cp modules/xdebug.so /usr/local/zend/lib/debugger/xdebug.so
Po instalaci by jste neměli mít problém spustit Ant s kompletním phpunit taskem i na Zend Serveru CE.
<target name="php-unit">
<exec executable="phpunit" dir="${ws}" logerror="on">
<arg line="--log-xml '${builddir}/build/logs/phpunit.xml'
--log-pmd '${builddir}/build/logs/phpunit.pmd.xml'
--log-metrics '${builddir}/build/logs/phpunit.metrics.xml'
--coverage-xml '${builddir}/build/coverage/clover.xml'
--coverage-html '${builddir}/build/coverage'
'tests/'"/>
</exec>
</target>