Metode 1: Download Arsip Package Langsung (Bypass Registry PECL)
Langkah ini melewati proses pencarian katalog PECL yang gagal dan langsung mengompilasi dari file tarball resmi:
Unduh paket
pdo_sqlsrvdansqlsrvversi 5.10.1 langsung dari server PECL:Bashcd /tmp wget https://pecl.php.net/get/pdo_sqlsrv-5.10.1.tgz wget https://pecl.php.net/get/sqlsrv-5.10.1.tgzVerifikasi: File
.tgzberhasil terunduh di direktori/tmptanpa error HTTP.Pasang langsung dari file arsip lokal menggunakan path spesifik PHP 8.0:
Bashsudo pecl -d php_suffix=8.0 install pdo_sqlsrv-5.10.1.tgz sudo pecl -d php_suffix=8.0 install sqlsrv-5.10.1.tgzVerifikasi: Output di baris akhir menampilkan
Build process completed successfullydan lokasi file.so.
Metode 2: Bersihkan Cache dan Reset Channel PECL
Jika Anda ingin memperbaiki sistem PECL agar berjalan normal kembali:
Bersihkan cache dan hapus metadata channel lama:
Bashsudo rm -rf /tmp/pear/temp/* sudo rm -rf /root/.pearrc sudo pecl clear-cacheDaftarkan ulang channel resmi:
Bashsudo pecl channel-delete pecl.php.net sudo pecl channel-add https://pecl.php.net/channel.xml sudo pecl channel-update pecl.php.netVerifikasi: Output terminal menunjukkan
Channel "pecl.php.net" is up to date.Coba pasang kembali:
Bashsudo pecl install pdo_sqlsrv-5.10.1
Metode 3: Kompilasi Manual Menggunakan phpize8.0
Jika pecl tetap bermasalah, kompilasi manual adalah solusi pasti:
Ekstrak arsip yang telah diunduh:
Bashcd /tmp tar -xvzf pdo_sqlsrv-5.10.1.tgz cd pdo_sqlsrv-5.10.1Jalankan build environment untuk PHP 8.0:
Bashphpize8.0 ./configure --with-php-config=/usr/bin/php-config8.0 make sudo make installVerifikasi: Di akhir perintah
sudo make install, terminal akan menampilkan direktori modul sepertiInstalling shared extensions: /usr/lib/php/20200930/.
Konfigurasi Modul & Pengujian
Setelah salah satu metode di atas berhasil:
Pastikan file konfigurasi aktif:
Bashsudo bash -c 'echo "extension=pdo_sqlsrv.so" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini' sudo bash -c 'echo "extension=sqlsrv.so" > /etc/php/8.0/mods-available/sqlsrv.ini' sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrvCek apakah modul sudah dikenali:
Bashphp8.0 -m | grep -i sqlsrvVerifikasi: Output akan menampilkan baris
pdo_sqlsrvdansqlsrv.
