Kompilasi dan Instalasi Modul PHP Kustom di ServBay (macOS)
ServBay adalah lingkungan pengembangan web lokal yang kuat, dirancang khusus untuk macOS, mengintegrasikan berbagai paket perangkat lunak guna memenuhi kebutuhan developer web modern. ServBay telah dilengkapi PHP, Node.js, Python, Go, Java, database (seperti MySQL, PostgreSQL, MongoDB), cache (Redis), serta web server (Caddy, Nginx, Apache), mendukung berbagai teknologi. Setiap paket perangkat lunak mendukung multi-versi, memungkinkan Anda beralih antar lingkungan sesuai kebutuhan proyek.
Meskipun ServBay sudah menyertakan banyak modul PHP populer, dalam beberapa kasus, Anda mungkin perlu melakukan kompilasi dan instalasi modul PHP tambahan untuk memperluas fitur PHP atau mengintegrasikan layanan pihak ketiga tertentu.
Dokumen ini menyajikan panduan rinci mengenai cara kompilasi dan instalasi modul kustom untuk PHP di lingkungan ServBay. Sebagai contoh, akan dibahas proses kompilasi untuk modul pengolahan gambar imagick
dan driver database Microsoft SQL Server sqlsrv
, sehingga Anda dapat menambahkan fitur yang dibutuhkan ke PHP di ServBay dengan mudah.
Prasyarat
Penting
Sebelum Anda mulai mengompilasi modul PHP apa pun, langkah paling krusial adalah melakukan inisialisasi lingkungan kompilasi serta menyetel variabel lingkungan sistem sesuai petunjuk resmi ServBay. Langkah ini merupakan fondasi keberhasilan proses kompilasi paket ServBay (termasuk modul PHP). Jika Anda melewati atau tidak melakukan langkah ini dengan benar, kemungkinan besar proses kompilasi akan gagal, muncul error seperti perintah, library, atau header file tidak ditemukan.
Script inisialisasi lingkungan kompilasi ServBay akan menyetel berbagai variabel penting, seperti PATH
(menuju tool build milik ServBay), SERVBAY_PACKAGE_FULL_PATH
(menuju direktori root paket ServBay), dan CPU_NUMBER
(untuk kompilasi multi-core). Variabel ini wajib untuk perintah kompilasi selanjutnya.
Untuk langkah detail inisialisasi lingkungan kompilasi ServBay, silakan baca dokumentasi: Kompilasi Ulang dengan ServBay. Pastikan Anda memahami seluruh tahapan dan mengikuti instruksi pada dokumen tersebut dengan cermat.
Sebelum melanjutkan kompilasi modul, pastikan Anda sudah berhasil inisialisasi lingkungan kompilasi ServBay dan seluruh variabel lingkungan terkait telah disetel pada sesi terminal Anda saat ini.
Pentingnya Menentukan Versi PHP
Salah satu fitur utama ServBay ialah mendukung pemakaian banyak versi PHP di satu sistem. Fitur ini memudahkan developer berpindah antar lingkungan PHP untuk berbagai proyek. Namun, ketika Anda hendak mengompilasi modul PHP, Anda harus melakukannya untuk versi PHP tertentu. Alat penting seperti phpize
dan php-config
sangat terkait dengan versi PHP tertentu.
phpize
: Skrip untuk mempersiapkan lingkungan kompilasi ekstensi PHP. Membaca fileconfig.m4
dan menghasilkan skripconfigure
standar, sebagai langkah awal umum pada proyek C/C++.php-config
: Skrip yang menyajikan informasi konfigurasi terperinci terkait instalasi PHP versi tertentu, seperti flag compiler, direktori include, direktori library, direktori instalasi ekstensi, dsb. Skripconfigure
akan memanggilphp-config
guna mendapatkan semua info penting agar modul sukses terbangun serta terhubung dengan benar ke PHP sasaran.
Karena itu, saat menjalankan phpize
, php-config
, maupun perintah kompilasi terkait PHP lainnya, wajib menentukan path lengkap terhadap versi PHP tujuan. Contohnya, jika ingin mengompilasi modul untuk PHP 8.3 yang terinstal di ServBay, gunakan: /Applications/ServBay/package/php/8.3/current/bin/phpize
dan /Applications/ServBay/package/php/8.3/current/bin/php-config
. Penentuan path yang tepat memastikan modul kompatibel dengan lingkungan PHP sasaran, meminimalkan risiko error kompilasi maupun masalah runtime seperti "symbol not found".
Seluruh contoh pada dokumen ini menggunakan PHP 8.3 pada ServBay sebagai ilustrasi. Saat praktik, silakan sesuaikan path perintah dengan versi PHP ServBay yang Anda gunakan.
Kompilasi Modul PHP imagick
Modul imagick
adalah ekstensi PHP populer yang didasarkan pada ImageMagick, menyajikan berbagai fitur pengolahan gambar canggih. Melalui imagick
, Anda dapat melaksanakan resize, crop, konversi format, penambahan watermark, komposisi gambar, dan lain-lain langsung lewat PHP. Berikut ini tahapan lengkap kompilasi dan instalasi imagick
untuk PHP versi tertentu pada ServBay:
Langkah 1: Instalasi Library ImageMagick
Modul PHP imagick
membutuhkan library ImageMagick yang terinstal di sistem. Pada macOS, sebaiknya gunakan Homebrew untuk instalasi.
Buka terminal dan jalankan perintah berikut untuk instalasi ImageMagick serta library pengembangnya:
bash
brew install imagemagick
1
Langkah 2: Ambil Source Code imagick
Unduh source code modul imagick
dari situs PECL. Buka PECL halaman imagick, pilih versi yang dibutuhkan (umumnya versi stabil terbaru), lalu salin link untuk unduh. Contoh di bawah memakai versi 3.7.0
:
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz
1
Langkah 3: Ekstrak & Masuk ke Direktori Source
Setelah unduhan selesai, ekstrak dengan tar
lalu masuk ke direktori hasil ekstraksi:
bash
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
1
2
2
Langkah 4: Persiapan Lingkungan Kompilasi (dengan phpize)
Setelah di dalam direktori, gunakan tool phpize
dari versi PHP tujuan (harus full path). Misalnya untuk PHP 8.3 dan sudah menyetel SERVBAY_PACKAGE_FULL_PATH
:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
Jika sukses, phpize
akan mendeteksi config.m4
dan membuat skrip configure
beserta berkas build lainnya. Terminal akan menampilkan info proses persiapan lingkungan kompilasi.
Langkah 5: Konfigurasi Opsi Kompilasi
Jalankan skrip configure
hasil dari langkah sebelumnya. Pastikan parameter --with-php-config
menunjuk ke path php-config
sesuai versi PHP target.
bash
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
Skrip configure
akan melakukan pemeriksaan dependensi (ImageMagick, dsb), menghasilkan file Makefile
jika berhasil. Jika ada error, biasanya penyebabnya adalah dependensi belum terinstal atau path yang salah.
Langkah 6: Kompilasi dan Instal Modul
Setelah konfigurasi sukses, lanjutkan dengan kompilasi:
bash
make -j ${CPU_NUMBER}
make install
1
2
2
make install
otomatis menyalin file imagick.so
hasil kompilasi ke direktori ekstensi PHP versi terkait di ServBay (misal /Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/
, path disesuaikan versi/opsi build PHP).
Langkah 7: Aktifkan Modul
Setelah file ekstensi terinstal, modul harus diaktifkan di konfigurasi PHP versi tujuan. ServBay menyediakan antarmuka grafis:
- Buka aplikasi ServBay
- Navigasi menu kiri ke
Bahasa
-PHP
-PHP 8.3
- Pada panel kanan, pilih tab
PHP
, scroll ke bawah, dan di bagian "Parameter tambahan", tambahkanextension=imagick.so
- Klik
Simpan
, PHP akan otomatis restart dan memuat modul baru
Langkah 8: Verifikasi Modul Terpasang
Setelah modul diaktifkan, restart PHP ServBay agar setting baru berlaku. Anda bisa gunakan panel manajemen ServBay (UI) untuk restart PHP, atau perintah CLI dari ServBay (lihat dokumentasi ServBay untuk detail).
Setelah restart, gunakan perintah berikut untuk cek apakah imagick
sudah termuat:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
1
Perintah ini menggunakan eksekusi PHP dari path khusus ServBay (bukan PHP sistem). -m
menampilkan daftar modul aktif. Jika sukses, akan muncul imagick
pada hasil output.
Cek lebih detail, buat file PHP (misal info.php
) di direktori web root (/Applications/ServBay/www
secara default), isikan <?php phpinfo(); ?>
, akses via browser di http://localhost/info.php
atau domain terkait. Cari "imagick" di output phpinfo()
untuk konfirmasi dan cek versi serta konfigurasinya.
Kompilasi Modul PHP sqlsrv/pdo_sqlsrv
Modul sqlsrv
dan pdo_sqlsrv
adalah ekstensi resmi PHP untuk koneksi serta operasi database Microsoft SQL Server, berbasis driver ODBC dari Microsoft. Jika Anda ingin PHP di ServBay terhubung ke SQL Server, Anda harus menginstal modul ini. Berikut tahapannya:
Penting: Syarat Wajib
Pada macOS, sebelum bisa mengkompilasi sqlsrv
, Anda wajib lebih dulu menginstal driver ODBC SQL Server dari Microsoft (msodbcsql18
) dan tool CLI terkait (mssql-tools18
). Paket ini tidak otomatis tersedia di ServBay, Anda harus install manual.
Disarankan instalasi dependensi via Homebrew. Jika perlu, kunjungi Situs Resmi Homebrew.
Perintah instalasi dengan Homebrew berikut. Anda mungkin harus setuju EULA (dengan set 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
Pastikan seluruh dependensi sukses terinstal sebelum lanjut kompilasi sqlsrv
. Umumnya terinstal pada /opt/homebrew/
(Apple Silicon Mac) atau /usr/local/
(Intel Mac). Path ini harus dirujuk dengan benar saat proses kompilasi.
Tips
sqlsrv
dan pdo_sqlsrv
adalah modul terpisah, harus dikompilasi masing-masing, namun langkahnya mirip. Panduan berikut menggunakan contoh sqlsrv
.
Langkah 1: Instalasi Driver ODBC Microsoft & Tools
(Pastikan sudah dilakukan seperti paparan di atas, gunakan Homebrew untuk msodbcsql18
dan mssql-tools18
.)
Langkah 2: Ambil Source Code sqlsrv
Unduh source modul sqlsrv
dan pdo_sqlsrv
dari PECL. Kunjungi PECL sqlsrv untuk mendapatkan link download. Berikut contoh dengan versi 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 & Masuk Direktori Source
Setelah unduh, ekstrak dan masuk ke direktori hasil ekstraksi:
bash
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# pdo_sqlsrv juga sama, contoh berikut cukup pakai sqlsrv
1
2
3
4
2
3
4
Langkah 4: Persiapan Lingkungan Kompilasi (phpize)
Di dalam direktori, jalankan phpize
dari versi PHP target, misal (jika sudah set SERVBAY_PACKAGE_FULL_PATH
):
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
Langkah 5: Konfigurasi Opsi Kompilasi (dengan Path Dependensi)
Saat jalankan configure
, modul sqlsrv bergantung pada driver ODBC Microsoft serta library unixODBC yang biasanya diinstal via Homebrew. Anda harus mengatur variabel lingkungan LDFLAGS
dan CPPFLAGS
sebelum menjalankan ./configure
, agar path library dan header ditemukan. Juga, tetap wajib gunakan opsi --with-php-config
.
Untuk path Homebrew (/opt/homebrew
untuk Apple Silicon, /usr/local
untuk Intel), sesuaikan pada contoh:
bash
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}" # Pastikan seluruh header ditemukan
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
2
3
2
3
LDFLAGS
: Untuk path pencarian library waktu link.CPPFLAGS
: Untuk path header file (pastikan ada unixODBC dan include lain).${CPPFLAGS}
&${LDFLAGS}
mempertahankan pengaturan lain dari environment ServBay.
Langkah 6: Kompilasi dan Instal Modul
Setelah configure
berhasil dan ada Makefile
:
bash
make -j ${CPU_NUMBER}
make install
1
2
2
Hasil kompilasi sqlsrv.so
dan (jika bersama) pdo_sqlsrv.so
akan disalin ke direktori ekstensi PHP ServBay versi terkait.
Langkah 7: Aktifkan Modul
Setelah instalasi, aktifkan modul lewat antarmuka ServBay:
- Buka aplikasi ServBay
- Navigasi ke
Bahasa
-PHP
-PHP 8.3
- Pada panel kanan, tab
PHP
, scroll ke bawah, di “Parameter tambahan”, tambahkanextension=sqlsrv.so
danextension=pdo_sqlsrv.so
- Klik
Simpan
, PHP akan restart otomatis dan memuat modul baru
Langkah 8: Verifikasi Modul Terpasang
Setelah aktivasi, selalu restart paket PHP ServBay (bisa lewat UI atau CLI).
Verifikasi dengan perintah:
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 berhasil, output akan menampilkan sqlsrv
dan pdo_sqlsrv
. Untuk cek detail, gunakan output dari fungsi phpinfo()
.
Pertanyaan Umum (FAQ)
- Q: Error "Cannot find autoconf" saat kompilasi?
- A: Ini menunjukkan lingkungan kompilasi ServBay belum diinisialisasi dengan benar. Silakan cek ulang “Prasyarat” di awal dokumen, dan ikuti Kompilasi Ulang dengan ServBay. Pastikan tool build (autoconf, automake, libtool, dst) sudah terinstal dan environment sudah benar. Umumnya, jalankan script inisialisasi ServBay lalu restart terminal untuk solusi.
- Q: Error saat ./configure, tidak ditemukan library/header tertentu?
- A: Artinya dependensi sistem untuk modul belum terinstal atau path salah.
- Untuk
imagick
, pastikan ImageMagick lengkap di sistem:brew install imagemagick
. - Untuk
sqlsrv
, wajib cek Homebrew sudah menginstal Microsoft ODBC Driver (msodbcsql18
) &mssql-tools18
. Juga cek bahwa sebelum./configure
, environmentLDFLAGS/CPPFLAGS
sudah benar menyertakan path library/include (cth /opt/homebrew/lib, /opt/homebrew/opt/unixodbc/include). - Pastikan path Homebrew sudah termasuk pada pengaturan environment ServBay, terutama jika dependensi dipasang lewat Homebrew; tambahkan direktori Homebrew ke
PATH
jika perlu.
- Untuk
- A: Artinya dependensi sistem untuk modul belum terinstal atau path salah.
- Q: Proses
make
ataumake install
gagal?- A: Bisa karena berbagai alasan:
- Kurang dependensi: Perhatikan pesan error, biasanya disebutkan file/library mana yang belum ada.
- Konfigurasi salah: Cek kembali parameter
configure
, terutama path di--with-php-config
harus tepat menuju versi PHP di ServBay. - Problem hak akses:
make install
menyalin file ke folder ekstensi PHP ServBay, jika hak akses/mount tidak benar bisa error. Cobasudo make install
(hati-hati dan pahami risikonya). - Source code rusak: Pastikan paket source code yang diunduh utuh.
- A: Bisa karena berbagai alasan:
- Q: Sudah ada file
.so
di folder ekstensi dan sudah di-enable di.ini
, tapi module tak muncul diphp -m
atauphpinfo()
?- A:
- Penyebab utama: PHP pada ServBay belum di-restart. Pastikan setiap edit
.ini
Anda restart paket PHP melalui panel ServBay atau CLI tool. Hanya refresh browser atau restart web server (Caddy/Nginx) tidak cukup, wajib restart PHP! - Error sintaksis
.ini
: Cek ejaan dan format di file.ini
(extension=namamodul.so
). - Path ekstensi salah: Pastikan setting
extension_dir
padaphp.ini
menunjuk ke direktori ekstensi PHP pada ServBay yang benar. Cek denganphp-config --extension-dir
. - Modul rusak/tidak kompatibel: Ulangi proses kompilasi, pastikan source sesuai versi PHP. Jika butuh, cek log error PHP di folder logs pada instalasi ServBay.
- Penyebab utama: PHP pada ServBay belum di-restart. Pastikan setiap edit
- A:
Kesimpulan
Dengan mengikuti panduan ini, Anda seharusnya dapat melakukan kompilasi dan instalasi modul PHP kustom (misal imagick
& sqlsrv
) di lingkungan lokal ServBay pada macOS. Kunci utama keberhasilan adalah:
- Inisialisasi lingkungan kompilasi ServBay secara benar dan lengkap: ini pondasi seluruh proses build.
- Selalu gunakan path PHP versi target secara eksplisit: untuk
phpize
&php-config
, pastikan path tertuju ke PHP tujuan. - Atasi dependensi eksternal modul: pasang library & tool (ImageMagick, ODBC Driver, dsb) sesuai kebutuhan modul, pastikan path dependency sudah benar via environment variable (
LDFLAGS
,CPPFLAGS
), atau option konfigurasi. - Aktifkan modul dengan benar: edit/buat file
.ini
di direktoriconf.d
PHP versi target, gunakanextension=namamodul.so
. - Restart paket PHP ServBay setiap kali ada pengaturan baru: agar modul bisa termuat dan berlaku tanpa masalah.
ServBay sebagai pengembangan lokal andal sangat fleksibel mendukung beragam kebutuhan Anda. Selain kompilasi modul PHP, ServBay juga mendukung dan telah menyertakan secara lengkap stack MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust, dan lainnya. Ada pula fitur lain seperti ACME (SSL) asli, konfigurasi CORS praktis, backup otomatis data (termasuk setelan, website, database, sertifikat SSL), reset password root database, serta ServBay User CA dan Public CA untuk pengembangan HTTPS lokal.
Semoga panduan ini membantu Anda memperluas fitur PHP di ServBay dan menunjang produktivitas web development Anda. Jika mengalami kendala lain, silakan konsultasikan dokumentasi resmi ServBay atau komunitas pengguna.