ServBay'de Üçüncü Parti PHP Uzantısı Nasıl Yüklenir
ServBay, güçlü bir yerel Web geliştirme ortamıdır ve birçok yaygın PHP uzantısını önceden yüklenmiş olarak sunar. Kullanıcılar genellikle ServBay arayüzü üzerindenPaketler (Packages) -> Diller (Languages) -> PHP Sürümü -> Uzantılar yolunu takip ederek ilgili uzantıları kolayca etkinleştirebilir.
Ancak, bazen geliştiricilerin ServBay’de varsayılan olarak bulunmayan üçüncü parti veya özel derlenmiş PHP uzantılarını yüklemesi gerekebilir. Bu dokümanda, örnek olarak ionCube Loader üzerinden, belirli bir PHP sürümü için bu tip uzantıların ServBay’e nasıl ekleneceği ayrıntılı olarak anlatılmaktadır. Buradaki süreç, diğer Zend uzantıları veya kendi derlediğiniz .so
dosyaları için de aynen geçerlidir.
Zend Uzantıları Hakkında Özel Not: ionCube Loader bir Zend uzantısıdır ve bu tür uzantılar PHP’nin Zend Engine’i ile daha derin entegrasyon sağlar. Bu nedenle, yapılandırma sırasında extension
yerine zend_extension
komutu kullanılmalıdır. Bu ikisi arasındaki ayrımı doğru yaptığınızdan emin olun.
Ön Koşullar
- macOS üzerinde ServBay yüklü ve çalışır durumda olmalıdır.
- Yönetici yetkiniz olmalı; sistem dosyalarına ve ServBay ayar arayüzüne erişebilmelisiniz.
- macOS Terminal uygulamasını kullanabiliyor olmalısınız.
- Yükleyeceğiniz üçüncü parti PHP uzantı dosyasına sahip olmalısınız (genellikle bir
.so
dosyasıdır) ve bu dosyanın, hedeflediğiniz ServBay PHP sürümü, mimarisi (Intel veya Apple Silicon) ve derleme seçeneğiyle (ör. NTS/ZTS) tam uyumlu olduğundan emin olmalısınız.
Dikkat: Mimarî Uyumluluk Hayati Öneme Sahiptir
ServBay, Intel (x86_64) ve Apple Silicon (ARM64; M1/M2/M3/M4 çipleri) mimarileri için doğal olarak derlenmiş PHP paketleri sunar. Bir .so
uzantı dosyasını yüklerken, dosyanın derleme mimarisinin ServBay'de çalıştırılan ilgili PHP paketinin mimarisiyle %100 uyumlu olduğuna emin olmalısınız.
Farklı mimarideki dosyalar bir arada kullanılamaz; mimari uyumsuzluğu PHP'nin başlatılamamasına veya çökmesine neden olur.
Bir dosyanın mimarisini file
komutunu kullanarak tespit edebilirsiniz:
ServBay ile gelen PHP paketinin mimarisini kontrol edin (PHP sürümünüzü
8.3
olan yere uygun şekilde değiştirin):bashfile /Applications/ServBay/package/php/8.3/current/bin/php
1Çıktı örnekleri:
/Applications/ServBay/package/php/8.3/current/bin/php: Mach-O 64-bit executable arm64 # Apple Silicon ARM64 mimarisi
1veya
/Applications/ServBay/package/php/8.3/current/bin/php: Mach-O 64-bit executable x86_64 # Intel x86_64 mimarisi
1İndirdiğiniz veya derlediğiniz
.so
uzantı dosyasını kontrol edin (xdebug.so
yerine kendi dosya adınızı kullanın):bashfile xdebug.so
1Çıktı örnekleri:
xdebug.so: Mach-O 64-bit bundle arm64 # Apple Silicon ARM64 mimarisi
1veya
xdebug.so: Mach-O 64-bit bundle x86_64 # Intel x86_64 mimarisi
1- ve 2. adımda çıkan mimari bilgilerinin birebir eşleştiğinden emin olun.
Kurulum Adımları
Adım 1: Üçüncü Parti Uzantı Dosyasını İndir (ionCube Loader Örneğiyle)
- ionCube Loader’ın resmi indirme sayfasını ziyaret edin. Kendi macOS mimarinize uygun sürümü seçin. macOS ARM64 (Apple Silicon M serisi çipler) için Darwin ARM64 sürümünü indirin. Doğrudan aşağıdaki bağlantıyı da kullanabilirsiniz (resmi siteden yeni sürümlerin çıkıp çıkmadığını kontrol etmeyi unutmayın; bu bağlantı bir örnektir): https://downloads.ioncube.com/loader_downloads/ioncube_loaders_dar_arm64.tar.gz
- İndirdikten sonra elinizde örneğin
ioncube_loaders_dar_arm64.tar.gz
adlı bir.tar.gz
arşiv dosyası olacak.
Adım 2: Hedef PHP Sürümünü ve Uzantı Kurulum Dizini'ni Belirle
ServBay uygulamasını açın.
Sol menüden Paketler (Packages) -> Diller (Languages) seçeneğine tıklayın.
Sağdaki listeden ionCube Loader’ı yüklemek istediğiniz PHP sürümünü bulun (örnekte PHP 8.3). Sürüm numarasını not edin.
ServBay’de bu PHP sürümüne ait uzantı kurulum dizinini (
extension_dir
) bulun..so
dosyalarının standart konumudur ve ServBay'in kurulu olduğu yere, PHP sürümüne ve derleme tercihlerine göre değişiklik gösterir.En güvenilir yol, terminal komutuyla aramaktır:
Terminal uygulamasını açın, şu komutu çalıştırın (
/Applications/ServBay/package/php/8.3/current/bin/php
kısmını kendi hedef PHP sürümünüzle değiştirin):bash/Applications/ServBay/package/php/8.3/current/bin/php -i | grep extension_dir
1Komutun çıktısı şöyle olacaktır:
extension_dir => /path/to/extension/directory
. Örneğin:extension_dir => /Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831
1Bu tam yolu bir kenara not edin; sonraki adımlarda kullanacaksınız.
Adım 3: Loader Dosyasını Çıkar ve Yerleştir
Terminal uygulamasını açın.
İndirdiğiniz
.tar.gz
dosyasının bulunduğu dizinecd
ile gidin (genellikle~/Downloads
):bashcd ~/Downloads
1İndirdiğiniz arşivi açın:
bashtar -zxvf ioncube_loaders_dar_arm64.tar.gz
1Bu işlem ardından bulunduğunuz klasörde
ioncube
adlı bir dizin oluşacaktır.ioncube
klasörüne geçin:bashcd ioncube
1Klasörde farklı PHP sürümleri için hazırlanmış
.so
dosyalarını göreceksiniz; örneğinioncube_loader_dar_8.3.so
. Hedef PHP sürümünüzle uyumlu olan dosyayı bulun.Bu uyumlu
.so
dosyasını, ikinci adımda bulduğunuz PHP uzantı yükleme dizinine kopyalayın. Örneğin, hedef dizininiz/Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831/
ve PHP 8.3 için yükleme yapacaksanız:bashcp ioncube_loader_dar_8.3.so /Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831/
1- Buradaki hedef dizini, ikinci adımda
php -i
ile elde ettiğiniz gerçek uzantı yükleme dizini ile değiştirmeniz gerektiğini unutmayın. - Kopyaladığınız
.so
dosyasının PHP sürümü ve mimarisiyle TAM uyumlu olduğundan emin olun (ön koşullarda anlatılan mimari uyumluluğu tekrar kontrol edin).
- Buradaki hedef dizini, ikinci adımda
Adım 4: ServBay'de PHP'yi Yapılandırın
ServBay uygulamasına geri dönün.
Sol panelde Diller (Languages) altında yüklemek istediğiniz PHP sürümünü seçin (örneğin PHP 8.3).
Sağdaki yapılandırma bölümünde PHP sekmesine tıklayın.
Aşağı kaydırarak Additional Parameters (Ek Parametreler) alanına gelin.
Buraya, aşağıdaki satırı ekleyin ve ionCube Loader dosya adını belirtin:
inizend_extension = ioncube_loader_dar_8.3.so
1- Önemli: Buradaki
ioncube_loader_dar_8.3.so
ismini, kopyaladığınız dosya adı ile değiştirin. zend_extension
kullanmanız gerekiyor, çünkü ionCube Loader bir Zend uzantısıdır..so
dosyasını doğrudanextension_dir
içerisine kopyaladığınız için, tam yol yazmaya gerek yoktur; sadece dosya adı yeterlidir.- Alanda başka yapılandırma satırları varsa, her birini yeni satır şeklinde ekleyin.
(Ekran görüntüsü örnektir; arayüz güncel sürümlerde farklılık gösterebilir)
- Önemli: Buradaki
Sağ alttaki Kaydet (Save) butonuna tıklayarak değişiklikleri kaydedin.
Adım 5: PHP Servisini Yeniden Başlatın
ServBay’de Kaydet (Save) butonuna tıkladıktan sonra, ServBay yapılandırma değişikliğini otomatik tespit eder ve ilgili servisleri (PHP de dahil) sorunsuz bir şekilde yeniden başlatmayı dener. Genellikle manuel olarak ekstra bir yeniden başlatma gerekmez.
Adım 6: Yüklemenin Başarılı Olup Olmadığını Doğrulayın
ionCube Loader’ın başarıyla yüklenip yüklenmediğini kontrol etmek için iki temel yöntem vardır:
Komut Satırından Doğrulama:
Terminali açın.
Aşağıdaki komutu çalıştırarak, yüklenen PHP modüllerini listeleyin (doğru PHP sürümünü kullanıyor olun):
bash/Applications/ServBay/package/php/8.3/current/bin/php -m | grep -i ioncube
1Eğer yükleme başarılıysa
ionCube Loader
satırı görünecektir.Ayrıca şu komutla PHP sürüm bilgisi üzerinden kontrol edebilirsiniz:
bash/Applications/ServBay/package/php/8.3/current/bin/php -v
1Yükleme başarılıysa, aşağıdakine benzer bir çıktı olmalıdır (sürüm numaraları değişebilir):
PHP 8.3.16 (cli) (built: Jan 31 2025 15:09:39) (NTS) Copyright (c) The PHP Group Zend Engine v4.3.16, Copyright (c) Zend Technologies with the ionCube PHP Loader v14.4.0, Copyright (c) 2002-2024, by ionCube Ltd.
1
2
3
4with the ionCube PHP Loader ...
satırını kontrol edin.
phpinfo()
Fonksiyonu ile Doğrulama:- Web sitenizin ana dizininde (ör.
/Applications/ServBay/www/servbay.demo/
veya başka bir site dizini) bir PHP dosyası oluşturun (örn.info.php
). - Şu içeriği ekleyin:php
<?php phpinfo(); ?>
1
2
3 - Dosyayı tarayıcıda açın (örneğin
http://servbay.demo/info.php
, kendi alan adınız ile değiştirin). - Açılan
phpinfo()
sayfasında "ionCube" ifadesini arayın (tarayıcı arama kısayolu:Cmd + F
veyaCtrl + F
). Yükleme başarılıysa, ionCube Loader’a dair özel bir bilgi bloğu ve sürüm/bilgi detayları göreceksiniz.
- Web sitenizin ana dizininde (ör.
Yukarıdaki adımlarda ionCube Loader bilgisi görebiliyorsanız, uzantı başarıyla yüklenmiş demektir.
Sık Karşılaşılan Sorunlar ve Çözüm Önerileri
- PHP başlatılamıyor veya çöküyor: En yaygın neden, uzantı dosyasının mimarisinin, PHP paketinin mimarisiyle uyumlu olmamasıdır. Ön koşullardaki kontrolleri adım adım tekrarlayın; ayrıca PHP sürümü ve derleme opsiyonlarının uyumu da önemlidir.
- Yanlış
extension_dir
yolu:.so
dosyasını, hedef PHP sürümüne ait gerçekextension_dir
yoluna kopyaladığınızdan emin olun.php -i | grep extension_dir
ile öğrenilen yol en doğrusudur. - Hatalı yapılandırma komutu: ServBay’de Additional Parameters alanına doğru komutu yazdığınızdan emin olun. Zend uzantıları için
zend_extension = filename.so
, diğerleri içinextension = filename.so
kullanılmalıdır. Dosya ismi,extension_dir
içine kopyaladığınız dosya ile birebir eşleşmelidir (büyük-küçük harfe duyarlı olabilir). - Dosya izinleri sorunu: ServBay’i çalıştıran kullanıcının (genellikle sizin macOS kullanıcınız) kopyaladığınız
.so
dosyası ve ilgili klasörlere okuma izni olmalı. ServBay klasörüne dosya kopyalarken genellikle sorun olmaz; manuel olarak izinde bir değişiklik yaptıysanız kontrol edin. - ServBay yeniden başlatılmadı: ServBay çoğunlukla otomatik olarak yeniden başlatır; yine de değişiklikler etkili olmadıysa, uygulamadan ilgili servisleri elle durdurup başlatmayı veya ServBay’i tamamen kapatıp açmayı deneyin.
phpinfo()
’da bilgi yok: Kontrol ettiğiniz PHP sürümü ve sitesi, doğru şekilde yapılandırılmış olmalı. Birden fazla PHP sürümü veya site varsa doğru ortamı incelediğinizden emin olun.
Özet
Yukarıda sıralanan detaylı adımları izleyerek, ServBay’in yönettiği belirli PHP sürümlerine ionCube Loader veya diğer üçüncü parti .so
formatındaki PHP uzantılarını başarılı bir şekilde ekleyebilirsiniz. Buradaki en kritik noktalar: hedef PHP sürümünü doğru tanımlamak, uygun uzantı yükleme dizinini (extension_dir
) bulmak, mimariyle tam uyumlu uzantı dosyasını bu dizine kopyalamak ve ServBay yapılandırma arayüzünde Additional Parameters kısmında doğru yönergeyle (zend_extension
veya extension
) dosya adını belirtmektir. Bir sorunla karşılaşırsanız, özellikle mimari uyumluluğu ve dosya yollarını tekrar tekrar kontrol ederek, sorun giderme bölümünü izleyin.