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
.sodosyası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.3olan yere uygun şekilde değiştirin):bashfile /Applications/ServBay/package/php/8.3/current/bin/php1Çıktı örnekleri:
/Applications/ServBay/package/php/8.3/current/bin/php: Mach-O 64-bit executable arm64 # Apple Silicon ARM64 mimarisi1veya
/Applications/ServBay/package/php/8.3/current/bin/php: Mach-O 64-bit executable x86_64 # Intel x86_64 mimarisi1İndirdiğiniz veya derlediğiniz
.souzantı dosyasını kontrol edin (xdebug.soyerine kendi dosya adınızı kullanın):bashfile xdebug.so1Çıktı örnekleri:
xdebug.so: Mach-O 64-bit bundle arm64 # Apple Silicon ARM64 mimarisi1veya
xdebug.so: Mach-O 64-bit bundle x86_64 # Intel x86_64 mimarisi1- 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.gzadlı bir.tar.gzarş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..sodosyaları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/phpkı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_dir1Komutun çı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-202308311Bu 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.gzdosyasının bulunduğu dizinecdile gidin (genellikle~/Downloads):bashcd ~/Downloads1İndirdiğiniz arşivi açın:
bashtar -zxvf ioncube_loaders_dar_arm64.tar.gz1Bu işlem ardından bulunduğunuz klasörde
ioncubeadlı bir dizin oluşacaktır.ioncubeklasörüne geçin:bashcd ioncube1Klasörde farklı PHP sürümleri için hazırlanmış
.sodosyalarını göreceksiniz; örneğinioncube_loader_dar_8.3.so. Hedef PHP sürümünüzle uyumlu olan dosyayı bulun.Bu uyumlu
.sodosyası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 -iile elde ettiğiniz gerçek uzantı yükleme dizini ile değiştirmeniz gerektiğini unutmayın. - Kopyaladığınız
.sodosyası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.so1- Önemli: Buradaki
ioncube_loader_dar_8.3.soismini, kopyaladığınız dosya adı ile değiştirin. zend_extensionkullanmanız gerekiyor, çünkü ionCube Loader bir Zend uzantısıdır..sodosyasını doğrudanextension_diriç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 ioncube1Eğer yükleme başarılıysa
ionCube Loadersatı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 -v1Yü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 + FveyaCtrl + 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_diryolu:.sodosyasını, hedef PHP sürümüne ait gerçekextension_diryoluna kopyaladığınızdan emin olun.php -i | grep extension_dirile öğ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.sokullanılmalıdır. Dosya ismi,extension_diriç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
.sodosyası 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.
