ServBay'de (macOS) Özel PHP Modülü Derleme ve Yükleme
ServBay, macOS için özel olarak tasarlanmış güçlü bir yerel Web geliştirme ortamıdır ve modern Web geliştiricilerinin ihtiyaçlarını karşılamak üzere kapsamlı yazılım paketleriyle gelir. PHP, Node.js, Python, Go, Java, veri tabanları (MySQL, PostgreSQL, MongoDB gibi), önbellek (Redis) ve Web sunucuları (Caddy, Nginx, Apache) gibi birçok teknoloji desteğiyle birlikte gelir. ServBay, her paket için çoklu sürüm desteği sunarak, projelerinizin gereksinimlerine göre esnek bir şekilde ortam değiştirmenize imkan tanır.
ServBay, pek çok yaygın PHP modülünü önceden içeriyor olsa da, bazı gelişmiş kullanım durumlarında PHP işlevselliğini genişletmek veya belirli üçüncü parti servislerle entegrasyon sağlamak isteyebilirsiniz. Bunu yapmak için ek PHP modüllerini derlemeniz ve yüklemeniz gerekir.
Bu doküman, ServBay ortamınızda PHP sürümünüz için özel modülleri nasıl derleyip yükleyeceğinizi adım adım gösterir. Sıklıkla kullanılan imagick
görüntü işleme modülü ve sqlsrv
Microsoft SQL Server veritabanı sürücüsü gibi örneklerle sürecin tamamını ayrıntılı şekilde açıklayacağız. Böylece ServBay'deki PHP ortamınıza ihtiyaç duyduğunuz işlevleri kolayca ekleyebilirsiniz.
Önkoşullar
Önemli Uyarı
Herhangi bir PHP modülü derlemeye başlamadan önce, en kritik adım ServBay resmi belgelerindeki yönergeleri takip ederek derleme ortamınızı başlatmak ve gerekli sistem ortam değişkenlerini doğru şekilde kurmaktır. Bu adım, ServBay paketleri (PHP modülleri dahil) için derleme işleminin başarılı olması açısından temeldir. Bu adımı atlarsanız ya da doğru şekilde uygumazsanız, derleme sırasında komut, kütüphane veya başlık dosyası bulunamadı şeklinde ciddi hatalarla karşılaşırsınız.
ServBay’in derleme ortamı başlatma betiği; PATH
(ServBay’in dahili araçlarına işaret eder), SERVBAY_PACKAGE_FULL_PATH
(ServBay paket kök dizini), ve CPU_NUMBER
(çok çekirdekli derleme için kullanılır) gibi gerekli ortam değişkenlerini ayarlar. Bu değişkenler sonraki derleme komutları için kritik öneme sahiptir.
ServBay derleme ortamının nasıl başlatılacağına dair ayrıntılı adımları, resmi dökümantasyonda ServBay ile Yeniden Derleme Kullanımı başlıklı belgeyi okuyarak mutlaka takip edin. Tüm gereksinimleri tam olarak anladığınızdan ve eksiksiz şekilde uyguladığınızdan emin olun.
Modül derlemeye ilerlemeden önce, yukarıdaki ServBay derleme ortamı başlatma işlemini başarıyla tamamladığınızdan ve ilgili ortam değişkenlerinin geçerli terminal oturumunda doğru şekilde tanımlandığından emin olun.
PHP Sürümünü Belirtmenin Önemi
ServBay’in temel bir özelliği, aynı sistemde birden fazla PHP sürümü yükleyip çalıştırmayı desteklemesidir. Bu sayede geliştiriciler, farklı projeler için farklı PHP ortamlarına kolayca geçiş yapabilirler. Ancak, PHP modülü derlerken spesifik bir PHP sürümüne yönelik işlem yapmanız gerekir. Derleme ortamını hazırlama ve sürüm yapılandırma bilgileri alma işlemlerinde kullanılan anahtar araçlar olan phpize
ve php-config
, seçtiğiniz PHP sürümüne sıkı sıkıya bağlıdır.
phpize
: PHP eklenti modülü derleme ortamını hazırlayan betiktir.config.m4
dosyasını okur ve C/C++ yazılımlarındaki tipik ilk adım olan standartconfigure
betiğini üretir.php-config
: Seçilen PHP sürümünün kurulumuna dair yapılandırma bilgilerini (derleyici bayrakları, başlık dosyası dizinleri, kütüphane dizinleri, eklenti kurulum yeri vs.) sunar.configure
betiği, modülün hedef PHP sürümüyle uyumlu olmasını sağlamak için bu komutu çağırır.
Bu nedenle phpize
, php-config
veya bir başka PHP derleme ile ilgili komutları çalıştırırken, modülün hangi PHP sürümü için derleneceğini tam yol belirterek açıkça belirtmelisiniz. Örneğin, ServBay'de PHP 8.3 için modül derlemek istiyorsanız, /Applications/ServBay/package/php/8.3/current/bin/phpize
ve /Applications/ServBay/package/php/8.3/current/bin/php-config
yollarını kullanmalısınız. Doğru sürümü seçmek, çıkan modülün hedef ortamınızla uyumlu olmasını sağlar ve derleme hatalarını, çalıştırma sırasında “sembol bulunamadı” gibi hataları önler.
Bu dokümandaki örnekler PHP 8.3 sürümü baz alınarak anlatılmıştır. Gerçek kullanımda, ilgili komut yollarını kendi ServBay kurulumunuzdaki gerçek PHP sürüm yolları ile değiştirin.
PHP imagick Modülünü Derleme
imagick
modülü, PHP’de en popüler eklentilerden biridir ve güçlü ImageMagick komut satırı araçlarını temel alarak kapsamlı resim işleme yetenekleri sunar. Bu modül ile PHP’de yeniden boyutlandırma, kırpma, format dönüştürme, filigran ekleme, görüntü birleştirme gibi birçok işlemi gerçekleştirebilirsiniz. ServBay ortamında belirli bir PHP sürümü için imagick
modülünün nasıl derlenip kurulacağını adım adım anlatıyoruz:
1. Adım: ImageMagick Bağımlılığını Yükleyin
imagick
PHP modülü, sisteminizde ImageMagick kütüphanesinin kurulu olmasını gerektirir. macOS üzerinde Homebrew paket yöneticisi ile kurulum önerilir. Homebrew yüklü değilse Homebrew resmî sitesi üzerinden kurulum talimatlarını izleyin.
Terminali açıp aşağıdaki komut ile ImageMagick ve gerekli geliştirme kütüphanelerini yükleyin:
brew install imagemagick
2. Adım: imagick Modül Kaynak Kodunu Edinin
Sonrasında, PECL PHP Extension Library (PHP Eklenti Kütüphanesi) üzerinden imagick
modülünün kaynak kod paketini indirin. PECL imagick sayfasında gereken (genellikle en son kararlı sürüm) paket bağlantısını bulun. Aşağıda güncel bir sürüm olan 3.7.0
örnek verilmiştir:
wget https://pecl.php.net/get/imagick-3.7.0.tgz
3. Adım: Kaynağı Açın ve Dizinine Girin
İndirdiğiniz paketi tar
ile açın ve ardından dizinine geçin:
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
2
4. Adım: Derleme Ortamını Hazırlayın (phpize kullanarak)
Modül kaynağı dizinindeyken, ilgili PHP sürümünün phpize
aracı ile derleme ortamını hazırlayın. Mutlaka hedeflediğiniz PHP sürümünün tam yolunu kullanın. PHP 8.3 için ve SERVBAY_PACKAGE_FULL_PATH
ortam değişkeni doğru şekilde ayarlanmışsa:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
Komuttan sonra, phpize
kaynak paket içindeki config.m4
dosyasını bulup standart configure
betiği ve diğer yardımcı dosyaları üretir. Terminalde ortamın hazır olduğuna dair çıktılar görmelisiniz.
5. Adım: Derleme Seçeneklerini Yapılandırma
configure
betiği ile, derleme seçeneklerini tanımlayacaksınız. Bu aşamada --with-php-config
parametresi ile hedef PHP sürümünüzün php-config
yolunu açıkça belirtmelisiniz. Aksi hâlde, modül yanlış PHP yapılandırmasına göre derlenebilir.
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
configure
betiği, ImageMagick bağımlılıklarını, başlık dosyalarını arar ve uygun bir Makefile
üretir. Hata çıkarsa genellikle bir bağımlılık eksiktir veya yol yanlış verilmiştir.
6. Adım: Modülü Derleme ve Yükleme
Makefile
oluştuktan sonra derlemeyi başlatın. make
ile derleyin, ardından make install
ile modülü ilgili PHP eklenti klasörüne kopyalayın. ${CPU_NUMBER}
değişkeni (ServBay derleme ortamı başlatıldığında tanımlanır) ile paralel derleme hızlanır.
make -j ${CPU_NUMBER}
make install
2
make install
, derlenen imagick.so
dosyasını ilgili PHP sürümünün eklenti dizinine kopyalar (ör. /Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/
— tam yol ve dizin PHP sürümüne ve ayarlarına göre değişir).
7. Adım: Modülü Etkinleştirin
Modül dosyası kurulduktan sonra, hedef PHP sürümünün ayar dosyasında modülü aktif etmelisiniz. ServBay bunu grafik ara yüz üzerinden kolayca yapmanıza imkân tanır.
- ServBay uygulamasını açın
- Sol menüden
Diller
→PHP
→PHP 8.3
yolunu izleyin - Sağdaki sekmede
PHP
sekmesini seçin, en alta inip "Ek Parametreler" alanınaextension=imagick.so
girin Kaydet
düğmesine tıklayın, PHP işlemi otomatik olarak yeniden başlatılır ve eklenen modül yüklenir
8. Adım: Modül Yüklenmesini Doğrulayın
Modülü etkinleştirdikten sonra, ServBay içindeki PHP paketini mutlaka yeniden başlatın ki yeni ayarlar geçerli olsun. ServBay yönetici panelinden ilgili PHP paketine tıklayıp yeniden başlatabilirsiniz ya da ServBay’in komut satırı aracını kullanabilirsiniz (gerekli komutlar için resmi dökümanı inceleyin).
PHP yeniden başladıktan sonra şu komutla imagick
yüklenmiş mi kontrol edebilirsiniz:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
Buradaki $SERVBAY_PACKAGE_FULL_PATH/php/8.3/current/bin/php
ile ServBay’deki spesifik PHP sürümü çalıştırılır. -m
parametresi, bütün yüklenmiş PHP modüllerini listeler. Eğer imagick
başarıyla yüklendiyse çıktıda imagick
gözükecektir.
Daha ayrıntılı doğrulama için, Web kök dizininize (varsayılan /Applications/ServBay/www
) içerisinde <?php phpinfo(); ?>
içeren bir info.php
dosyası ekleyin. Sonra tarayıcıdan http://localhost/info.php
veya ilgili alan adı ile erişerek PHP bilgi sayfasında "imagick" arayın. Buradaki bilgilerden modülün yüklü olup olmadığını ve yapılandırmasını görebilirsiniz.
PHP sqlsrv/pdo_sqlsrv Modüllerini Derleme
sqlsrv
ve pdo_sqlsrv
PHP'nin, Microsoft SQL Server veritabanlarına bağlantı sağlayan resmi eklentileridir. Bu modüller, Microsoft’un ODBC sürücüsünü temel alır. ServBay ortamında SQL Server veritabanına bağlantı ihtiyacınız varsa, ilgili modülleri derleyip kurmanız gerekir. İşte ServBay'de sqlsrv
/pdo_sqlsrv
modüllerini derleme ve yükleme adımları:
Dikkat: Gerekli Önkoşullar
macOS ortamında sqlsrv
modülünü derleyip kurabilmeniz için, öncelikle Microsoft’a ait SQL Server ODBC sürücüsünü (msodbcsql18
) ve ilgili komut satırı araçlarını (mssql-tools18
) yüklemiş olmanız gerekir. Bu paketler ServBay ile gelmez, manuel yüklemelisiniz.
Bu bağımlılıkları Homebrew paket yöneticisi ile kurmanız önerilir. Homebrew yüklü değilse Homebrew resmî sitesi üzerinden kurulum gerçekleştirebilirsiniz.
Microsoft ODBC sürücüsü ve araçlarını yüklemek için Homebrew komutları aşağıda verilmiştir. Lisans sözleşmesini kabul etmek için (HOMEBREW_ACCEPT_EULA=Y) ortam değişkenini ayarlamanız gerekebilir.
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18
2
3
sqlsrv
modülünü derlemeden önce bu bağımlılıkları başarıyla kurduğunuzdan emin olun. Kurulum, Apple Silicon (M1/M2/M3) Mac'ler için genellikle /opt/homebrew/
, Intel Mac'ler için ise /usr/local/
dizinine yapılır. Derleme sırasında bu dizinler doğru şekilde belirtilmelidir.
İpucu
sqlsrv
ve pdo_sqlsrv
iki ayrı modüldür, ikisi de aynı şekilde derlenmeli, örnekte sadece sqlsrv
anlatılmıştır.
1. Adım: Microsoft ODBC Sürücüsü ve Araçlarını Yükleyin
(Yukarıdaki yönergeyi uygulayarak msodbcsql18
ve mssql-tools18
paketlerini Homebrew ile kurmayı tamamlayın.)
2. Adım: sqlsrv Modül Kaynağını Edinin
PECL üzerinden sqlsrv
ve pdo_sqlsrv
modüllerinin kaynağını edinin. PECL sqlsrv sayfasında ihtiyacınız olan sürümün bağlantısını bulun. Güncel bir sürüm olarak 5.12.0
şu şekilde indirilebilir:
wget https://pecl.php.net/get/sqlsrv-5.12.0.tgz # sqlsrv
wget https://pecl.php.net/get/pdo_sqlsrv-5.12.0.tgz # pdo_sqlsrv
2
3. Adım: Kaynağı Açın ve Dizinine Girin
Paketi açın ve dizinine geçin:
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# pdo_sqlsrv için de aynı işlemi uygulayın, aşağıda örnek sadece sqlsrv için gösterilmiştir.
2
3
4
4. Adım: Derleme Ortamını Hazırlayın (phpize kullanarak)
Kaynak kod dizinindeyken, yine hedeflediğiniz PHP sürümünün phpize
aracını çalıştırın. Aşağıdaki gibi:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
5. Adım: Derleme Seçeneklerini Yapılandırma (Bağımlılık Yolu Dahil)
configure
betiğini çalıştırırken, bağımlı olduğu Homebrew Microsoft ODBC sürücüsünün unixODBC kütüphanelerini doğru göstermek gerekir. Bundan ötürü, LDFLAGS
ve CPPFLAGS
ortam değişkenlerini ayarlayarak kütüphane ve başlık dosyası yollarını belirtin. Her zaman olduğu gibi, --with-php-config
ile hedef PHP’nin yapılandırma yolunu da tanımlayın.
Homebrew yolunuzu kontrol edin (Apple Silicon için çoğunlukla /opt/homebrew
, Intel için /usr/local
). Burada /opt/homebrew
baz alınmıştır:
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}" # Gerekli başlık dosyalarını bulmak için ek yol
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
2
3
LDFLAGS
: Bağlayıcıya, kütüphane dosyalarını araması gereken yeri belirtir.-L/opt/homebrew/lib
, Homebrew’un lib dizinini işaret eder.CPPFLAGS
: Derleyiciye başlık dosyalarının nerede olduğunu gösterir.-I/opt/homebrew/opt/unixodbc/include
unixODBC başlıklarını içerir,-I/opt/homebrew/include
ise gerekebilecek diğer başlık dosyalarını aratır.
6. Adım: Modülü Derle ve Yükle
Makefile
oluştuktan sonra:
make -j ${CPU_NUMBER}
make install
2
make install
, derlenen sqlsrv.so
ve (varsa) pdo_sqlsrv.so
dosyalarını ilgili PHP sürüm eklenti dizinine kopyalar.
7. Adım: Modülü Etkinleştirme
Modül dosyası kurulduktan sonra, hedef PHP sürümünüzün ayar dosyasında etkinleştirilmeli. ServBay'de bu işlemi grafik ara yüz ile gerçekleştirebilirsiniz.
- ServBay uygulamasını açın
- Sol menüden
Diller
→PHP
→PHP 8.3
yolunu izleyin - Sağdaki sekmede
PHP
sekmesini seçin, en alta inip "Ek Parametreler" kısmınaextension=sqlsrv.so
veextension=pdo_sqlsrv.so
satırlarını ekleyin Kaydet
e tıklayın, PHP işlemi otomatik olarak yeniden başlatılacak ve yeni modüller yüklenecektir
8. Adım: Modül Yüklenmesini Doğrulayın
Modülü etkinleştirdikten sonra, ServBay’deki PHP paketini mutlaka yeniden başlatın.
Yüklemenin başarılı olup olmadığını şu şekilde kontrol edebilirsiniz:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep sqlsrv
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep pdo_sqlsrv
2
Modül doğru şekilde yüklenmişse, çıktı içinde sqlsrv
ve pdo_sqlsrv
görüntülenecektir. Aynı şekilde, phpinfo()
çıktısından da modülün aktif olup olmadığını görebilirsiniz.
Sıkça Sorulan Sorular (SSS)
- S: Derlemede "Cannot find autoconf" veya benzeri hata alıyorum, neden?
- C: Bu neredeyse kesin ServBay derleme ortamı başlatılmadığı anlamına gelir. Belgenin başındaki "Önkoşullar" bölümüne dönün ve ServBay ile Yeniden Derleme Kullanımı belgesindeki adımları eksiksiz uygulayın. Otomasyon araçlarının (autoconf, automake, libtool vs.) doğru yüklendiğinden ve ortam değişkenlerine dahil edildiğinden emin olun. Genellikle başlatma betiğini çalıştırıp terminali yeniden açmak sorunu çözer.
- S:
configure
çalıştırıldığında, kütüphane veya başlık bulunamadı diye hata veriyor?- C: Modülün gereksinim duyduğu bir sistem kütüphanesi ya da başlık dosyası ya eksik yüklendi, ya da yol yanlış gösteriliyor.
imagick
için, ImageMagick geliştirme kütüphanesini kurduğunuzdan emin olun:brew install imagemagick
.sqlsrv
için, yukarıda belirttiğimiz gibi Homebrew ile Microsoft ODBC sürücüsü (msodbcsql18
) vemssql-tools18
yüklendiğinden mutlaka emin olun. Aynı zamanda,LDFLAGS
veCPPFLAGS
ortam değişkenlerinin doğru ayarlandığından, gerekli kütüphane ve başlık yollarının (ör./opt/homebrew/lib
,/opt/homebrew/opt/unixodbc/include
) içerildiğinden emin olun.- ServBay derleme ortamı ayarlarında Homebrew yolunun ekli olup olmadığını kontrol edin veya gerekirse Homebrew'un bin dizinini
PATH
‘e ekleyin.
- C: Modülün gereksinim duyduğu bir sistem kütüphanesi ya da başlık dosyası ya eksik yüklendi, ya da yol yanlış gösteriliyor.
- S:
make
veyamake install
başarısız olduysa ne yapılmalı?- C: Pek çok sebebi olabilir:
- Bağımlılık eksikliği: Hata mesajında eksik olan dosya veya kütüphane açıkça belirtilir, ona göre eksik bağımlılığı yükleyin.
- Yapılandırma hatası: Tekrar
configure
adımına dönün, özellikle--with-php-config
yolunun doğru PHP yolunu gösterdiğine emin olun. - İzin sorunu:
make install
ile .so dosyası ServBay eklenti dizinine kopyalanır. Eğer yetkiniz yetmezse, gerekirse (dikkatle kullanın)sudo make install
deneyebilirsiniz. - Kaynak dosya sorunu: İndirilen kaynak dosya hatalı/eksik olabilir. Dosyayı yeniden indirip, işlemleri baştan deneyin.
- C: Pek çok sebebi olabilir:
- S: Modül
.so
dosyası doğru yere kopyalandı ve.ini
dosyasında etkin oldu, amaphp -m
/phpinfo()
ile görünmüyorsa?- C:
- En yaygın sebep: PHP ana paketini ServBay’de yeniden başlatmadınız.
.ini
dosyanızda değişiklik yaptıktan sonra, ilgili PHP paketini ServBay yönetici paneli veya CLI ile yeniden başlatın. Web sunucularını (Caddy/Nginx) tekrar başlatmak yeterli değildir, kesinlikle PHP ana paketini yeniden başlatmanız gerekir. .ini
dosyası sözdizimi hatası: Yazım – biçim hatalarını,extension=modulename.so
olarak doğru yazdığınıza emin olun.- Eklenti dizini yolu yanlış:
php.ini
içindekiextension_dir
ayarının ServBay eklenti yoluna işaret edip etmediğini kontrol edin.make install
,php-config --extension-dir
çıktısına göre kurulum yapar, yol doğru mu bakın. - Modül dosyası bozuk veya PHP sürümüyle uyumsuz olabilir: Yeniden derleyin ve kaynak – PHP sürümü uyumunu denetleyin. PHP hata günlüklerinde (genelde ServBay
logs
dizininde) modül yükleme hatalarına dair bilgi olabilir.
- En yaygın sebep: PHP ana paketini ServBay’de yeniden başlatmadınız.
- C:
Sonuç
Bu rehberdeki adımları izleyerek, ServBay macOS yerel geliştirme ortamınızda imagick
ve sqlsrv
gibi özel PHP modüllerini başarıyla derleyip yükleyebilirsiniz. Kritik noktalar:
- ServBay derleme ortamını tam ve doğru şekilde başlatın: Tüm derleme işlemlerinin güvenli ve sorunsuz yürümesi için bu şarttır.
- Doğru PHP sürüm yolunu kullanın:
phpize
vephp-config
uygulamalarını her zaman tam ServBay yolu ile hedeflediğiniz PHP sürümüne işaret ederek kullanın. - Dış bağımlılıkları çözün: Modül gereksinimlerine göre ImageMagick, Microsoft ODBC sürücüsü gibi gerekli sistem kütüphane ve araçlarını yükleyin,
./configure
sırasında ortam değişkenleri (LDFLAGS, CPPFLAGS gibi) veya ek parametreler ile doğru yolu gösterin. - Modülü doğru şekilde etkinleştirin: Hedef PHP sürümünün
conf.d
dizininde veya ek parametrelerdeextension=modulename.so
satırı ile modül tanımlayın. - ServBay PHP paketini yeniden başlatın: Böylece modül yapılandırmasının aktif olmasını sağlayın.
ServBay, kapsamlı ve esnek bir yerel geliştirme ortamı olarak yalnızca PHP değil, aynı zamanda MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust gibi birçok teknolojiyi önceden entegre ve kullanıma hazır olarak sunar. Ayrıca ACME üzerinden gerçek SSL sertifikası alma, kolay CORS yapılandırması, otomatik yedekleme (ayarlar, siteler, veritabanı, SSL), veritabanı root şifre sıfırlama, ServBay User CA ve ServBay Public CA ile yerel HTTPS geliştirme gibi pratik özellikler de sağlar. Bunlarla verimli, pratik ve güçlü bir yerel geliştirme iş akışı kurabilirsiniz.
Umarız bu doküman, ServBay’de PHP ortamınıza işlev eklerken işinizi kolaylaştırır ve Web geliştirme sürecinizi hızlandırır. Başka sorunlarla karşılaşırsanız ServBay’in resmi dökümanını ve topluluk destek kaynaklarını incelemenizi öneririz.