ServBay’de Xdebug Modülü Nasıl Etkinleştirilir ve Yapılandırılır
ServBay, güçlü bir yerel web geliştirme ortamı olarak PHP geliştiricileri için Xdebug hata ayıklama ve analiz aracını önceden entegre etmiş şekilde sunar. Xdebug’u etkinleştirmek, PHP uygulamalarınızın geliştirme verimliliğini önemli ölçüde artırır ve kod hata ayıklama, performans analizi ile kod kapsamı ölçümü süreçlerini çok daha pratik hale getirir. Bu makalede, ServBay’de Xdebug’un nasıl etkinleştirileceği ve yapılandırılacağı, ayrıca popüler entegre geliştirme ortamlarında (IDE) nasıl entegre edileceği ayrıntılı olarak açıklanmaktadır.
Xdebug Modülü Genel Bakış
Xdebug, PHP kodlarının hata ayıklaması ve performans analizi için özel olarak geliştirilmiş, özellik açısından zengin bir PHP eklentisidir. ServBay, Xdebug’u önceden entegre ederek geliştiricilerin manuel derleme ve kurulum sürecini ortadan kaldırır, bu da etkinleştirme ve yapılandırmayı oldukça basit hale getirir.
Xdebug’un Başlıca Özellikleri
- Breakpoint ile hata ayıklama: Kodun istediğiniz satırına durma noktası koyarak işlemi durdurabilir, mevcut değişken durumunu, çağrı yığınını ve kodu adım adım inceleyebilirsiniz.
- Adım adım hata ayıklama: Kod üzerinde birer birer (Step Over), fonksiyon içine girerek (Step Into) veya fonksiyondan çıkarak (Step Out) işlemler yaparak yürütme takibi sağlar.
- Değişken izlemesi: Hata ayıklama sırasında yerel ve global değişken değerlerini anlık olarak görüntüleyebilirsiniz.
- Yığın takibi: Hata veya istisna oluştuğunda ayrıntılı fonksiyon çağrı yığını bilgisi sunar, böylece hatanın kaynağını hızlıca bulabilirsiniz.
- Performans analizi (Profiling): Kodun çalışma süresine dair raporlar üretir, darboğazları tespit etmeye yardımcı olur.
- Kod kapsamı ölçümü (Code Coverage): Testlerin, program kodunda hangi bölümleri kapsadığını ölçer; test yeterliliği değerlendirmesinde kullanılır.
ServBay’de Xdebug’un Sürümü ve Port Haritalama
ServBay, farklı PHP sürümleri için uygun Xdebug modülünü önceden yüklenmiş halde sunar. Burada dikkat edilmesi gereken, her PHP sürümüne karşılık gelen Xdebug’un dinleme portunun (iç port), sürümle ilişkilendirilmiş ve bağımsız olduğudur. Bu detay, IDE üzerinde hata ayıklayıcı yapılandırırken çok önemlidir.
PHP Sürümü | Ön Yüklü Xdebug Sürümü | Varsayılan Xdebug Portu |
---|---|---|
PHP 5.6 | Xdebug 2.5.5 | 39056 |
PHP 7.0 | Xdebug 2.5.5 | 39070 |
PHP 7.1 | Xdebug 2.5.5 | 39071 |
PHP 7.2 | Xdebug 3.1.6 | 39072 |
PHP 7.3 | Xdebug 3.1.6 | 39073 |
PHP 7.4 | Xdebug 3.1.6 | 39074 |
PHP 8.0 | Xdebug 3.3.1 | 39080 |
PHP 8.1 | Xdebug 3.4.0 | 39081 |
PHP 8.2 | Xdebug 3.4.0 | 39082 |
PHP 8.3 | Xdebug 3.4.0 | 39083 |
PHP 8.4 | Xdebug 3.4.0 | 39084 |
PHP 8.5 | Xdebug 3.4.0 | 39085 |
Port Kuralı
Xdebug’un varsayılan dinleme portu kuralı 39000 + PHP alt sürüm numarası
şeklindedir. Örneğin, PHP 8.3 için port 39000 + 83 = 39083
, PHP 7.4 için ise 39000 + 74 = 39074
olur. Bu kuralı anlamak, farklı PHP sürümleri için Xdebug portunu hızlıca belirlemenizde yardımcı olur.
Xdebug Modülünü Nasıl Etkinleştirirsiniz?
ServBay’de Xdebug modülünü etkinleştirmek son derece kolaydır; en pratik yol ServBay’in grafik kullanıcı arayüzü (GUI) üzerinden işlemi gerçekleştirmektir. Dilerseniz konfigürasyon dosyasını elle düzenlemeyi de tercih edebilirsiniz.
ServBay GUI ile Xdebug’u Etkinleştirmek
En basit ve hızlı yöntem budur.
- ServBay uygulamasını açın.
- Sol taraftaki menüden
Diller
(Languages) bölümünü seçin. PHP
bölümünü açın ve Xdebug’u etkinleştirmek istediğiniz PHP sürümünü seçin, örneğinPHP 8.3
.- O sürümün sağındaki
Eklentiler
butonuna tıklayın. - Açılan eklenti listesinde
Xdebug
modülünü bulun. Xdebug
modülünün solundaki anahtarı kapalıdan açık konuma getirin.- Gerekirse parametreleri değiştirin.
- Ekranın altında bulunan
Kaydet
butonuna tıklayın. - ServBay, ilgili PHP işlemini otomatik olarak yeniden başlatıp modülü yükleyecektir.
Görsel: Eklentiler kısmında Xdebug’u etkinleştirme
Xdebug Modülünün Başarıyla Yüklendiğini Nasıl Doğrularsınız?
En kesin doğrulama yolu, phpinfo()
fonksiyonu ile PHP yapılandırmasını incelemektir.
- ServBay’in web sitesi kök klasöründe (varsayılan
/Applications/ServBay/www
) basit bir PHP dosyası oluşturun, örneğinphpinfo.php
. phpinfo.php
içerisine aşağıdaki kodu ekleyin:php<?php // Xdebug'un etkin olup olmadığını kontrol etmek için phpinfo(); ?>
1
2
3
4- Tarayıcıdan bu dosyayı açın, örneğin
https://servbay.demo/phpinfo.php
(Buradakiservbay.demo
kısmını kendi ServBay sitesinin alan adıyla değiştirin). - Açılan
phpinfo
sayfasında "Xdebug" anahtar kelimesini arayın. Xdebug başarıyla yüklendiyse, ayrı bir "Xdebug" başlıklı bölümde sürüm bilgisi ve yapılandırma parametreleri görüntülenir.
Görsel: phpinfo çıktısında Xdebug bilgisini bulma
IDE’de Xdebug ile Hata Ayıklama Ayarları
Xdebug’u etkinleştirdikten sonra, IDE’de kırılma (breakpoint) kullanarak hata ayıklamak için PHP yorumlayıcısı, hata ayıklayıcı ve sunucu eşlemelerini yapılandırmanız gerekir. Aşağıda, PHPStorm ve Visual Studio Code (VS Code) örnekleriyle açıklanmaktadır.
PHPStorm’da Xdebug Yapılandırması
PHPStorm, Xdebug desteği açısından en zengin IDE’lerden biridir.
PHPStorm Ayarlarını Açın: PHPStorm’u başlatıp
File
->Settings
(Windows/Linux) ya daPHPStorm
->Preferences
(macOS) menüsünden ayarları açın.PHP CLI Yorumlayıcısı Ayarı:
Languages & Frameworks
->PHP
bölümüne gidin.CLI Interpreter
kısmında sağdaki...
butonuna tıklayın.- Açılan pencerede
+
ile yeni bir yerel yorumlayıcı ekleyin. - ServBay’deki ilgili PHP sürümünün CLI dosya yolunu belirtin, örneğin
/Applications/ServBay/package/php/8.3/8.3.7/bin/php
(Sürüm numarası ServBay’in güncel halinde farklı olabilir). - PHPStorm, yorumlayıcı sürümünü ve eklentileri otomatik olarak algılayacaktır; Xdebug dahil.
OK
ile kaydedin.Görsel: PHPStorm’da ServBay PHP CLI yorumlayıcı ayarı
Xdebug Hata Ayıklayıcı Parametrelerinin Yapılandırılması:
Languages & Frameworks
->PHP
->Debug
bölümüne gidin.Xdebug
kısmındaDebug Port
olarak ilgili PHP sürümüne ait Xdebug portunu girin (ör. PHP 8.3 için39083
). Bu portunxdebug.client_port
ile aynı olduğuna emin olun.Can accept external connections
seçeneğini işaretleyin.Apply
ve ardındanOK
ile kaydedin.Görsel: PHPStorm’da Xdebug dinlenme portu yapılandırması
PHP Web Sunucusunda Yol Eşlemesi Ayarı:
Languages & Frameworks
->PHP
->Servers
bölümüne gidin.- Sağdaki
+
ile bir sunucu ekleyin. - Sunucu adı girin (örn.
ServBay Localhost
). Host
olarak ServBay’de tanımlı web sitesi alan adını girin (örn.servbay.demo
).Port
kısmına sitenin kullandığı portu yazın; genellikle443
(HTTPS) veya80
(HTTP).Debugger
olarakXdebug
seçin.Use path mappings
kutusunu işaretleyin.- Yereldeki projenizin yolu (
Yerel kaynak dizini
) ile sunucudaki proje yolunun (Sunucudaki mutlak yol
) bire bir eşleştiğinden emin olun. Örneğin, projeniz/Applications/ServBay/www/myproject
konumundaysa vehttps://servbay.demo/
adresinden erişiyorsanız, yerel yol/Applications/ServBay/www/myproject
sunucuda/
ile eşleşmelidir. Alt alan adında ise mantık aynıdır. Yol eşlemesinin doğruluğu, Xdebug’un sağlıklı çalışmasının anahtarıdır. OK
ile ayarı kaydedin.Görsel: PHPStorm’da sunucu ve yol eşleme ayarları
Hata Ayıklama Oturumunu Başlatma:
- PHPStorm’da, hata ayıklamak istediğiniz dosyayı açın.
- Satır numarasının yanında kırmızı bir daireye tıklayarak breakpoint ekleyin.
- Üst araç çubuğundaki
Start Listening for PHP Debug Connections
(böcek ikonu) butonuna tıklayın. Yeşil olduğunda PHPStorm dinleme modundadır. - Tarayıcıdan uygulamanıza gidin (örn.
https://servbay.demo/index.php
). - Ayarlar eksiksizse, Xdebug otomatik olarak PHPStorm’a bağlanır ve breakpoint’te işlemi durdurur; kodunuzu rahatlıkla inceleyebilirsiniz.
Görsel: PHPStorm’da Xdebug dinleme başlatmak
Visual Studio Code (VS Code)’da Xdebug Yapılandırması
VS Code, eklentiler yardımıyla Xdebug hata ayıklamayı oldukça iyi destekler.
PHP Debug Eklentisini Kurun:
- VS Code’u açın.
- Eklenti görünümüne geçin (
Ctrl+Shift+X
veyaCmd+Shift+X
). - "PHP Debug" aratıp, Felix Becker’in eklentisini yükleyin.
launch.json
Dosyasını Yapılandırın:- PHP projenizi açın.
- Çalıştır ve Hata Ayıkla görünümüne geçin (
Ctrl+Shift+D
veyaCmd+Shift+D
). - Üstteki dişli simgesine tıklayıp "PHP" seçin. Proje kök klasöründe
.vscode/launch.json
oluşacaktır. launch.json
dosyasındaki "Listen for Xdebug" konfigürasyonunda,port
değerinin ServBay’de etkin PHP sürümünün Xdebug portu ile aynı olduğuna emin olun (örn. PHP 8.3 için39083
).- Yol Eşlemesi (Path Mapping) Yapılandırması: VS Code ile Xdebug arasında doğru hata ayıklama için şarttır.
pathMappings
kısmında ServBay sunucusundaki proje yolunu, bilgisayarınızdaki proje yoluyla eşleştirin.jsonProje yapınız ve ServBay sitesi ayarınıza uygun şekilde{ "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 39083, // PHP sürümünüze göre bu portu güncelleyin "pathMappings": { // ServBay kök klasöründeki proje yolu ile bilgisayarınızdaki yolu eşleştirin // Örneğin projeniz /Applications/ServBay/www/myproject üzerinde ve // https://servbay.demo/ adresini kullanıyorsanız, sunucu kökü '/' yerelde proje köküyle eşleşir "/": "${workspaceRoot}" // Eğer /Applications/ServBay/www/myproject ve https://myproject.servbay.demo/ kullanıyorsanız, // yine aynı şekilde '/' kökü proje kökünüze eşleşir // "/": "${workspaceRoot}" // Aynı şekilde geçerli olur } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 39083 // PHP sürümünüze göre bu portu güncelleyin } ] }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28pathMappings
değerini güncelleyin.${workspaceRoot}
genellikle VS Code’da açtığınız proje klasörünün köküyle aynıdır.
Hata Ayıklama Oturumunu Başlatın:
- VS Code’da PHP dosyanızı açın.
- Satır numarası yanına tıklayarak breakpoint ekleyin.
- Çalıştır ve Hata Ayıkla görünümüne geçin (
Ctrl+Shift+D
veyaCmd+Shift+D
). - Üstteki hata ayıklama konfigürasyonlarından "Listen for Xdebug"u seçin.
- Yeşil başlat simgesine tıklayın. VS Code’un alt kısmı turuncuya dönecek; bu, Xdebug isteğini dinlemeye başladığını gösterir.
- Tarayıcıda PHP uygulamanıza erişin; ayarlar doğruysa, Xdebug VS Code’a bağlanır ve breakpoint’te işlemi durdurur.
Sıkça Sorulan Sorular (SSS)
S: Xdebug,
phpinfo()
ile görünmüyor mu?- C: ServBay GUI’den veya elle
xdebug.ini
dosyasından Xdebug’u etkinleştirdiğinizden emin olun. - İlgili PHP servisini yeniden başlattığınızdan emin olun.
xdebug.ini
dosya yolunun doğru vezend_extension = xdebug.so
satırının aktif olduğundan emin olun.- ServBay günlük dosyalarında (
/Applications/ServBay/logs/php/<sürüm>/error.log
) Xdebug yükleme hatası olup olmadığını kontrol edin.
- C: ServBay GUI’den veya elle
S: IDE’de breakpoint ekledim ama program durmuyor?
- C: IDE’nin Xdebug isteği dinlediğinden emin olun (PHPStorm’da böcek ikonu yeşil, VS Code’da alt kısım turuncu).
- IDE’de ayarlanan Xdebug portunun, ServBay’deki
xdebug.client_port
ve ilgili PHP sürümüne ait port ile aynı olduğuna emin olun. - Yol eşlemelerinin (Path Mapping) IDE’de doğru olduğundan emin olun; sunucu ve yerel proje yolları doğru eşleşmeli. En sık yapılan hata budur.
- Güvenlik duvarının, IDE’nin Xdebug portunu (varsayılan
390xx
serisi) engellemediğinden emin olun. xdebug.ini
dosyasındaxdebug.start_with_request=trigger
kullanıyorsanız, tarayıcıda Xdebug Helper eklentisiyle veya URL’ye?XDEBUG_TRIGGER=1
ekleyerek tetikleyici göndermelisiniz.
S: Xdebug bağlantısı bir süre sonra kopuyor mu?
- C:
xdebug.ini
dosyasındaxdebug.remote_autostart
veyaxdebug.start_with_request
parametrelerini kontrol edin.yes
olarak ayarlanırsa, her istekte hata ayıklama başlayabilir.trigger
modunu kullanmak genellikle daha iyidir. - IDE’nin hata ayıklama ayarlarında zaman aşımı süresi varsa, kontrol edin.
- C:
Sonuç
ServBay’in önceden entegre edilmiş ve kolaylaştırılmış Xdebug yapılandırması sayesinde PHP geliştiricileri, Xdebug’u kullanmaya başlamak için karmaşık adımlarla uğraşmak zorunda kalmaz. İster GUI üzerinden sezgisel biçimde, ister yapılandırma dosyasını elle düzenleyerek ServBay’in farklı PHP sürümlerinde Xdebug’u dakikalar içinde etkinleştirebilirsiniz. PHPStorm, VS Code gibi güçlü IDE’lerle birleşen bu esneklik sayesinde, PHP kodunuzu daha hızlı hata ayıklayabilir, performansını analiz edebilir ve kaliteyi güvence altına alabilirsiniz. ServBay ve Xdebug’un birlikte kullanımı, yerel PHP geliştirme iş akışınızda büyük bir avantaj sunar.