Cara Mengaktifkan Modul Swoole di PHP pada ServBay
ServBay adalah lingkungan pengembangan web lokal yang andal dan sudah menyertakan banyak alat serta ekstensi yang dibutuhkan developer, termasuk ekstensi Swoole untuk PHP yang berperforma tinggi. Swoole sendiri adalah mesin komunikasi jaringan asinkron, paralel, dan berkinerja tinggi yang dirancang khusus untuk PHP. Dengan Swoole, Anda dapat meningkatkan performa aplikasi PHP serta skalabilitasnya secara signifikan. Dokumen ini akan membahas secara detail langkah-langkah mudah untuk mengaktifkan ekstensi Swoole di ServBay, sehingga Anda dapat membangun aplikasi dan layanan PHP yang lebih efisien.
Tentang Framework Swoole
Swoole merupakan proyek open source yang menghadirkan fitur I/O asinkron, coroutine, dan multiproses tingkat lanjut seperti Node.js ke dalam PHP. Dengan Swoole, developer PHP dapat keluar dari keterbatasan model sinkron dan blocking pada web server tradisional (seperti Apache/Nginx + PHP-FPM), dan membangun layanan resident memory berperforma tinggi seperti:
- API Gateway berperforma tinggi
- Aplikasi komunikasi real-time (WebSocket)
- Server game
- Aplikasi Internet of Things (IoT)
- Layanan backend dan pemrosesan tugas (background job processing)
Fitur Unggulan Swoole
- Performa Tinggi: Implementasi I/O nonblocking dan asinkron berbasis system call seperti epoll/kqueue, dipadukan multiproses/thread/coroutine untuk throughput tinggi dan latency rendah.
- Asynchronus & Coroutine: Menyediakan coroutine sehingga kode asinkron dapat ditulis seperti kode sinkron, meningkatkan efisiensi pengembangan.
- Komponen Lengkap: Sudah termasuk server dan klien HTTP, WebSocket, TCP, UDP, juga connection pool, timer, manajemen proses, dan lainnya.
- Mudah Diintegrasikan: Dapat digunakan bersama framework PHP populer (seperti Laravel, Symfony, ThinkPHP) atau untuk membangun aplikasi native Swoole dari awal.
Dukungan Modul Swoole di ServBay
ServBay telah menyertakan ekstensi Swoole untuk setiap versi PHP yang didukung secara default—tidak perlu download atau compile mandiri. ServBay juga akan mengelola kecocokan versi ekstensi Swoole sesuai versi PHP yang dipilih.
Saat ini, ServBay mendukung aktivasi ekstensi Swoole pada PHP sebagai berikut:
- PHP 5.6
- Seri PHP 7.x
- Seri PHP 8.x (termasuk PHP 8.5)
ServBay secara otomatis menyesuaikan dan menyediakan file ekstensi Swoole yang kompatibel sesuai versi PHP pilihan Anda.
Prasyarat
Sebelum mengaktifkan modul Swoole, pastikan:
- ServBay sudah diinstal dan berjalan di komputer Anda.
- Versi PHP yang ingin digunakan dengan Swoole sudah terinstall dan terpilih di ServBay.
Langkah-langkah Mengaktifkan Modul Swoole
ServBay menyediakan dua metode untuk mengaktifkan Swoole: melalui antarmuka grafis (GUI) dan dengan mengedit file konfigurasi secara manual. Cara GUI direkomendasikan karena lebih praktis.
Mengaktifkan Lewat GUI ServBay (Direkomendasikan)
Ini adalah cara termudah dan tercepat untuk mengaktifkan modul Swoole:
- Buka aplikasi GUI ServBay.
- Di panel navigasi kiri, pilih Languages.
- Klik PHP.
- Di daftar versi PHP sebelah kanan, cari versi PHP yang ingin diaktifkan Swoole-nya (misal:
PHP 8.3
), lalu pastikan versinya sudah terpilih (indikator titik berwarna hijau). - Klik tombol Extensions di sebelah kanan versi PHP tersebut.
- Di daftar ekstensi yang ditampilkan, cari swoole.
- Klik saklar di kiri ekstensi swoole hingga aktif (switch berubah hijau).
- Klik tombol Save atau Apply di bagian bawah jendela.
- ServBay akan meminta Anda untuk me-restart service PHP terkait agar perubahan diterapkan. Klik tombol Restart.
Setelah proses restart selesai, modul Swoole akan aktif di versi PHP tersebut.
Mengaktifkan Secara Manual melalui File Konfigurasi (Lanjutan)
Untuk kebutuhan konfigurasi lebih lanjut, atau jika Anda lebih nyaman mengedit file konfigurasi:
Temukan direktori konfigurasi
conf.d
pada versi PHP yang ingin diaktifkan Swoole-nya. Direktori ini digunakan untuk meletakkan file konfigurasi ekstensi PHP tambahan dan akan otomatis dimuat oleh ServBay. Contoh untuk PHP 8.3:/Applications/ServBay/etc/php/8.3/conf.d/
1Jika Anda memilih jalur instalasi yang berbeda saat menginstal ServBay, sesuaikan dengan path di komputer Anda.
Di dalam direktori tersebut, cari dan buka file
swoole.ini
.Secara default, baris untuk mengaktifkan Swoole mungkin masih dikomentari (diawali dengan
;
). Cari baris berikut:ini[Swoole] ; Uncomment the following line to enable Swoole ;extension = swoole.so
1
2
3Hapus tanda
;
di awal barisextension = swoole.so
agar menjadi:ini[Swoole] ; Uncomment the following line to enable Swoole extension = swoole.so
1
2
3Simpan file
swoole.ini
.Di halaman utama GUI ServBay atau panel manajemen servis, cari layanan PHP yang bersangkutan dan klik tombol restart.
Setelah restart, modul Swoole akan dimuat sesuai konfigurasi tersebut.
Memastikan Modul Swoole Berhasil Diaktifkan
Cara paling umum untuk verifikasi adalah menggunakan fungsi phpinfo()
guna melihat ekstensi yang terpasang di lingkungan PHP Anda.
- Di direktori root salah satu website yang dikelola ServBay (misal:
/Applications/ServBay/www/servbay.demo/public/
), buat file bernamaphpinfo.php
. - Edit
phpinfo.php
dan isi dengan:php<?php phpinfo(); ?>
1
2
3 - Pastikan website
servbay.demo
sudah dikonfigurasi dan diarahkan ke direktori yang berisiphpinfo.php
di ServBay. - Akses file tersebut lewat browser, misal ke URL
https://servbay.demo/phpinfo.php
. - Gulir atau gunakan fitur pencarian pada browser (Ctrl+F atau Cmd+F) dan cari kata kunci "swoole".
Jika informasi tentang Swoole (termasuk versi dan opsi konfigurasi) muncul di halaman tersebut, berarti modul Swoole berhasil dimuat dan aktif.
Ilustrasi: mencari informasi Swoole di halaman phpinfo
Contoh Penggunaan Swoole
Setelah Swoole aktif, Anda bisa mulai membuat aplikasi berbasis Swoole. Berikut contoh singkat membuat server HTTP sederhana menggunakan Swoole.
Contoh Kode: Membuat Server HTTP Sederhana dengan Swoole
Buat Direktori Proyek Buat direktori proyek baru di dalam folder pengembangan Anda, misalnya di
/Applications/ServBay/www/
, lalu buat subfolderpublic
:bashcd /Applications/ServBay/www/ mkdir my-swoole-app cd my-swoole-app mkdir public
1
2
3
4Buat File Masuk Server:
public/index.php
php<?php require __DIR__ . '/../vendor/autoload.php'; // Jika Anda menginstal dependensi tambahan dengan Composer use Swoole\Http\Server; use Swoole\Http\Request; use Swoole\Http\Response; // Membuat instansi server HTTP, mendengarkan di semua IP lokal (0.0.0.0) pada port 9501 $server = new Server("0.0.0.0", 9501); // Pengaturan server (opsional) // $server->set([ // 'worker_num' => 4, // Jumlah proses kerja // 'daemonize' => false, // Apakah berjalan sebagai proses daemon/layanan latar // ]); // Mendengarkan event permintaan/request $server->on("request", function (Request $request, Response $response) { // Mengatur header respons $response->header("Content-Type", "text/plain"); // Mengatur isi respons $response->end("Hello ServBay with Swoole!"); }); // Mendengarkan event server start (opsional) $server->on("start", function (Server $server) { echo "Swoole http server is started at http://0.0.0.0:9501\n"; }); // Menjalankan server $server->start(); echo "Swoole server stopped.\n"; // Baris ini hanya berjalan setelah server berhenti
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35Catatan: Baris
require __DIR__ . '/../vendor/autoload.php';
hanya diperlukan jika Anda menggunakan Composer untuk menginstal library Swoole lain (sepertiswoole/ide-helper
atau framework Swoole). Untuk kode Swoole native tanpa library eksternal, baris autoload biasanya tidak diperlukan.Jalankan Server Lewat Terminal Buka Terminal dari fitur terminal ServBay, atau terminal sistem Anda, lalu masuk ke folder proyek (
/Applications/ServBay/www/my-swoole-app/
). Pastikan PHP yang digunakan adalah versi PHP yang dikelola & sudah diaktifkan Swoole-nya lewat ServBay (cek denganwhich php
atau gunakan terminal internal ServBay).Jalankan perintah berikut untuk memulai server:
shphp public/index.php
1Jika berhasil, Anda akan melihat output seperti "Swoole http server is started at http://0.0.0.0:9501" di terminal.
Ilustrasi: menjalankan server Swoole di terminal
Akses Web untuk Pengujian Setelah server aktif, buka browser dan akses
http://localhost:9501
. Anda akan melihat halaman bertuliskan "Hello ServBay with Swoole!".Untuk menghentikan server Swoole di terminal, tekan
Ctrl + C
.
Hal yang Perlu Diperhatikan
- Cara Menjalankan: Contoh di atas menjalankan server Swoole secara langsung lewat terminal, cocok untuk layanan resident memory atau server mandiri. Aplikasi PHP konvensional (misal berbasis Laravel/Symfony/WordPress) umumnya berjalan dengan model PHP-FPM dan di-proxy oleh web server seperti Caddy atau Nginx. Jika ingin menjalankan framework modern di lingkungan Swoole (misal Hyperf, Swoole-Laravel), gunakan script start yang disediakan framework tersebut—cara kerjanya mirip contoh Swoole native yakni sebagai proses mandiri.
- Konflik Port: Server Swoole akan menggunakan port tertentu (misal 9501). Pastikan port ini tidak dipakai aplikasi lain.
- Log Error: Error dan output Swoole biasanya langsung tampil di terminal saat server dijalankan, atau bisa diarahkan ke file log sesuai pengaturan.
Pertanyaan yang Sering Muncul (FAQ)
T: Saya sudah mengaktifkan Swoole di GUI ServBay, tapi di halaman phpinfo()
tidak muncul informasi Swoole. Solusinya?
J: Cek beberapa hal berikut:
- Pastikan Anda membuka halaman
phpinfo()
untuk versi PHP yang benar. Karena ServBay bisa menjalankan beberapa versi PHP sekaligus, pastikan website/terminal yang Anda gunakan memang menggunakan versi PHP di mana Swoole telah diaktifkan. - Pastikan sudah menyimpan perubahan dan restart layanan PHP terkait lewat GUI ServBay.
- Jika Anda mengedit
swoole.ini
secara manual, pastikan path file, nama file, dan penulisan barisextension = swoole.so
sudah benar dan TIDAK dikomentari.
T: Saat menjalankan contoh Swoole muncul error Class 'Swoole\Http\Server' not found
, kenapa?
J: Ini biasanya karena ekstensi Swoole belum berhasil dimuat pada lingkungan PHP yang Anda pakai. Pastikan langkah-langkah mengaktifkan Swoole sudah dilakukan dengan benar, dan jalankan perintah php public/index.php
dengan PHP versi ServBay yang sudah diaktifkan Swoole-nya. Gunakan perintah php -m | grep swoole
di terminal untuk mengecek apakah modul Swoole sudah benar-benar aktif di versi PHP tersebut.
Kesimpulan
Dengan ServBay, mengaktifkan ekstensi Swoole di PHP menjadi sangat mudah. Baik lewat GUI yang intuitif maupun dengan pengaturan file manual, developer bisa dengan cepat memuat Swoole untuk versi PHP yang diinginkan—dan mulai mengembangkan aplikasi web dengan performa tinggi serta kemampuan asinkron. Manfaatkan kemampuan Swoole untuk membangun layanan PHP yang lebih cepat dan responsif dengan concurrency tinggi. ServBay mempermudah pengelolaan lingkungan pengembangan, sehingga Anda bisa fokus pada pengembangan aplikasi, bukan pada pengaturan lingkungan yang rumit.