Penyebab Utama Error
Pesan error 'PHP installation missing MySQL extension' terjadi karena modul PHP yang dibutuhkan untuk berkomunikasi dengan database MySQL (seperti mysqli atau pdo_mysql) belum terinstal atau belum diaktifkan pada konfigurasi php.ini. Sejak PHP 7.0, ekstensi mysql_connect yang lama telah dihapus, sehingga aplikasi modern wajib menggunakan mysqli atau PDO.
Langkah Perbaikan Berdasarkan Sistem Operasi
Identifikasi versi PHP Anda terlebih dahulu dengan menjalankan perintah php -v di terminal. Setelah itu, gunakan perintah instalasi berikut sesuai dengan distribusi Linux yang digunakan.
1. Ubuntu / Debian (APT)
Gunakan perintah berikut untuk menginstal ekstensi yang hilang. Ganti 8.x dengan versi PHP Anda (misal: 8.2):
sudo apt update
sudo apt install php8.x-mysql
sudo systemctl restart apache22. CentOS / RHEL / AlmaLinux (YUM/DNF)
sudo dnf install php-mysqlnd
sudo systemctl restart httpdTabel Matriks Ekstensi PHP MySQL
| Ekstensi | Fungsi | Status |
|---|---|---|
| mysqli | MySQL Improved (Prosedural & OOP) | Wajib |
| pdo_mysql | PHP Data Objects (Database Abstraction) | Sangat Disarankan |
| mysql | Legacy (Tidak didukung) | Deprecated/Hapus |
Verifikasi Konfigurasi
Setelah instalasi selesai, pastikan ekstensi telah terbaca oleh sistem. Buat file info.php di direktori web root Anda:
<?php
phpinfo();
?>Akses file tersebut melalui browser (http://localhost/info.php) dan cari kata kunci 'mysql'. Jika modul sudah terinstal, Anda akan melihat blok 'mysqli' atau 'pdo_mysql' dengan status 'enabled'.
Troubleshooting Lapangan
- Versi PHP Ganda: Jika Anda memiliki lebih dari satu versi PHP, pastikan Anda menginstal ekstensi pada versi yang digunakan oleh web server (Apache/Nginx).
- Izin Akses: Pastikan user web server (seperti
www-data) memiliki izin baca pada file konfigurasi PHP. - Restart Service: Perubahan pada
php.initidak akan berlaku sebelum layanan web server di-restart (sudo systemctl restart apache2atausudo systemctl restart php-fpm).