Mengompilasi dan Menginstal Modul PHP Khusus di ServBay
ServBay adalah lingkungan pengembangan Web lokal yang kuat untuk macOS dan Windows, mengintegrasikan beragam paket perangkat lunak untuk memenuhi kebutuhan developer web masa kini. ServBay sudah dilengkapi PHP, Node.js, Python, Go, Java, database (MySQL, PostgreSQL, MongoDB), cache (Redis), serta web server (Caddy, Nginx, Apache) dan stack teknologi lainnya. Tiap paket mendukung multi-versi, sehingga Anda bebas mengganti lingkungan sesuai kebutuhan proyek.
Walaupun ServBay sudah menyediakan banyak modul PHP populer, terkadang dalam skenario pengembangan tertentu Anda perlu mengompilasi dan menginstal modul PHP tambahan untuk memperluas fungsionalitas atau integrasi dengan layanan pihak ketiga.
Dokumen ini merupakan panduan lengkap tentang cara mengompilasi dan menginstal modul PHP khusus untuk versi PHP Anda di ServBay. Contoh yang digunakan adalah proses kompilasi modul pemrosesan gambar populer imagick
dan driver database Microsoft SQL Server sqlsrv
, demi membantu Anda menambah fitur ke lingkungan PHP ServBay.
Prasyarat
Penting!
Langkah paling krusial sebelum mengompilasi modul PHP adalah menginisialisasi lingkungan kompilasi dan mengatur variabel sistem sesuai dokumen resmi ServBay. Kegagalan pada tahap ini hampir pasti akan membuat proses kompilasi gagal, muncul pesan error tidak menemukan perintah, library, atau file header.
Script inisialisasi build environment ServBay akan mengeset variabel seperti PATH
(ke toolchain ServBay), SERVBAY_PACKAGE_FULL_PATH
(ke root paket ServBay), dan CPU_NUMBER
(untuk kompilasi multi-core)—semua sangat penting untuk kompilasi selanjutnya.
Untuk langkah detail inisialisasi, mohon baca: Mengompilasi Paket di ServBay. Pastikan Anda benar-benar paham dan sudah mengikuti petunjuk tersebut dengan benar.
Pastikan Anda telah menyelesaikan inisialisasi environment ServBay dan variabel terkait sudah aktif sebelum melanjutkan tahap kompilasi modul.
Pentingnya Menentukan Versi PHP
Salah satu fitur utama ServBay adalah dukungan multi-versi PHP dalam satu sistem. Ini memudahkan developer mengganti versi PHP sesuai proyek. Namun, saat mengompilasi modul PHP, Anda wajib menggunakan versi PHP spesifik. Toolting seperti phpize
dan php-config
selalu terkait dengan versi PHP tertentu.
phpize
: Script untuk menyiapkan environment kompilasi ekstensi PHP dari fileconfig.m4
, menghasilkan scriptconfigure
standar—langkah awal pada kompilasi C/C++.php-config
: Script yang memberikan detail info konfigurasi tentang instalasi PHP yang dipilih—flag compiler, folder include, library, dan direktori instalasi ekstensi. Scriptconfigure
bergantung padanya untuk mendapatkan konfigurasi versi PHP target dengan benar.
Karenanya, semua eksekusi phpize
, php-config
, dan perintah build lain harus menggunakan path penuh sesuai versi PHP ServBay yang hendak dikompilasi.
Contoh Path
Jika ingin mengkompilasi modul untuk PHP 8.3 di ServBay:
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
Memilih path versi yang benar menjamin modul kompatibel dengan environment PHP target dan tidak terjadi error “symbol not found” saat runtime.
Contoh di dokumen ini menggunakan PHP 8.3 di ServBay. Saat eksekusi, ganti path dengan path versi PHP ServBay yang Anda gunakan.
Kompilasi Modul PHP imagick
Modul imagick
sangat populer untuk PHP, berbasis library ImageMagick yang handal dan menawarkan banyak fungsi pengolahan gambar. Dengan imagick
, Anda bisa melakukan resize, crop, konversi format, watermark, komposisi gambar, dan banyak operasi gambar kompleks langsung dari PHP. Berikut langkah detail kompilasi dan instalasi imagick
untuk PHP ServBay:
Langkah 1: Install Library ImageMagick
Modul PHP imagick
perlu library ImageMagick terinstall di sistem.
macOS
Disarankan gunakan Homebrew untuk instalasi. Jika belum punya Homebrew, kunjungi Situs Resmi Homebrew untuk panduan.
Buka Terminal dan jalankan:
bash
brew install imagemagick
1
Windows
Pengguna Windows perlu download dan install ImageMagick secara manual dari Download ImageMagick.
Pastikan memilih paket yang menyertakan library pengembangan dan tambahkan folder instalasi ke path environment system.
Langkah 2: Download Source Code imagick
Selanjutnya, unduh source code modul imagick
dari PECL. Kunjungi PECL imagick untuk memilih versi (biasanya versi stabil terbaru) dan ambil link downloadnya. Misal di sini pakai versi 3.7.0
:
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz
1
Langkah 3: Ekstrak Source Code dan Masuk ke Direktori
Ekstrak paket dan masuk ke folder source modul:
bash
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
1
2
2
Langkah 4: Persiapkan Environment Kompilasi (phpize)
Di dalam folder source, jalankan phpize
sesuai path penuh versi PHP target, misal PHP 8.3 dan variabel SERVBAY_PACKAGE_FULL_PATH
sudah di-set:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
Eksekusi phpize
akan membaca file config.m4
, menghasilkan script configure
dan file build lain — output terminal menandakan environment siap.
Langkah 5: Konfigurasi Build Option
Jalankan script configure
dan masukkan path penuh php-config
milik PHP target dengan parameter --with-php-config
:
bash
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
Script ini akan mengecek library & header ImageMagick, serta konfigurasi build PHP target lalu membuat file Makefile
. Jika terjadi error biasanya karena library atau path belum benar.
Langkah 6: Kompilasi dan Instal Modul
Setelah Makefile
dibuat, jalankan proses kompilasi dengan make
dan instal dengan make install
. Variabel ${CPU_NUMBER}
mempercepat proses kompilasi multi-core.
bash
make -j ${CPU_NUMBER}
make install
1
2
2
make install
akan menyalin file ekstensi ke direktori ekstensi PHP target:
- 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\
Path spesifik tergantung versi PHP & build.
Langkah 7: Aktifkan Modul
Setelah instalasi, aktifkan modul via GUI ServBay.
- Buka aplikasi ServBay
- Navigasi menu kiri ke
Bahasa
-PHP
-PHP 8.3
- Pada tab kanan pilih
PHP
, scroll ke bawah, pada “Parameter Tambahan”, masukkanextension=imagick.so
- Klik
Simpan
dan ServBay akan otomatis me-restart PHP dan membaca modul baru
Langkah 8: Verifikasi Modul
Setelah aktif, restart paket PHP ServBay supaya konfigurasi terbaru berlaku. Bisa dari panel ServBay atau command line (lihat dokumen ServBay untuk detail).
Verifikasi modul dengan command:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
1
Perintah ini memastikan menggunakan executable PHP pada versi ServBay yang tepat. -m
menampilkan modul PHP aktif. Jika imagick
aktif, output menampilkan namanya.
Untuk verifikasi lebih detail, buat file PHP di root web Anda (misal info.php
) dengan isi <?php phpinfo(); ?>
. Lokasi root web:
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Akses lewat browser di http://localhost/info.php
atau domain ServBay Anda. Cari kata "imagick" di output phpinfo()
untuk memastikan modul aktif beserta versi dan konfigurasinya.
Kompilasi Modul PHP sqlsrv/pdo_sqlsrv
Modul sqlsrv
dan pdo_sqlsrv
adalah ekstensi resmi PHP untuk koneksi SQL Server berbasis ODBC driver dari Microsoft. Untuk akses SQL Server dari PHP di ServBay, Anda wajib kompilasi dan instal modul ini. Berikut langkahnya:
Catatan Prasyarat Penting
Sebelum kompilasi, wajib install SQL Server ODBC driver dan tools dari Microsoft. Paket ini tidak dibundel ServBay dan harus diinstal manual.
macOS
Disarankan menggunakan Homebrew. Jika belum, kunjungi Situs Resmi Homebrew.
Instal driver dan tools dengan command ini; Anda mungkin perlu persetujuan lisensi (set variabel HOMEBREW_ACCEPT_EULA=Y
):
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
Biasanya terinstall di /opt/homebrew/
(Apple Silicon) atau /usr/local/
(Intel Mac). Pastikan path referensi kompilasi benar.
Windows
Download dan instal dari:
- Microsoft ODBC Driver for SQL Server
- Pilih driver sesuai OS, install dan pastikan terdeteksi sistem
Pastikan dependencies ini selesai sebelum melanjutkan.
Info
sqlsrv
dan pdo_sqlsrv
adalah dua modul berbeda—keduanya perlu dikompilasi terpisah, namun proses mirip. Berikut contoh untuk sqlsrv
.
Langkah 1: Install Microsoft ODBC driver dan tools
(Lihat petunjuk di atas—pastikan Homebrew sudah digunakan untuk install msodbcsql18
dan mssql-tools18
.)
Langkah 2: Download Source Code sqlsrv
Download source dari PECL: PECL sqlsrv, pilih versi terbaru. Contoh menggunakan 5.12.0
:
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
Langkah 3: Ekstrak dan Masuk ke Direktori
Ekstrak dan masuk ke folder source modul:
bash
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# pdo_sqlsrv mirip, contoh di bawah untuk sqlsrv saja
1
2
3
4
2
3
4
Langkah 4: Siapkan Environment Kompilasi (phpize)
Dari folder source, jalankan phpize
sesuai versi PHP target:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
Langkah 5: Konfigurasi Build (Include Path Dependency)
Jalankan script configure
dengan set environment variable LDFLAGS
dan CPPFLAGS
sesuai path library dan header dari Homebrew, agar configure
bisa menemukan dependency. Juga masukkan path penuh ke php-config
.
Contoh Homebrew di /opt/homebrew
:
bash
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}"
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
2
3
2
3
LDFLAGS
: Path library linker, diarahkan ke default library Homebrew.CPPFLAGS
: Path header C/C++, termasuk header unixODBC dependency dan include lain. Tambahkan${CPPFLAGS}
dan${LDFLAGS}
untuk opsi tambahan dari ServBay.
Langkah 6: Kompilasi dan Instal Modul
Setelah Makefile
dibuat, kompilasi dan instal dengan:
bash
make -j ${CPU_NUMBER}
make install
1
2
2
make install
akan menyalin file ekstensi hasil kompilasi ke folder ekstensi PHP ServBay.
Langkah 7: Aktifkan Modul
Aktifkan via GUI ServBay:
- Buka aplikasi ServBay
- Navigasi ke
Bahasa
-PHP
-PHP 8.3
- Pada tab kanan, klik
PHP
, lalu scroll ke bawah, di “Parameter Tambahan” masukkanextension=sqlsrv.so
danextension=pdo_sqlsrv.so
- Klik
Simpan
, ServBay me-restart PHP dan membaca modul baru
Langkah 8: Verifikasi Modul
Setelah aktif, restart paket PHP ServBay agar konfigurasi baru berlaku.
Verifikasi dengan command:
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
Jika sudah aktif, output akan menunjukkan modul sqlsrv
dan pdo_sqlsrv
. Anda juga bisa cek dengan fungsi phpinfo()
untuk detail status modul.
FAQ (Pertanyaan Umum)
- Q: Kompilasi error “Cannot find autoconf” atau serupa?
- A: Hampir pasti environment kompilasi ServBay belum terinisialisasi. Silakan cek bagian “Prasyarat” di awal dokumen dan ikuti Mengompilasi Paket di ServBay hingga selesai. Pastikan tool build (autoconf, automake, libtool, dll) terinstal dan variabel lingkungan sudah benar. Biasanya, menjalankan script inisialisasi lingkungan ServBay dan restart terminal akan menyelesaikan masalah.
- Q: Script
configure
gagal, tidak menemukan library atau header?- A: Artinya dependency atau path-nya belum benar, misal:
- Untuk
imagick
, pastikan ImageMagick dengan development library sudah terinstal. Pakai Homebrew:brew install imagemagick
. - Untuk
sqlsrv
, pastikan sudah install driver ODBC Microsoft (msodbcsql18
) danmssql-tools18
lewat Homebrew. Sebelum jalankan./configure
, cekLDFLAGS
danCPPFLAGS
sudah memasukkan path library/header dari Homebrew. - Pastikan environment ServBay sudah include path Homebrew (jika dependency diinstall via Homebrew), atau tambahkan manual path Homebrew ke environment ServBay.
- Untuk
- A: Artinya dependency atau path-nya belum benar, misal:
- Q: Error saat
make
ataumake install
?- A: Beberapa kemungkinan:
- Kurang dependency: Cek pesan error, biasanya disebutkan file/library yang kurang. Instal sesuai kebutuhan.
- Konfigurasi salah: Cek argumen saat
configure
, terutama path--with-php-config
. - Masalah permission:
make install
butuh hak akses untuk copy file ke folder ServBay. Jika ada error permission, cobasudo make install
(hati-hati dan pastikan Anda paham risikonya). - Masalah source: Pastikan file source module utuh dan tidak corrupt.
- A: Beberapa kemungkinan:
- Q: File
.so
sudah ada di direktori ekstensi dan di-enable di file.ini
, tapi modul tidak muncul diphp -m
atauphpinfo()
?- A:
- Penyebab utama: Belum restart paket PHP ServBay setelah mengubah file
.ini
. Pastikan Anda me-restart PHP, bukan sekedar refresh halaman atau restart web server. - Error di file
.ini
: Cek syntax dan formatting, pastikan benar (extension=modulename.so
). - Path direktori ekstensi salah: Cek apakah
extension_dir
diphp.ini
sudah menuju folder ekstensi ServBay, gunakanphp-config --extension-dir
untuk cek. - File modul corrupt/tidak kompatibel: Ulang kompilasi, pastikan versi source modul cocok dengan PHP. Cek error di log PHP (biasanya di folder log ServBay).
- Penyebab utama: Belum restart paket PHP ServBay setelah mengubah file
- A:
Kesimpulan
Dengan mengikuti langkah-langkah di panduan ini, Anda dapat mengompilasi dan menginstal modul PHP khusus seperti imagick
dan sqlsrv
di ServBay. Kunci sukses adalah:
- Inisialisasi environment ServBay secara lengkap dan benar—foundation untuk seluruh build berikutnya.
- Tentukan dan gunakan path versi PHP yang benar—untuk semua eksekusi
phpize
danphp-config
. - Tangani dependency eksternal modul—instal library/tools sistem yang dibutuhkan (ImageMagick, ODBC, dsb), dan masukkan path dependency saat
./configure
dengan variabel lingkungan sepertiLDFLAGS
,CPPFLAGS
. - Aktifkan modul dengan benar—edit/ tambahkan file ini di folder
conf.d
versi PHP, gunakan sintaksextension=modulename.so
. - Restart paket PHP ServBay—supaya konfigurasi dan modul baru aktif sepenuhnya.
ServBay sebagai lingkungan pengembangan lokal mendukung fleksibilitas untuk berbagai kebutuhan development Anda. Selain PHP module compiling, ServBay juga mendukung dan mengintegrasikan stack seperti MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust, dll. ServBay juga menawarkan fitur tambahan seperti pendaftaran sertifikat SSL asli via ACME, setting CORS mudah, backup otomatis (setting, website, database, SSL), reset password root database, serta ServBay User CA dan ServBay Public CA untuk pengembangan HTTPS lokal.
Semoga panduan ini bermanfaat untuk menambah fitur PHP di ServBay dan meningkatkan produktivitas web development Anda. Jika Anda mengalami masalah lainnya, silakan konsultasikan dokumen resmi ServBay atau sumber daya komunitas.