Cara Memuat Ekstensi PHP Pihak Ketiga di ServBay
ServBay adalah lingkungan pengembangan web lokal yang sangat kuat dan telah dilengkapi dengan banyak ekstensi PHP populer. Biasanya, pengguna hanya perlu melakukan konfigurasi dan mengaktifkan ekstensi melalui menu Paket (Packages) -> Bahasa (Languages) -> Versi PHP -> Ekstensi di ServBay.
Namun, terkadang pengembang perlu memuat ekstensi PHP pihak ketiga atau ekstensi yang telah dikompilasi sendiri yang belum termasuk dalam ServBay secara default. Artikel ini akan memandu Anda secara rinci mengenai cara memuat ekstensi semacam ini untuk versi PHP tertentu di ServBay, menggunakan ionCube Loader sebagai contoh. Proses ini juga berlaku untuk ekstensi Zend lain atau file ekstensi .so
hasil kompilasi Anda sendiri.
Catatan khusus tentang ekstensi Zend: ionCube Loader merupakan ekstensi Zend, yang terintegrasi lebih dalam dengan Zend Engine PHP. Maka dari itu, saat melakukan konfigurasi, gunakan perintah zend_extension
, bukan extension
seperti pada ekstensi biasa. Pastikan membedakan dan menggunakan keduanya dengan benar.
Prasyarat
- Anda telah menginstal dan menjalankan ServBay di macOS.
- Anda memiliki hak administrator untuk mengakses file sistem dan antarmuka konfigurasi ServBay.
- Anda terbiasa menggunakan aplikasi Terminal di macOS.
- Anda telah menyiapkan file ekstensi PHP pihak ketiga (biasanya berformat
.so
) yang sepenuhnya kompatibel dengan versi PHP target pada ServBay, arsitektur (Intel atau Apple Silicon), dan opsi kompilasi (seperti NTS/ZTS).
Perhatian: Kompatibilitas Arsitektur Sangat Penting
ServBay menyediakan paket PHP asli untuk arsitektur Intel (x86_64) maupun Apple Silicon (ARM64, seperti chip M1/M2/M3/M4). Saat memuat file ekstensi .so
, pastikan arsitektur file .so
yang Anda gunakan sama persis dengan arsitektur paket PHP yang dijalankan di ServBay.
File dari arsitektur berbeda tidak boleh dipertukarkan; perbedaan arsitektur akan menyebabkan PHP gagal dijalankan atau crash.
Anda dapat menggunakan perintah file
untuk memeriksa arsitektur file executable atau file .so
:
Cek arsitektur paket PHP ServBay (ganti
8.3
dengan versi PHP yang Anda gunakan):bashfile /Applications/ServBay/package/php/8.3/current/bin/php
1Contoh hasil output:
/Applications/ServBay/package/php/8.3/current/bin/php: Mach-O 64-bit executable arm64 # Menunjukkan arsitektur Apple Silicon ARM64
1atau
/Applications/ServBay/package/php/8.3/current/bin/php: Mach-O 64-bit executable x86_64 # Menunjukkan arsitektur Intel x86_64
1Cek arsitektur file ekstensi
.so
yang diunduh/dikompilasi (gantixdebug.so
dengan nama file ekstensi Anda):bashfile xdebug.so
1Contoh output:
xdebug.so: Mach-O 64-bit bundle arm64 # Menunjukkan arsitektur Apple Silicon ARM64
1atau
xdebug.so: Mach-O 64-bit bundle x86_64 # Menunjukkan arsitektur Intel x86_64
1Pastikan informasi arsitektur pada langkah 1 dan 2 identik.
Langkah-Langkah
Langkah 1: Unduh File Ekstensi Pihak Ketiga (Contoh: ionCube Loader)
- Kunjungi halaman download resmi ionCube Loader. Pilih versi yang sesuai dengan arsitektur macOS Anda. Untuk macOS ARM64 (chip Apple Silicon seri M), unduh versi Darwin ARM64. Anda juga dapat menggunakan tautan berikut (pastikan memeriksa apakah ada versi terbaru di situs resmi; tautan berikut hanya contoh): https://downloads.ioncube.com/loader_downloads/ioncube_loaders_dar_arm64.tar.gz
- Setelah diunduh, Anda akan mendapatkan file kompresi
.tar.gz
, misalioncube_loaders_dar_arm64.tar.gz
.
Langkah 2: Tentukan Versi PHP Target dan Direktori Instalasi Ekstensi di ServBay
Buka aplikasi ServBay.
Pada sidebar kiri, klik menu Paket (Packages) lalu pilih Bahasa (Languages).
Cari versi PHP yang ingin Anda pasangi ionCube Loader di daftar sebelah kanan (misal PHP 8.3). Catat nomor versinya.
Tentukan direktori instalasi ekstensi (
extension_dir
) untuk versi PHP tersebut. Ini adalah lokasi standar penyimpanan file.so
. Lokasi direktori ekstensi PHP di ServBay tergantung pada lokasi instalasi, versi PHP, dan opsi kompilasi.Cara paling akurat adalah menggunakan perintah terminal:
Buka aplikasi Terminal dan jalankan perintah berikut (ganti
/Applications/ServBay/package/php/8.3/current/bin/php
dengan path executable PHP versi target Anda):bash/Applications/ServBay/package/php/8.3/current/bin/php -i | grep extension_dir
1Output akan menampilkan
extension_dir => /path/to/extension/directory
. Contoh output:extension_dir => /Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831
1Catat path ini, Anda akan menggunakannya pada langkah berikutnya.
Langkah 3: Ekstrak dan Tempatkan File Loader
Buka aplikasi Terminal.
Arahkan ke direktori tempat file
.tar.gz
yang Anda download disimpan (biasanya di folder~/Downloads
):bashcd ~/Downloads
1Ekstrak file yang didownload:
bashtar -zxvf ioncube_loaders_dar_arm64.tar.gz
1Akan muncul folder baru bernama
ioncube
di direktori tersebut.Masuk ke direktori
ioncube
:bashcd ioncube
1Di dalam folder ini, Anda akan menemukan file
.so
untuk berbagai versi PHP, misalioncube_loader_dar_8.3.so
. Pastikan mencocokkan file dengan versi PHP target Anda (langkah 2, misal 8.3).Salin file
.so
yang sesuai ke direktori ekstensi PHP yang Anda temukan pada langkah 2. Misal, jika target direktori Anda/Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831/
dan ingin memasang Loader pada PHP 8.3: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- Pastikan mengganti path
/Applications/ServBay/.../no-debug-non-zts-20230831/
pada perintah dengan path sebenarnya yang didapat dari perintahphp -i
. - Pastikan file
.so
yang disalin cocok dengan versi PHP target, dan arsitekturnya sesuai (lihat pemeriksaan arsitektur di bagian Prasyarat).
- Pastikan mengganti path
Langkah 4: Konfigurasi PHP di ServBay
Kembali ke antarmuka aplikasi ServBay.
Pastikan menu Bahasa (Languages) sudah terpilih di kiri, lalu klik versi PHP yang ingin Anda konfigurasi di daftar kanan (misal PHP 8.3).
Di bagian konfigurasi kanan, klik tab PHP.
Scroll ke bawah hingga menemukan kotak teks Additional Parameters (Parameter Tambahan).
Tambahkan baris instruksi berikut dengan nama file ionCube Loader Anda ke kotak tersebut:
inizend_extension = ioncube_loader_dar_8.3.so
1- Penting: Ganti
ioncube_loader_dar_8.3.so
dengan nama file yang benar-benar Anda kopi ke direktori ekstensi. - Gunakan
zend_extension
, bukanextension
, karena ionCube Loader adalah ekstensi Zend. - Karena file
.so
sudah ditempatkan diextension_dir
, Anda cukup menuliskan nama file tanpa path lengkap. - Jika sudah ada konfigurasi lain di kotak tersebut, tuliskan perintah ini di baris baru.
(Tangkapan layar hanya ilustrasi, tampilan sebenarnya bisa sedikit berbeda tergantung versi ServBay)
- Penting: Ganti
Klik tombol Save di kanan bawah untuk menyimpan konfigurasi.
Langkah 5: Restart Layanan PHP
Setelah Anda klik Save di ServBay, aplikasi akan secara otomatis mendeteksi perubahan konfigurasi dan mencoba me-restart layanan yang terpengaruh (termasuk PHP). Biasanya, Anda tidak perlu melakukan restart manual tambahan.
Langkah 6: Verifikasi Ekstensi Telah Berhasil Dimuat
Ada dua cara umum untuk memeriksa apakah ionCube Loader sudah berhasil dimuat:
Verifikasi lewat Command Line:
Buka Terminal.
Jalankan perintah berikut untuk melihat ekstensi PHP yang telah dimuat (gunakan path penuh ke file PHP versi target):
bash/Applications/ServBay/package/php/8.3/current/bin/php -m | grep -i ioncube
1Jika berhasil, Anda akan melihat baris
ionCube Loader
pada output.Anda juga bisa menjalankan perintah
php -v
untuk menampilkan informasi versi PHP, biasanya info ionCube Loader muncul di bawah keterangan versi Zend Engine:bash/Applications/ServBay/package/php/8.3/current/bin/php -v
1Contoh output jika sukses (nomor versi bisa berbeda):
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
4Perhatikan baris
with the ionCube PHP Loader ...
.
Verifikasi lewat fungsi
phpinfo()
:- Buat file PHP baru (misal
info.php
) di root situs Anda (misal/Applications/ServBay/www/servbay.demo/
atau path website lain sesuai konfigurasi Anda). - Isi file dengan kode berikut:php
<?php phpinfo(); ?>
1
2
3 - Akses file tersebut via browser, misal:
http://servbay.demo/info.php
(ganti dengan domain lokal Anda jika berbeda). - Pada halaman output
phpinfo()
, cari kata "ionCube" (gunakan fitur cari browser, biasanyaCmd + F
atauCtrl + F
). Jika berhasil, akan muncul info khusus ionCube Loader mencakup versi, lisensi, dst.
- Buat file PHP baru (misal
Jika kedua metode di atas menampilkan informasi ionCube Loader, berarti ekstensi telah berhasil dimuat.
Masalah Umum & Pemecahan Masalah
- PHP gagal dijalankan atau crash: Penyebab paling umum adalah ketidakcocokan arsitektur antara file ekstensi dan paket PHP. Periksa dengan teliti sesuai langkah di prasyarat dan pastikan arsitekturnya sama persis. Selain itu, perbedaan versi PHP atau opsi kompilasi juga bisa menyebabkan masalah ini.
- Path
extension_dir
tidak benar: Pastikan file.so
Anda disalin ke pathextension_dir
sebenarnya untuk versi PHP tersebut di ServBay. Dapatkan lokasi paling akurat dengan perintahphp -i | grep extension_dir
. - Instruksi konfigurasi salah: Cek kembali instruksi yang dimasukkan pada Additional Parameters di ServBay. Untuk ekstensi Zend gunakan
zend_extension = nama_file.so
. Untuk ekstensi biasa gunakanextension = nama_file.so
. Nama file harus identik dengan file diextension_dir
(termasuk huruf besar/kecil). - Masalah hak akses file: Pastikan user yang menjalankan ServBay (umumnya user macOS Anda sendiri) punya akses baca ke file
.so
yang disalin. Biasanya jika menyalin ke folder paket ServBay tidak ada kendala, kecuali Anda mengubah permission secara manual. - ServBay belum restart: Meskipun ServBay biasanya otomatis restart, jika perubahan tidak berlaku, coba hentikan dan jalankan kembali layanan terkait melalui ServBay, atau restart aplikasi ServBay sepenuhnya.
- Tidak menemukan info pada
phpinfo()
: Pastikan Anda mengakses halamanphpinfo()
pada lingkungan PHP yang sudah diatur ekstensi. Jika ada beberapa versi PHP atau banyak website, pastikan Anda memeriksa lingkungan yang benar.
Kesimpulan
Dengan mengikuti langkah-langkah terperinci di atas, Anda seharusnya dapat berhasil memuat ionCube Loader atau ekstensi PHP .so
pihak ketiga lainnya untuk versi PHP yang dikelola ServBay. Inti dari proses ini adalah mengidentifikasi versi PHP target, mencari direktori instalasi ekstensi (extension_dir
) yang benar, menempatkan file ekstensi yang kompatibel di direktori tersebut, dan menentukan nama file ekstensi dengan instruksi yang sesuai (zend_extension
atau extension
) pada Additional Parameters di ServBay. Jika menemui kendala, cermati tiap langkah pada bagian pemecahan masalah, khususnya terkait kompatibilitas arsitektur dan path file.