01. Konfigurasi PHP melalui XAMPP
Sebelum kita mulai memasang framework Laravel 13 dan membangun sistem informasi perpustakaan, kita wajib memastikan bahwa lingkungan eksekusi PHP di komputer lokal telah terkonfigurasi dengan benar. Salah satu langkah paling awal yang sering terlewatkan oleh pemula adalah mengaktifkan ekstensi PHP yang dibutuhkan oleh framework dan dependensi pendukungnya.
A. Pengantar
Aplikasi web modern seperti Laravel dibangun di atas bahasa pemrograman PHP dengan memanfaatkan berbagai pustaka modular bawaan (extensions). Ekstensi-ekstensi ini menyediakan fungsionalitas tingkat rendah yang sangat penting, mulai dari enkripsi keamanan, manipulasi string multibyte, hingga komunikasi langsung dengan basis data MySQL.
Secara default, paket instalasi lokal seperti XAMPP menonaktifkan beberapa ekstensi tertentu demi efisiensi memori atau alasan keamanan bawaan. Jika ekstensi yang dibutuhkan belum aktif, proses pembuatan project baru menggunakan Composer atau proses koneksi ke database akan langsung berhenti dan memunculkan pesan error.
Pada materi ini, kita akan memeriksa dan mengaktifkan ekstensi yang diperlukan melalui berkas konfigurasi utama PHP, yaitu php.ini.
B. Mengenal php.ini dan Ekstensi PHP
1. Apa Itu php.ini?
php.ini adalah berkas konfigurasi teks utama yang dibaca oleh modul PHP saat pertama kali dijalankan. Di dalam berkas ini, terdapat ratusan baris pengaturan (directives) yang mengatur perilaku PHP, seperti:
- Batas alokasi memori (memory_limit).
- Batas ukuran upload berkas (upload_max_filesize).
- Penanganan dan pelaporan error (error_reporting).
- Daftar modul atau ekstensi yang dimuat ke dalam memori (dynamic extensions).
2. Apa Itu Ekstensi PHP?
Ekstensi PHP (PHP Extension) adalah modul kode biner tambahan (berupa berkas .dll pada sistem operasi Windows atau berkas .so pada Linux) yang memperluas kemampuan dasar sintaks PHP.
Tanpa ekstensi yang sesuai:
- PHP tidak dapat menjalankan kueri ke basis data MySQL (membutuhkan ekstensi
pdo_mysql). - PHP tidak dapat membaca atau membuat arsip terkompresi (membutuhkan ekstensi
zip). - PHP tidak dapat mengenali format tipe berkas secara aman (membutuhkan ekstensi
fileinfo).
C. Membuka php.ini melalui XAMPP Control Panel
XAMPP Control Panel menyediakan akses pintas praktis untuk membuka berkas konfigurasi PHP tanpa harus mencarinya secara manual di dalam folder instalasi.
Langkah Membuka Berkas:
- Buka aplikasi XAMPP Control Panel di komputer Anda.
- Perhatikan baris modul Apache.
- Klik tombol Config yang berada di sebelah kanan baris Apache, kemudian pilih menu PHP (php.ini):
Gambar 1.1: Memilih menu PHP (php.ini) melalui tombol Config Apache pada XAMPP Control Panel.
Setelah menu tersebut diklik, Windows akan langsung membuka berkas php.ini menggunakan teks editor bawaan (Notepad).
D. Mengaktifkan Ekstensi PHP yang Dibutuhkan
Di dalam berkas php.ini, setiap baris pengaturan yang diawali dengan tanda titik koma (;) diperlakukan sebagai komentar. Artinya, modul atau pengaturan pada baris tersebut berstatus nonaktif dan diabaikan oleh PHP.
Untuk mengaktifkannya, kita hanya perlu mencari baris ekstensi yang dituju dan menghapus tanda titik koma di depannya.
Langkah 1: Membuka Dialog Pencarian (Find)
Karena berkas php.ini memiliki ribuan baris teks, gunakan fitur pencarian agar Anda tidak perlu mencarinya baris demi baris:
- Tekan tombol kombinasi
Ctrl + Fpada keyboard untuk memunculkan kotak dialog pencarian (Find). - Ketikkan nama ekstensi yang ingin dicari pada kolom Find what, misalnya
extension=zip:
Gambar 1.2: Membuka kotak dialog Find dan memasukkan kata kunci extension=zip.
Langkah 2: Menemukan Baris Ekstensi yang Masih Dinonaktifkan
Klik tombol Find Next (pastikan arah pencarian pada opsi Direction diatur ke Down). Teks editor Notepad akan langsung melompat ke baris yang cocok dan menyorot teks tersebut:
Gambar 1.3: Hasil pencarian menemukan baris ;extension=zip yang masih berstatus komentar.
Perhatikan baris yang tersorot pada Gambar 1.3 di atas: di depan kata extension=zip masih terdapat karakter titik koma (;). Ini membuktikan bahwa ekstensi zip pada instalasi awal XAMPP Anda masih dalam kondisi nonaktif.
Langkah 3: Menghapus Tanda Titik Koma untuk Mengaktifkan
- Tutup kotak dialog Find dengan menekan tombol Cancel atau tombol silang.
- Arahkan kursor teks ke tanda titik koma (
;) di depan kataextension. - Hapus karakter titik koma tersebut sehingga barisnya berubah menjadi
extension=zipmurni:
Gambar 1.4: Tanda titik koma berhasil dihapus sehingga ekstensi menjadi aktif.
Sebagai perbandingan teks:
ini
; Kondisi awal (nonaktif / masih berupa komentar):
;extension=zip
; Kondisi setelah diaktifkan (siap dimuat oleh PHP):
extension=zipDaftar Ekstensi Penting untuk Project Perpustakaan
Berikut adalah tabel rincian ekstensi yang perlu Anda periksa statusnya pada php.ini:
| Nama Ekstensi | Status di Laravel 13 | Fungsi dan Peran Utama |
|---|---|---|
curl | Ekstensi Inti Wajib | Menangani HTTP request keluar dari server (misalnya interaksi API pihak ketiga). |
fileinfo | Ekstensi Inti Wajib | Mendeteksi MIME type berkas upload secara akurat untuk validasi file cover buku. |
mbstring | Ekstensi Inti Wajib | Mengelola pemrosesan karakter string non-ASCII dan teks UTF-8 secara aman. |
openssl | Ekstensi Inti Wajib | Menyediakan enkripsi data, pembuatan kunci rahasia (APP_KEY), dan hashing password. |
pdo | Ekstensi Inti Wajib | Lapisan abstraksi data terpadu untuk berkomunikasi dengan sistem basis data. |
pdo_mysql | Ekstensi Inti Wajib | Driver khusus PDO untuk menghubungkan aplikasi Laravel ke database MySQL/MariaDB XAMPP. |
zip | Ekstensi Tambahan Tooling | Mendukung dekompresi paket arsip ZIP yang diunduh oleh Composer saat instalasi library. |
Catatan Teknis
Perlu dipahami bahwa zip bukanlah salah satu dari daftar ekstensi inti PHP yang diwajibkan oleh runtime framework Laravel 13 saat mengeksekusi aplikasi. Namun, ekstensi zip sangat penting bagi Composer di lingkungan Windows agar proses download dan ekstraksi package pustaka berjalan cepat melalui file arsip terkompresi tanpa memerlukan fallback lambat.
Jangan Mengaktifkan Sembarangan
Periksa baris ekstensi satu per satu. Jangan menghapus tanda titik koma pada ekstensi yang tidak Anda butuhkan (seperti pdo_pgsql, pdo_oci, atau snmp) agar alokasi memori PHP tetap ringan dan efisien. Jika suatu baris ekstensi sudah tidak memiliki tanda ; sejak awal, biarkan apa adanya.
E. Menyimpan Konfigurasi dan Memahami PHP Apache vs PHP CLI
1. Menyimpan Perubahan
Setelah selesai memeriksa dan mengaktifkan ekstensi yang diperlukan:
- Klik menu File $\to$ Save pada Notepad, atau tekan tombol kombinasi
Ctrl + S. - Tutup jendela teks editor Notepad.
2. Mengapa Perlu Me-restart Apache?
Modul PHP pada XAMPP dimuat ke dalam memori oleh web server Apache saat server pertama kali dinyalakan. Jika Apache sedang dalam posisi berjalan (running) saat Anda mengedit php.ini, perubahan tersebut belum akan berpengaruh sampai Anda menekan tombol Stop lalu menekan tombol Start kembali pada modul Apache di XAMPP Control Panel.
3. Perbedaan Kritis: PHP Apache vs PHP CLI
Hal yang sangat penting dipahami oleh pengembang web pemula di Windows:
- PHP Apache: Digunakan ketika aplikasi diakses melalui browser web lewat web server Apache. Konfigurasi yang digunakan adalah berkas
php.inidi dalam folderxampp\php\. - PHP CLI (Command Line Interface): Digunakan ketika Anda menjalankan perintah melalui terminal (seperti
composer install,php artisan serve, atauphp artisan migrate).
Composer dan perintah Artisan berjalan menggunakan runtime PHP CLI. Terkadang, seorang pengembang memiliki instalasi PHP lain di luar XAMPP yang terdaftar pada variabel lingkungan sistem (Environment Variables PATH).
Pada materi pemeriksaan environment selanjutnya, kita akan memverifikasi runtime PHP CLI ini secara langsung di terminal menggunakan perintah:
where php: Memeriksa lokasi berkas binary PHP mana yang sedang aktif di sistem operasi Anda.php --ini: Memeriksa berkasphp.inimana yang sebenarnya dibaca oleh terminal.php -m: Menampilkan seluruh daftar modul dan ekstensi yang berhasil dimuat.
F. Kesimpulan
Mengonfigurasi PHP sebelum memulai project Laravel adalah langkah fondasi yang krusial:
- Berkas
php.inimengatur seluruh modul dan perilaku kerja PHP di komputer lokal Anda. - Ekstensi PHP diaktifkan dengan cara menghapus tanda titik koma (
;) di awal baris konfigurasi. - Ekstensi inti seperti
pdo_mysql,mbstring,fileinfo, danopensslwajib aktif untuk menjalankan fitur-fitur dasar Laravel 13. - Ekstensi tambahan seperti
zipmempermudah Composer dalam mengelola unduhan paket project. - Web server Apache harus direstart agar pembaruan konfigurasi
php.inimulai dimuat ke dalam memori.
G. Materi Selanjutnya
Konfigurasi berkas php.ini kini telah selesai disiapkan.
Pada materi berikutnya, kita akan menjalankan servis web server dan basis data melalui XAMPP: 👉 02. Menjalankan XAMPP: Menjalankan modul Apache dan MySQL, memeriksa port default (80, 443, 3306), serta cara menyelesaikan kendala bentrok port (port conflict) yang sering terjadi di Windows.