यूनिक्स / लिनक्स

Eclipse, XDebug ve SSHFS Kullanan Bir PRO Gibi PHP Uygulamalarını Uzaktan Hata Ayıklama

Buna ihtiyacım olan bir noktaya nasıl geldi? Eh, zaman zaman sorun yaşamaya neden olan yaklaşık 50 web sitesine sahip Frankfurt'ta özel bir Debian kutusuna sahip olmak, yankı ifadeleri kullanarak yapılan hata ayıklamanın lise dersleri için daha iyi olduğu konusunda acı verici bir sonuca yol açtı. Bugün hata ayıklama kurulumum kalmadıysa, muhtemelen bir işletim sistemini derlemede kodlamaya çalışmak gibi hissediyorum.

Peki, nasıl yapmayı öğreneceğinizin pratik bir senaryosu nasıl görünüyor? Eh böyle bir şey gider:

  1. Frankfurt'ta sunucumda canlı bir site bazı mistik bir şekilde başarısız olur.
  2. Başarısızlıktan haberdar edildim ve Eclipse'i hemen ateşledim.
  3. Sunucudaki XDebug uzantısını ateşledim.
  4. Eclipse kurulumum zaten hazır projeler ve hata ayıklama oturumları içeriyor, bu yüzden uygun olanı ateşledim.
  5. İki dakikaya kadar rahatsız olduğum web sitesinin koduna giriyorum ve genellikle birkaç dakika içinde böcek eziliyor.
  6. XDebug uzantısını kapatın ve hepsi normale döndü.

Ama yanılmayın, bu kurulum yalnızca canlı siteler için değil. PHP uygulamaları geliştirirken kesinlikle onu kullanıyorum. Bu örneği kullanmamın nedeni, kritik ve acil durumlarda sahip olduğu saf gücü size göstermesi ve bu müşterinin siteyi işletmesi için kapınıza çarpması durumunda ortaya çıkmasıdır.

Bu makalede verilen talimatlar Linux için kısalıklara yöneliktir. Windows için talimatları almak için orijinal öğreticiyi kontrol etmeniz gerekir. Orijinal öğreticinin bağlantısı imzada bulunur.

Eclipse'i

Yolculuğumuzdaki ilk adım, Eclipse IDE'yi PDT (PHP Development Tools) ile kurmaktır. İşletim sisteminiz için Eclipse PDT'nin en son sürümünü Eclipse indirme bölümünden alabilirsiniz. Debian kutumdaki kurulum prosedürü önemsizdi: indirme, çıkartma ve çalıştırma. Karşılaştığım tek sorun, Eclipse'i PDT ile Sun JRE'den başka bir şeyle tutarlı bir şekilde çalıştıramamaktı. Öyleyse, suçlu olabileceğin tuhaf hatalar alırsan.

XDebug'un Kurulumu

Bir sonraki şey PHP Apache uzantınıza hata ayıklama kabiliyeti eklemek. Debian kutusunun altında bu oldukça önemsiz hale geldi:

# yetenek yükleme php5-xdebug

Ancak, php.ini dosyasında bazı şeyler ayarlamanız da gerekiyor:

[xdebug] [19659002] xdebug.remote_enable = 1

xdebug.remote_host = "hostname.dyndns.org"

xdebug.remote_port = 9000

xdebug.remote_handler = "dbgp"

xdebug.remote_handler = "dbgp"

.log

xdebug.var_display_max_depth = 10

xdebug.var_display_max_data = 10240

xdebug.auto_trace = 1

xdebug.trace_output_dirce = 1

/ xdebug.so

xdebug.remote_host = "hostname.dyndns.org", masaüstü bilgisayarımdan php içindeki xdebug oturumuna uzaktan bağlanmamı sağlayan ev masaüstümü işaret ediyor. Ev makineniz için dyndns alan adınız yoksa, geçerli IP'nizi de girebilirsiniz. Tüm XDebug ayarları ile ilgili bilgileri XDebug dokümantasyon sayfasında bulabilirsiniz. XDebug eklentisini yükledikten sonra phpinfo () dosyasını yüklemeniz ve çıktının yukarıdakine benzer bir şey içerip içermediğini kontrol etmelisiniz:

Bu program Zend Scripting Dil Motorunu kullanıyor: Zend Engine v2.2.0, Telif Hakkı (c) 1998 -2008 Xdebug v2.0.3 ile Zend Technologies, Telif Hakkı (c) 2002-2007, Derick Rethans

Eğer XDebug'u yüklemeyi başarırsanız. Yükleyecek tek bir şey daha var ve bu SSHFS.

SSHFS'yi yükleme

Neden SSHFS? Şey … uzak sitenizde hata ayıklama yaparken Eclipse kaynak koduna erişebilmeli, çünkü kod yürütülürken sizi adım adım izleyebilmesinin tek yolu budur. Artık site uzak bir sunucuda olduğundan, makinenize kopyalayabilir veya bir şekilde Eclipse'in internet üzerinden erişebilmesi için yapabilirsiniz. Kaynakları makinenize kopyalarsanız, çalışan siteyi değiştirme olanağını kaybedersiniz, çünkü yalnızca kopyayı değiştirirsiniz. Bu yüzden kabul edebileceğimiz tek seçenek, internet üzerinden kaynaklara erişim sağlamak. Burası SSHFS'nin oynamaya geldiği yer. SSHFS, uzak ssh hesabınızı yerel dosya sisteminize bağlamanıza ve kendi makinenizdeymiş gibi erişmenize olanak sağlar.

Yine, Linux altında, oldukça önemsiz olduğu ortaya çıktı:

# yetenek yükleme sshfs

Ancak, yeteneklerin beni uyarmadığı bir sshfs bağımlılığı var. Sigorta çekirdeği modülüdür. Takıp takmadığınızı kontrol etmek için aşağıdakileri deneyin:

# lsmod grep sigortası

Şunun gibi bir şey görmelisiniz:

sigorta 43676 3 [1945901010] ]

Böyle bir şey elde ederseniz, çekirdeğe takılı modül var ve uzak ssh hesabınızı monte etmek için SSHFS kullanmaya hazırsınız.

Ssh hesabını bağlamak için aşağıdakileri yapmalısınız:

# sshfs vlatko @ xxx.xxx.xxx.xxx:/var/www/ / var / path / on / the / local / machine / -o gid = 44, uid = 1012, yeniden bağla -p 12345

(@ etrafında boşluk yoktur)

vlatko xxx.xxx.xxx.xxx : / var / www / (@ etrafında boşluk yok) kısmı oldukça açıklayıcı olmalı. Biçim, user @ ip: / path / siz / want / / / mount'tur. (@ etrafında boşluk yok)

İkinci parametre, yerel makinenizde uzak yolun monte edilmesini istediğiniz yol. Bu yol var olmalı ve boş bir klasör olmalıdır.

Üçüncü parametre, genellikle varsayılan 22'den çoğu web ana bilgisayarında daha belirsiz olan bir şeye değiştirilen ssh portunu belirtir.

Benim durumumda -o sonrası kısım, uzak kullanıcı kimliğini ve grup kimliğini yerel kullanıcı kimliğine ve grup kimliğine yeniden eşleştirmekle ilgileniyor. Açıkçası, bunları yerel makinenizdeki kullanıcıya ve grup kimliğine bağlamak istiyorsunuz.

Her şey doğru bir şekilde ayarlandıktan ve çalıştıktan sonra, çalıştırırken buna benzer bir şey elde etmelisiniz:

# mount

vlatko @ xxx.xxx.xxx.xxx:/var/www/ on / home / vlatko / mounts / abraham tipi fuse.sshfs (rw, nosuid, nodev, max_read = 65536, user = vlatko)

Dolayısıyla, bu kurulumu aldıktan sonra, web sitenizin kaynak kodunun bulunduğu klasörü eklemeniz gerekir. yerel makinenizdeki bir klasöre Web sitenizin / var / www / mysite / altında olduğunu varsayalım ve / var / www / yerel olarak / home / myself / mounts / myserver / altındaymışsınız. Bu nedenle / home / myself / mounts / myserver / altında, yerel makinenizde / home / myself / mounts / myserver / mysite altında bulunan / var / www / mysite / dahil tüm sitelere sahip olacaksınız.

Tüm bu dansları bir araya getirmek için Eclipse kullanma

Gerekli tüm parçalar kurulduktan ve çalıştıktan sonra onları birlikte çalıştırmamız gerekir. Bu ilk seferinde koşmak için biraz zor olabilir, ancak bir kez yaptıktan sonra geri dönmeyeceksiniz. Söz veriyorum.

Eclipse IDE'nizi çalıştırın ve yeni bir PHP projesi başlatın. (Dosya -> Yeni -> Proje ve ardından PHP -> PHP Proje'yi seçin. Adı girdikten sonra & # 39; Mevcut kaynaktan proje oluştur & # 39; u seçmeniz ve / home / myself / mounts / myserver /

Hata ayıklama yapılandırmasını oluşturma

Hata ayıklama yapılandırmalarını Çalıştır -> Hata Ayıklama yapılandırmaları altında oluşturulmuş

PHP Web Sayfasını sağ tıklatmanız ve Yeni'yi seçmeniz gerekir. ve Sunucu Hata Ayıklayıcı'nın altında XDebug'u seçin PHP Sunucusu için Yeni'yi seçmeniz ve bir ad ve web sitenizi yükleyen URL'yi girmeniz gerekir Dosya altında, ana sayfanızı yükleyen ve genellikle web sitenizin kök dizininde bulunan bir index.php olan dosyayı seçin Her zaman & # 39; İlk satırda kes & # 39; ve & # 39; Otomatik oluştur & # 39; un işaretini kaldırırım. ESP özellikle & # 39; otomatik oluştur & # 39; otomatik oluştur & kaldırır. web sitenizdeki ana sayfaya işaret edecek şekilde oluşturulan url’yi de silin.

Bu olmalı. ve çalışan bir hata ayıklama oturumu ile birlikte bir hata ayıklama perspektif açılmalıdır. Kaynak kodunuzun solundaki mavi dikey çizgiyi çift tıklatarak kesme noktalarını değiştirebilirsiniz. Genellikle sitemdeki index.php dosyasını açarak ve ilk hata ayıklayıcısını yalnızca hata ayıklayıcının çalışıp çalışmadığını test etmek ve ardından oradan benim yolumda çalışmak için ayarlayarak başlarım.

Orijinal eğitimimde ayrıca önceden yapılandırılmış ve test için hazır tüm gerekli yazılımları içeren bir VirtualBox LAMP Stack'a bir bağlantı da bulunuyor. Yığınla yapmanız gereken tek şey indirmek ve kurmak ve XDebug ve Eclipse ile PHP uygulamalarında hata ayıklamanın nasıl olduğunu test etmeye hazırsınız.