Drupal kattintgatás nélkül

Avagy egy drupal programozó hétköznapjai

MAMP és Acquia Drupal Stack Felruházása Xdebug Képességgel

Nemrég váltottam Linuxról OS X-re. Ahhoz hogy a munkámat el tudjam végezni ki kellett alakítanom a megfelelő munkakörnyezetet. A program készítéshez NetBeans IDE-t használom ez elérhető OS X- re is. A szerver oldali környezetet még nem döntöttem el véglegesen, jelenleg két versenyzőt tesztelek, az egyik a MAMP a másik a Drupal fejlesztésekhez jól használható Acquia Drupal Stack. Az Acquia Drupal Stack úgy került képbe, hogy a munkam során zömmel drupallal foglalkozom, és ezzel a környezettel sok időt lehet spórolni. A drupal hétvégen Hojtsy Gábor mutatta be az Acquia Drupal Stack-et megtekinthető itt.

Letöltés és telepítés nem okozhat senkinek gondot:

A programok telepítése után már csak az Xdebug beállítása hiányzik.

MAMP Xdebug kiterjesztés bekapcsolása

A MAMP tartalmaz előre fordított xdebug.so állományt, ezt kapcsoljuk be a php.ini-ben, a zend optimizert ki kell kapcsolnunk ugyanitt, mert összeakad az Xdebuggal. Nyissuk meg kedvenc szövegszerkesztőnkkel a php.ini állományt:

1
nano /Applications/MAMP/conf/php5/php.ini

Az állomány végét írjuk át ilyenre:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
;[Zend]
;zend_optimizer.optimization_level=15
;zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.3.3
;zend_optimizer.version=3.3.3

;zend_extension=/Applications/MAMP/bin/php5/zend/lib/ZendExtensionManager.so

[xdebug]

xdebug.default_enable=1

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1

zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"

Ezután indítsuk újra a MAMP-ot és nézzük meg a phpinfo() kimenetét, ha ezt látjuk akkor sikerült bekapcsolni az xdebugot: MAMP phpinfo xdebug

Acquia Drupal Stack Xdebug kiterjesztés bekapcsolása

Az Acquia Drupal Stack nem tartalmaz előre fordított xdebug.so állományt, így két út áll előttünk, vagy fordítunk egyet forrásból, vagy felhasználjuk a MAMP-ban található előre fordított xdebug.so állományt, én ez utóbbit választottam. (A MAMP 5.2.11-es php-t tartalmaz az Acquia Drupal Stack 5.2.9-est.)

Másoljuk a MAMP-ban található xdebug.so-t az Acquia Drupal Stack-be:

1
2
cd /Applications/acquia-drupal/php/ext/
cp /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so .

Nyissuk meg kedvenc szövegszerkesztőnkkel a php.ini állományt:

1
nano /Applications/acquia-drupal/php/bin/php.ini

Az állomány végére írjuk be a következőt:

1
2
3
4
5
6
7
8
9
10
11
[xdebug]

xdebug.default_enable=1

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9080
xdebug.remote_autostart=1

zend_extension=/Applications/acquia-drupal/php/ext/xdebug.so

Ebben az esetben az Xdebug a 9080 porton figyel, erre azért van szükség, hogy ha egyszerre megy a MAMP és az Acquia Drupal Stack akkor ne akadjanak össze, ha csak az egyik van használva akkor itt is a 9000 portot kell megadni.

Az Acquia Drupal Stack beállításainál találjuk a phpinfo()-ra mutató linket: Acquia Settings

Ha ezt látjuk a phpinfo() kimenetében akkor sikerrel jártunk: Acquia phpinfo xdebug

NetBeans Xdebug a gyakorlatban

A PHP debug beállításai láthatok MAMP környezethez: NetBeans xdebug

Acquia Drupal Stack esetén a PHP 5 Interpreter és a Debugger Portot kell átírni.

1
2
PHP 5 Interpreter: /Applications/acquia-drupal/php/bin/php
Debugger Port: 9080

A böngésző beállítások így nézzenek ki:

NetBeans Browser Options

NetBeans Settings Web Browsers

Ezután már csak egy break point kell és lehet indítani a hibakeresést.

Ez a dokumentáció nem jött volna létre ha nincs itarato és zserno.

Felhasznált dokumentáció: