Bir PHP Eklentisinin Windows Kurulumu
Windows'ta bir PHP eklentisini yüklemenin iki yolu vardır: Ya eklenti
PHP içinde derlenir ya da DLL olarak yüklenir. Derlenmiş bir
eklentiyi yüklemek en kolay ve en çok tercih edilen yoldur.
Bir eklentiyi yüklemek için sistemde o eklentinin .dll
dosyasının bulunması gerekir. Tüm eklentiler otomatik olarak belirli
aralıklarla PHP Grubu tarafından derlenirler (bunları indirilmesi
sonraki bölümde açıklanmıştır.
Bir eklentiyi PHP içinde derlemek için Kaynak kod paketinden
derleme belgesine bakılabilir.
Bir eklentiyi tek başına (yani bir DLL olarak) derlemek için Kaynak kod paketinden derleme
belgesine bakılabilir. Eğer DLL dosyası ne PHP dağıtımında ne
de PECL sitesinde mevcutsa, eklentiyi kullanmaya başlamadan önce derlemek
gerekebilir.
Bir eklenti nereden bulunur?
PHP eklentileri genellikle php_*.dll biçeminde
isimlendirilir (yıldız iminin yerine eklentinin ismi gelir) ve
PHP\ext dizini altında bulunur.
PHP, geliştiricilerin büyük çoğunluğunca en faydalı bulunan eklentilerle
birlikte gelir. Bu tür paketlere toplu paket adı verilir.
Bununla birlikte, çekirdek eklentilerle sağlanmamış bir işlevselliğe
ihtiyaç duyulursa, bunları edinmek için
» PECL sitesinde bulunabilir.
PHP Eklentileri Halk Kütüphanesi (PECL - PHP Extension
Community Library) bir PHP Eklentileri deposu olup PHP eklentilerinin
geliştirilmesi ve indirilmesi için barındırma oluşumlarını ve bilinen
tüm eklentilerin bir dizinini içerir.
Kendi kullanımı için eklenti geliştirenler bu eklentinin PECL'de
barındırılmasını isteyebilir, böylece ihtiyaçları aynı olan
başkaları da bu eklentiden yararlanabilir. Bunun bazı olumlu yan etkileri
de vardır: Geribildirim, teşekkür, hata bildirimi, hatta düzeltme ve yama
alma şansı olur. Eklentiyi barındırılmak üzere PECL'ye göndermeden
önce » PECL adresinin incelenmesi önerilir.
Hangi eklenti indirilecek?
Çoğu zaman her DLL'nin çok sayıda sürümü vardır:
-
Farklı sürüm numaraları (en azından ilk iki sayı tutmalı)
-
Farklı evre güvenceli olanlar
-
Farklı işlemciler için olanlar (x86, x64, ...)
-
Farklı hata ayıklama seçenekli olanlar
-
vs.
Şuna da dikkat edilmelidir: Eklenti ayarları kullanılan PHP
çalıştırılabilirinin ayarları ile aynı olmalıdır. Aşağıdaki PHP betiği
PHP ayarlarının tamamını içerecektir:
Ya da komut satırından:
sürücü:\dizin\yolu\php\executable\php.exe -i
Bir eklentinin yüklenmesi
Bir PHP eklentisini yüklemenin en bilinen yolu eklentiyi php.ini
dosyasına eklemektir. Dikkatle incelenirse php.ini dosyasında bir çok
eklentinin zaten ekli olduğunu görülür. Eklentiyi etkin kılmak için
yapılacak tek değişiklik eklentinin belirtildiği satırın başındaki
noktalı virgülü silmek olacaktır.
PHP 7.2.0 ve üzeri sürümlerde, eklentinin dosya adı yerine eklenti adı da
kullanılabilir. Bu işletim sisteminden bağımsız ve daha
kolay olduğundan, özellikle yeni başlayanlar için, yüklenecek eklentileri
belirlemenin önerilen yolu haline gelir. Dosya adları, önceki sürümlerle
uyumluluk için desteklenmeye devam etmektedir.
;extension=php_eklenti.dll
extension=php_eklenti.dll
; PHP 7.2 ve sonrasında önerilen:
extension=eklenti
zend_extension=diğer_eklenti
Bununla birlikte, bazı HTTP sunucuları, PHP çalıştırılabilirinin yanına
konmuş php.ini dosyasını kullanmadıklarından eklentiyi göremeyebilir.
HTTP sunucusunun kullandığı php.ini dosyasının bulunduğu yer
phpinfo() işlevi kullanılarak şöyle öğrenilebilir:
Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\Program Files\PHP\8.2\php.ini
Eklentiyi etkin kıldıktan sonra php.ini dosyası kaydedilmeli ve HTTP
sunucusu yeniden başlatıldıktan sonra tekrar phpinfo()
çıktısına bakılmalıdır. Yeni eklentinin artık kendi bölümünde görünüyor
olması gerekir.
Sorunların çözümlenmesi
Eğer eklenti phpinfo() çıktısında görünmüyorsa sorunun
kaynağını bulmak için günlük dosyalarına bakılmalıdır.
PHP, komut satırından kullanılıyorsa (CGI), eklenti yükleme hatası
doğrudan ekranda görülebilir.
PHP bir HTTP sunucusu ile kullanılıyorsa günlük dosyalarının yeri ve
biçemi kullanılan yazılıma göre değişir. Günlüklerin yerini bulmak
için kullanılan HTTP sunucusunun belgelerine bakılmalıdır.
Sorunların çoğu DLL dosyasının ve bu dosyanın bağımlı olduğu DLL'lerin yeri
ile ilgilidir. php.ini
içindeki "extension_dir" yönergesinin değeri ile
derleme sırasında yapılan ayarlar arasında bir tutarsızlık olabilir.
Eğer sorun derleme sırasında yapılan ayarlarla uyumsuzluktan
kaynaklanıyorsa muhtemelen indirilen DLL dosyası doğru yere
konulmamış demektir. Eklentinin doğru ayarlarla tekrar indirilmesi
gerekebilir. Bu yapıldıktan sonra phpinfo()
çıktısının tekrar incelenmesi uygun olacaktır.