ServBay'de Özel PHP Modüllerinin Derlenmesi ve Kurulumu
ServBay, macOS ve Windows'u destekleyen güçlü bir yerel web geliştirme ortamıdır ve modern web geliştiricilerin ihtiyaçlarını karşılamak için kapsamlı bir yazılım paketi ile birlikte gelir. PHP, Node.js, Python, Go, Java, veritabanı sistemleri (MySQL, PostgreSQL, MongoDB), önbellek sistemleri (Redis) ve web sunucuları (Caddy, Nginx, Apache) gibi birçok teknoloji yığını hazır olarak sunulmaktadır. ServBay, her yazılım için çoklu versiyon desteği sağlayarak proje gereksinimlerinize göre ortamınızı kolayca değiştirme imkânı sunar.
ServBay, birçok yaygın PHP modülüyle birlikte gelse de, özel ihtiyaçlarınız doğrultusunda ek PHP modüllerini derleyip kurmak isteyebilirsiniz. Bu, PHP'nin fonksiyonlarını genişletmek veya belirli üçüncü parti servislerle entegrasyon sağlamak için gereklidir.
Bu rehberde, ServBay ortamında PHP sürümünüz için özel modül derlemesi ve kurulumu adım adım açıklanacaktır. Örnek olarak yaygın şekilde kullanılan imagick
(görüntü işleme) modülü ile sqlsrv
(Microsoft SQL Server sürücüsü) modülünün derleme süreci ayrıntılı olarak ele alınacaktır. Böylece ServBay ortamınızda PHP'yi ihtiyacınıza uygun şekilde genişletebilirsiniz.
Ön Koşullar
Önemli Uyarı
Herhangi bir PHP modülünü derlemeye başlamadan önce en kritik adım, ServBay resmi dökümantasyonunda anlatıldığı şekilde derleme ortamının başlatılması ve sistem ortam değişkenlerinin doğru şekilde ayarlanmasıdır. Bu adım, ServBay paketlerinin ve PHP modüllerinin başarıyla derlenmesi için şarttır. Eğer bu adım atlanır veya doğru yapılmazsa, takip eden derleme süreçlerinde komutların, kütüphanelerin ya da başlık dosyalarının bulunamaması gibi yüksek oranda hata alınır.
ServBay’in derleme ortamı başlatma betiği, PATH
(ServBay’in dahili derleme araçlarını gösterir), SERVBAY_PACKAGE_FULL_PATH
(ServBay paket dizinini gösterir) ve CPU_NUMBER
(çok çekirdekli derlemeler için kullanılır) gibi gerekli ortam değişkenlerini ayarlar. Bu değişkenler, sonraki derleme komutları için vazgeçilmezdir.
ServBay derleme ortamının nasıl başlatılacağına dair ayrıntılı yönergeler için mutlaka ServBay ile Yeniden Derleme dökümanına göz atın. Lütfen bu dokümanda açıklanan adımları tamamen anlayıp eksiksiz şekilde uyguladığınızdan emin olun.
Modül derlemesine geçmeden önce, yukarıda açıklanan ServBay derleme ortamı başlatma işlemini başarıyla tamamladığınızdan ve ilgili ortam değişkenlerinin mevcut terminal oturumunuzda doğru şekilde ayarlandığından emin olun.
PHP Sürümü Seçmenin Önemi
ServBay’in önemli avantajlarından biri, aynı sistemde birden fazla PHP sürümünün kurulup çalıştırılmasını desteklemesidir. Geliştiriciler farklı projeler için PHP sürümünü kolayca değiştirebilirler. Ancak PHP modülü derlerken özellikle o sürüm için işlem yapmanız gerekir. Derleme ortamının hazırlanması ve sürümün yapılandırma bilgisinin alınmasında kullanılan phpize
ve php-config
araçları, seçilen PHP sürümüne özel dosyalardır.
phpize
: PHP uzantı modülünün derleme ortamını hazırlar;config.m4
dosyasını okuyarak standartconfigure
betiğini oluşturur. Bu, C/C++ yazılımı derlemenin ilk adımıdır.php-config
: Belirli bir PHP sürümü hakkında derleyici bayrakları, include dizini, kütüphane dizini, uzantı dizini gibi ayrıntılı yapılandırma bilgilerini döner.configure
betiği, modülün hedef PHP sürümüyle uyumlu şekilde oluşturulabilmesi için bu aracı çağırır.
Bu nedenle, phpize
, php-config
veya başka PHP yapısıyla ilgili komutları kullanırken, derlemek istediğiniz PHP sürümünü tam yolu ile açıkça belirtmelisiniz.
Yol Örnekleri
ServBay’de kurulu PHP 8.3 için modül derlemek isterseniz:
macOS:
phpize
:/Applications/ServBay/package/php/8.3/current/bin/phpize
php-config
:/Applications/ServBay/package/php/8.3/current/bin/php-config
Windows:
phpize
:C:\ServBay\package\php\8.3\current\bin\phpize
php-config
:C:\ServBay\package\php\8.3\current\bin\php-config
Doğru sürümün seçilmesi, modülün hedef PHP ortamınızla uyumlu olmasını sağlar ve derleme/çalıştırma hatalarının önüne geçer.
Bu dokümandaki örnekler, ServBay’de kurulu PHP 8.3 sürümü üzerinden anlatılacaktır. Kendi ortamınızda, komut yollarını ilgili ServBay’deki kendi PHP sürümünüze göre değiştirin.
PHP imagick Modülünün Derlenmesi
imagick
, PHP'nin en popüler uzantılarından biridir ve güçlü ImageMagick komut seti kütüphanesi sayesinde kapsamlı görüntü işleme imkânı sunar. Resimleri yeniden boyutlama, kırpma, format dönüştürme, filigran ekleme, görsel birleştirme gibi birçok işlemi PHP üzerinden kolayca gerçekleştirebilirsiniz. ServBay ortamında belirli PHP sürümü için imagick
modülünü derleyip kurmak için adımlar şöyledir:
1. Adım: ImageMagick Bağımlılıklarını Kurun
imagick
modülü, sisteminizde yüklü olan ImageMagick kütüphanelerine ihtiyaç duyar.
macOS
Homebrew paket yöneticisi ile kolayca kurabilirsiniz. Homebrew kurulu değilse Homebrew Resmi Sitesi üzerinden kurulum yönergelerini takip edebilirsiniz.
Terminali açın ve şu komutu girin:
bash
brew install imagemagick
1
Windows
Windows kullanıcılarının ImageMagick’i elle indirip kurması gerekir. ImageMagick Resmi İndirme sayfasından uygun sürümü indirin.
Kurulumda geliştirme kütüphanelerinin de eklendiğinden ve kurulum yolunun sistem ortam değişkenlerine eklendiğinden emin olun.
2. Adım: imagick Modül Kaynağının Edinilmesi
PHP uzantıları (PECL) sitesinden imagick
modülünün kaynak paketini indirin. PECL imagick Sayfası yani genellikle en güncel kararlı sürümü seçebilirsiniz. Örneğin, son sürüm olan 3.7.0
ile:
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz
1
3. Adım: Kaynak Paketini Açın ve Dizine Girin
İndirme bitince, paketi tar
komutuyla açın ve kaynak dizinine geçin:
bash
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
1
2
2
4. Adım: Derleme Ortamını Hazırla (phpize
Kullanımı)
Modül kaynak dizinindeyken, hedef PHP sürümünüzün phpize
aracını kullanarak derleme ortamını hazırlayın. Örneğin, PHP 8.3 için (ve SERVBAY_PACKAGE_FULL_PATH
değişkeni ayarlı ise):
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
phpize
başarılı olursa, config.m4
dosyasını kontrol eder ve gerekli configure
betiği ile diğer yapım dosyalarını üretir. Terminalde derleme ortamının hazır olduğunu belirten bir çıktı görürsünüz.
5. Adım: Derleme Seçeneklerini Yapılandırın
Oluşan configure
betiği ile derleme seçeneklerini belirleyin. Burada, --with-php-config
parametresiyle PHP sürümünüzün php-config
yolunu belirtmek gerekir:
bash
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
Bu komut, ImageMagick kütüphanelerini/başlık dosyalarını ve PHP yapılandırmasını kontrol ederek uygun bir Makefile
oluşturur. Hata çıkarsa genellikle bağımlılıklar eksiktir ya da yollar yanlıştır.
6. Adım: Modülü Derleyin ve Kurun
Yapılandırma ve Makefile
oluşturulduysa, şu şekilde derleyin ve kurun:
bash
make -j ${CPU_NUMBER}
make install
1
2
2
make install
, modül dosyasını ServBay’deki ilgili PHP sürümünün uzantı dizinine kopyalar:
- macOS:
/Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/
- Windows:
C:\ServBay\package\php\8.3\current\lib\php\extensions\no-debug-non-zts-YYYYMMDD\
Dizinin adı PHP sürümü ve yapı seçimine göre değişebilir.
7. Adım: Modülü Aktifleştirin
Modül dosyası kurulduğunda, hedef PHP sürümünün yapılandırmasında etkinleştirmeniz gerekir. ServBay’in grafik arayüzü ile kolayca yapabilirsiniz.
- ServBay uygulamasını açın
- Sol menüden
Diller
>PHP
>PHP 8.3
kısmına gidin - Sağ panelde
PHP
sekmesine tıklayın, sayfanın sonuna inin ve “Ekstra Parametreler” kısmınaextension=imagick.so
ekleyin Kaydet
butonuna basın; PHP işlemi otomatik olarak yeniden başlayacak ve yeni modülü okuyacaktır
8. Adım: Modülün Yüklendiğini Doğrulayın
Modülü aktifleştirdikten sonra, ServBay’deki PHP paketini yeniden başlatın ki yeni yapılandırma geçerli olsun. ServBay yönetim panelinden ilgili PHP sürümünü bulup yeniden başlatabilirsiniz; veya ServBay’in komut satırı aracını kullanabilirsiniz (detay için ServBay dokümantasyonuna bakın).
PHP’yi yeniden başlatınca, komut satırından aşağıdaki şekilde imagick'in yüklü olup olmadığını kontrol edebilirsiniz:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
1
Burada tam olarak hedef PHP sürümünüzün yolunu kullanıyorsunuz. -m
parametresi tüm yüklü PHP modüllerini listeler. imagick yüklenmişse sonuçta “imagick” görmelisiniz.
Daha detaylı doğrulama için web projenizde bir PHP dosyası (örneğin info.php
) oluşturup içine <?php phpinfo(); ?>
kodunu ekleyebilirsiniz. Web projesinin varsayılan konumu:
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Sonrasında http://localhost/info.php
veya kendi ServBay domaininiz üzerinden ziyaret edip phpinfo()
çıktısında “imagick” aratarak modülün etkin olup olmadığını ve yapılandırma bilgilerini görebilirsiniz.
PHP sqlsrv/pdo_sqlsrv Modülünün Derlenmesi
sqlsrv
ve pdo_sqlsrv
, PHP için Microsoft SQL Server veritabanı bağlantısı ve işlemleri için kullanılan resmi eklentilerdir. Microsoft’un sunduğu ODBC sürücü üzerine kurulmuştur. ServBay ortamında PHP ile SQL Server’a bağlanmak için bu uzantıların derlenip kurulması gereklidir. ServBay’de bu modüllerin derlenmesi için aşağıdaki adımları izleyin:
Dikkat: Önemli Ön Koşul
sqlsrv
modülünü derlemeden önce, mutlaka Microsoft SQL Server ODBC sürücüsünü ve ilgili araçları kurmalısınız. Bunlar ServBay ile hazır gelmez; el ile kurulur.
macOS
Homebrew kullanılması tavsiye edilir. Homebrew kurulu değilse Homebrew Resmi Sitesi üzerinden kurun.
ODBC sürücüsünü ve araçlarını şu komutlarla kurabilirsiniz. Lisans koşullarına onay vermeniz gerekebilir (HOMEBREW_ACCEPT_EULA=Y
değişkeni ile):
bash
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18
1
2
3
2
3
Bu bağımlılıklar, genellikle /opt/homebrew/
(Apple Silicon Mac’ler) veya /usr/local/
(Intel Mac’ler) dizinlerine yüklenir. Derleme sırasında bu yolları doğru göstermelisiniz.
Windows
Windows’ta sürücüyü Microsoft’un sitesinden indirip kurmalısınız:
- Microsoft ODBC Driver for SQL Server sayfasından uygun sürümü indirin ve kurun
- Sürücünün sisteminizde kurulu ve tanımlı olduğundan emin olun
Derlemeden önce bu bağımlılıkların eksiksiz kurulu olduğundan emin olun.
İpucu
sqlsrv
ile pdo_sqlsrv
ayrı modüllerdir ve ayrı derlenmelidir; fakat prosesleri aynıdır, aşağıda sqlsrv
örneği üzerinden anlatılmıştır.
1. Adım: Microsoft ODBC Sürücüsünü ve Araçlarını Kurun
(Yukarıda anlatıldığı gibi Homebrew ile msodbcsql18
ve mssql-tools18
kurulu olmalı.)
2. Adım: sqlsrv Modülü Kaynaklarının Edinilmesi
PECL web sitesinden sqlsrv
ve pdo_sqlsrv
kaynak paketlerini indirin. PECL sqlsrv Sayfasından istediğiniz sürümün indirme linkini alın. Örneğin, güncel 5.12.0
sürümüyle:
bash
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
1
2
2
3. Adım: Paketi Açın ve Kaynak Dizine Girin
İndirdikten sonra paketi açıp dizine geçin:
bash
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# pdo_sqlsrv için de aynı adımlar geçerli, aşağıda sqlsrv örneği anlatılacak
1
2
3
4
2
3
4
4. Adım: Derleme Ortamını Hazırla (phpize
Kullanımı)
Modül kaynak dizininde, hedef PHP sürümünün yolunu kullanarak şu şekilde derleme ortamını başlatın:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
5. Adım: Derleme Seçeneklerini Yapılandır (Bağımlılık Yollarını Ekleyin)
sqlsrv
, Homebrew ile kurulan Microsoft ODBC sürücüsüne ve unixODBC kütüphanesine çok bağımlıdır. configure
çalıştırılmadan önce LDFLAGS
ve CPPFLAGS
değişkenleriyle Homebrew’deki kütüphane ve başlık dosyalarının yollarını belirtmelisiniz. Ayrıca yine --with-php-config
ile PHP sürümünüzün yolunu belirtmelisiniz.
Homebrew yolunuz Intel Mac’te genellikle /usr/local
, Apple Silicon’da /opt/homebrew
olur. Örneğin Apple Silicon için aşağıdaki gibi:
bash
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}" # Gerekli tüm başlıklar için /opt/homebrew/include eklendi
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
2
3
2
3
LDFLAGS
: Derleyiciye kütüphane yolu belirtir.-L/opt/homebrew/lib
Homebrew’in varsayılan kütüphane yoludur.CPPFLAGS
: Derleyiciye başlık dosyası yollarını belirtir.-I/opt/homebrew/opt/unixodbc/include
unixODBC’in başlık yoludur;-I/opt/homebrew/include
Homebrew’in genel başlık yoludur.${CPPFLAGS}
ve${LDFLAGS}
ServBay’in zaten ayarlanmış başka bayraklarını korur.
6. Adım: Modülü Derleyip Kurun
Makefile oluştuysa, şu komutlarla derleyip kurabilirsiniz:
bash
make -j ${CPU_NUMBER}
make install
1
2
2
Bu komutlar, derlenmiş modül dosyasını ServBay’deki PHP sürümünün uzantı dizinine kopyalar.
7. Adım: Modülü Aktifleştirin
Kurulumdan sonra, modülü hedef PHP yapılandırmasında etkinleştirin. ServBay grafik arayüzüyle kolayca etkinleştirebilirsiniz.
- ServBay uygulamasını açın
- Sol menüde
Diller
>PHP
>PHP 8.3
- Sağ panelde
PHP
sekmesindeyken, “Ekstra Parametreler” kısmınaextension=sqlsrv.so
veextension=pdo_sqlsrv.so
ekleyin Kaydet
butonuna basın; PHP otomatik yeniden başlamalıdır
8. Adım: Modülün Yüklendiğini Doğrulayın
Modülü etkinleştirdikten sonra PHP paketini yeniden başlatmayı unutmayın.
Sonrasında aşağıdaki komutlarla yüklenip yüklenmediğini doğrulayabilirsiniz:
bash
${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
1
2
2
Modüller başarılı şekilde yüklenirse çıktı da ilgili isimleri görürsünüz. Ayrıca phpinfo()
ile detayları görebilirsiniz.
Sıkça Sorulan Sorular (SSS)
- S: Derleme sırasında "Cannot find autoconf" veya benzeri hata alıyorum?
- C: Bu durum ServBay derleme ortamının doğru başlatılmadığını gösterir. Dokümanın başındaki “Ön Koşullar” bölümünü ve ServBay ile Yeniden Derleme kılavuzunu mutlaka uygulayın. Gerekli derleme araçlarının (autoconf, automake, libtool) kurulu ve ortam değişkenleriyle sisteminizde tanımlı olduğundan emin olun. Genellikle ServBay’in derleme ortamı başlatma betiğini çalıştırıp terminali yeniden başlatmak sorunu çözer.
- S:
configure
betiği hata veriyor ve kütüphane/başlık dosyası bulunamıyor diyor?- C: Hedef modülün bağımlı olduğu bir sistem kütüphanesi/başlık dosyası kurulu değil; ya da kurulu ama yolu doğru girilmedi.
- imagick için: Geliştirme kütüphanesi olan ImageMagick’in kurulu olduğundan emin olun (
brew install imagemagick
ile). - sqlsrv için: Homebrew ile Microsoft ODBC sürücüsü (
msodbcsql18
) vemssql-tools18
kesinlikle kurulu olmalı. Ayrıca,./configure
öncesiLDFLAGS
veCPPFLAGS
değişkenlerinin Homebrew kütüphaneleri ve başlık dosya yolları (örn./opt/homebrew/lib
,/opt/homebrew/opt/unixodbc/include
) ile doğru şekilde ayarlandığından emin olun. - ServBay ortam değişkenlerinde Homebrew yolu tanımlı olmalı (bağımlılık Homebrew ile kurulu ise) ya da Homebrew’in bin dizini ServBay’in
PATH
değişkenine eklenmeli.
- imagick için: Geliştirme kütüphanesi olan ImageMagick’in kurulu olduğundan emin olun (
- C: Hedef modülün bağımlı olduğu bir sistem kütüphanesi/başlık dosyası kurulu değil; ya da kurulu ama yolu doğru girilmedi.
- S:
make
veyamake install
aşamasında hata alıyorum?- C: Çoğunlukla şu nedenler yüzündendir:
- Eksik bağımlılık: Hata mesajında hangi dosya/kütüphane eksik olduğu söylenir; eksik olanı kurun.
- Yanlış yapılandırma:
configure
adımına ve özellikle--with-php-config
ile belirttiğiniz yolun doğru olduğuna bakın. ServBay’deki hedef PHP sürümünü gösterdiğinden emin olun. - Yetki sorunu:
make install
ile dosya ServBay’in PHP uzantı dizinine kopyalanır. Yetki eksikse hata alırsınız; o durumdasudo make install
deneyebilirsiniz (dikkatli olun, riskli olabilir). - Kaynak sorunu: İndirilen modül kaynak paketinde eksiklik/dosya bozulması olabilir.
- C: Çoğunlukla şu nedenler yüzündendir:
- S: Modülün
.so
dosyasını derleyip uzantı dizinine yerleştirdim ve.ini
dosyasında etkinleştirdim, fakatphp -m
veyaphpinfo()
'da modül görünmüyor?- C:
- En yaygın neden: ServBay’deki PHP paketini yeniden başlatmadınız.
.ini
dosyası değiştikten sonra ServBay arayüzünden veya komut satırı aracından mutlaka hedef PHP sürümünü tam olarak tekrar başlatın. Web sunucusunu (Caddy/Nginx) veya sayfayı yenilemek yeterli değildir; PHP paketinin kendisini yeniden başlatmalısınız. .ini
dosyası sentaks hatası: Dosyada yazım veya format hatası olmadığından emin olun (extension=modulename.so
).- Uzantı dizini yanlış:
php.ini
’dekiextension_dir
ayarının ServBay’in PHP uzantı dizinini doğru gösterdiğinden emin olun.make install
, yolun neresi olduğunuphp-config --extension-dir
çıktısına göre belirler. - Modül dosyası bozuk/uyumsuz: Yeniden derleyin, adımları doğru uygulayın. Kullandığınız kaynak kodun kendi PHP sürümünüz ile uyumlu olduğundan emin olun. ServBay log dizininde PHP hata/log dosyalarını da kontrol edin.
- En yaygın neden: ServBay’deki PHP paketini yeniden başlatmadınız.
- C:
Sonuç
Bu dökümandaki adımları izleyerek ServBay ortamınızda imagick ve sqlsrv gibi özel PHP modüllerini başarıyla derleyip kurabilirsiniz. Başarının temel adımları:
- ServBay derleme ortamının tam ve doğru şekilde başlatılması: Tüm derleme işlemlerinin sorunsuz yürütülmesi için şarttır.
- Doğru PHP sürüm yolunun kullanılması:
phpize
vephp-config
için, ServBay’de kurulu hedef PHP sürümünün tam yolunu seçtiğinizden emin olun. - Modülün harici bağımlılıklarının çözülmesi: Modül gereksinimlerine göre ImageMagick, Microsoft ODBC gibi dış sistem kütüphanelerini/araçlarını kurun;
./configure
adımında çevre değişkenleriyle veya yapılandırma parametreleriyle yollarını mutlaka belirtin. - Modülün doğru şekilde etkinleştirilmesi: Hedef PHP sürümünün
conf.d
dizininde .ini dosyası oluşturupextension=modulename.so
satırıyla yüklenmesini sağlayın. - ServBay’deki PHP paketinin mutlaka yeniden başlatılması: Böylece yeni uzantı yapılandırması geçerli olur.
ServBay, yerel geliştirme ortamı olarak size çok geniş bir esneklik sunar. PHP modülü derlemesinin yanı sıra, MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust ve daha pek çok teknoloji ServBay ile hazır gelir. Ayrıca gerçek SSL sertifikalarını ACME ile edinme, kolay CORS ayarı, otomatik veri yedekleme (ayarlar, siteler, veritabanları, SSL), root veritabanı şifresi sıfırlama, yerel HTTPS için ServBay User CA ve ServBay Public CA desteği gibi birçok yardımcı özellik ile güçlü ve verimli bir yerel geliştirme akışı elde edebilirsiniz.
Bu rehberin, ServBay’de PHP ortamınıza ihtiyaç duyduğunuz fonksiyonları eklemeniz ve daha verimli web geliştirme yapmanız için yardımcı olmasını umuyorum. Başka sorunlarla karşılaşırsanız, ServBay’in resmi dökümantasyonu veya topluluk destek kaynaklarını incelemeniz faydalı olacaktır.