Kuidas seadistada PHP-s kohalikku silumiskeskkonda

Hiljuti hakkasin rohkem keskenduma PHP-le ja mul oli vaja luua kohalik silumiskeskkond. Kuna õpetusi selle kohta pole palju, siis on mul tekkinud probleeme seadistamise käivitamiseks.

Kombineerides paar õpetust ja kulutades paar tundi mitmel foorumil, jõudsin selle tekstini. Rakendus, millega töötan, töötab Vagranti kastis, mis on kuidagi ebakindel. See variseb aeg-ajalt kokku, nii et pean selle seadistuse uuesti tegema ja seetõttu tean, et see seadistus töötab :).

Selle õpetuse eesmärk on panna Xdebug teie serveris töötama ja seejärel suunata PhpStorm Xdebugile.

Alustame.

Eeldused

Kui teie serverisse pole installitud Xdebugi, kuid kasutate PHP7, saate seda teha siin asuva ametliku Xdebugi saidi kohandatud installijuhiste abil.

Kuid kuna minu projekt kasutab PHP5, pidin seda tegema vanamoodsalt: otsima seda foorumitest .

Selles õpetuses eeldan, et teil on Xdebug installitud.

Alustamine

Kõigepealt peate oma serveris leidma faili xdebug.so asukoha. Kopeerige asukoht kuhugi, nagu te seda hiljem kasutate.

locate xdebug.so

Nüüd peate oma serveris navigeerima asukohta: /etc/php5/apache2/conf.d/ ja kontrollima, kas seal on fail 20-xdebug.ini. Kui seda pole, looge see. Selle saate luua selliste käskude abil nagu touch, vim, vi, nano ja nii edasi.

Näete, et minu projekt on tehtud PHP5-s, nii et muutke oma kausta nime / asukohta vastavalt oma PHP versioonile.

Nüüd avage fail 20-xdebug.ini ja kleepige see:

zend_extension=”location to your xdebug.so file” xdebug.remote_enable=1 xdebug.remote_port=9000 xdebug.remote_host=”your localhost address” xdebug.remote_autostart=1 xdebug.remote_connect_back=0 xdebug.remote_handler=”dbgp” xdebug.remote_mode=req xdebug.remote_cookie_expire_time=-9999 xdebug.remote_log=”/tmp/xdebug.log” xdebug.var_display_max_depth=15 xdebug.profiler_enable=0 xdebug.idekey=”phpstorm”

Allpool kirjutatud 20-xdebug.ini-faili selgitusest näete, et mõnda neist sätetest pole vaja või et need on seatud vaikeväärtusele. Ma hoian neid väärtusi failis 20-xdebug.ini, kuna neid on hea teada.

Faili 20-xdebug.ini selgitus:

  • xdebug.remote_enable - kontrollib, kas Xdebug peaks proovima ühendust võtta silumiskliendiga, kes kuulab seadetes sätestatud seadet
  • xdebug.remote_port - port, millega Xdebug üritab kaughosti kaudu ühendust luua. Vaikimisi on 9000.
  • xdebug.remote_host - valib hosti, kus silumisklient töötab. Vaikimisi on localhost.
  • xdebug.remote_autostart - kui selle sätte väärtuseks on seatud 1, üritab Xdebug käivitada kaugsilumise seanssi ja proovida kliendiga ühendust luua.
  • xdebug.remote_connect_back - kui see on lubatud, ignoreeritakse sätet xdebug.remote_host ja Xdebug püüab ühenduse luua HTTP-päringu teinud kliendiga. Vaikimisi on 0.
  • xdebug.remote_handler - võib olla kas 'php3', mis valib vana PHP 3 stiilis siluri väljundi 'gdb', mis võimaldab GDB-le sarnast siluriliidest või 'dbgp' - siluriprotokolli. DBGp protokoll on ainus toetatud protokoll. Vaikimisi on dbgp.
  • xdebug.remote_mode - valib silumisühenduse loomise ajal. Sellel seadel võib olla kaks erinevat väärtust: req - Xdebug proovib silumisikliendiga ühendust luua kohe, kui skript käivitub. jit - Xdebug proovib silumisprogrammiga ühendust luua kohe, kui ilmneb tõrge.
  • xdebug.remote_cookie_expire_time - seda seadet saab kasutada selleks, et suurendada (või vähendada) aega, mille kaugsilumise seanss seansiküpsise kaudu elus jääb. Vaikimisi on 3600.
  • xdebug.remote_log - kui see on seatud väärtusele, kasutatakse seda failinimena failile, kuhu on logitud kõik silumiseadmete kaugsuhted.
  • xdebug.var_display_max_depth - määrab, kui palju massiivi elementide ja objekti omaduste pesastatud tasemeid on, kui muutujaid kuvatakse kas xdebug_var_dump (), xdebug.show_local_vars või Funktsioonijälgede kaudu. Vaikimisi on 3.
  • xdebug.profiler_enable - lubab Xdebugi profileerija, mis loob failid profiili väljundkataloogi. Vaikimisi on 0.
  • xdebug.idekey - juhib, millise IDE-võtme Xdebug peaks DBGp siluri käitlejale edastama. Vaikimisi põhineb keskkonna seaded.

Salvestage fail ja taaskäivitage Apache server:

sudo service apache2 restart

Xdebug ja PhpStorm

Kõigepealt peate avama PhpStormi ja valige Run> Edit Configuration. Seal peaksite valima + (Lisa uus konfiguratsioon) ja valima "PHP Remote Debug".

Muutke konfiguratsiooni nimi nimeta nimeks millekski muuks. Valisin ilmselgetel põhjustel nime „Õpetus”;) Seejärel kontrollige valikut „Filtige silumisühendus IDE-võtme järgi”.

Valige nupp Serverid (…) ja seejärel + (Lisa uus server).

  • Nimetage oma server ümber mõneks rahustavamaks. Olen selles näites valinud “localbackend1”.
  • Väljale Host sisestage oma kohalik host. Määrake siluriks Xdebug.
  • Valige „Kasuta tee kaardistamist” ja osutage oma rakenduse kaustale.

Klõpsake nuppu Rakenda. Teid naasakse eelmisesse aknasse, kus näete, et IDE-võti on muudetav, ja nüüd peate sisestama võtme. Panin alati “phpstormi” või midagi muud sarnast.

Märkate, et IDE-võti “phpstorm” on juba teie failis 20-xdebug.ini:

xdebug.idekey=”phpstorm”

Samuti peaksite valima ainult ühe eksemplari, kuna see takistab teil sama projekti rohkem kui ühe eksemplari käivitamist.

Klõpsake nupul Rakenda ja Voilà!

Seadistamine on valmis!

Testimine ja pakkimine

Nüüd olete valmis. Peaksite nägema meie loodud õpetuse konfiguratsiooni PhpStormi paremas ülanurgas.

Saate seda testida, määrates oma projektis murdepunkti. Klõpsake juhendaja konfiguratsiooniaknas nuppu „viga“ ja käivitage seejärel rakendus.

See peaks olema kõik, kui kõik on korras, peaksite tabama murdepunkti.

Ja pidage meeles, et miski ei vea silmi tundes, kui näete jooksuaja väärtusi.

Aitäh, et lugesid! Vaadake veel selliseid artikleid ja muud lõbusat, mida ma oma Githubi profiilil teenin: //github.com/GoranAviani