# Gagal Instalasi Modul Maatwebsite Excel

#### Permasalahan

- Perintah composer require maatwebsite/excel gagal karena ekstensi PHP ext-zip belum tersedia.
- Konfigurasi zip.ini sudah ada pada direktori CLI dan FPM, tetapi berkas modul zip.so belum ditemukan pada lokasi modul PHP.
- Perintah apt update sebelumnya gagal karena /usr/bin/apt-key tidak tersedia.
- Setelah masalah apt-key ditangani, APT masih sempat menampilkan masalah kunci tanda tangan untuk PPA PHP Ondřej Surý.
- Izin eksekusi /bin/dash juga tidak sesuai sehingga proses APT yang berjalan sebagai pengguna \_apt tidak dapat menjalankan shell.

**1.** <span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**Periksa versi PHP dan ekstensi ZIP**  
</span>

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">php -v  
php -m | grep -i zip  
php --ri zip</span>

Jika ZIP tidak muncul atau PHP melaporkan ekstensi tidak tersedia, periksa apakah paket php8.1-zip sudah terpasang dan apakah berkas modul ZIP tersedia.

**2.** <span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**Pulihkan izin eksekusi /bin/dash**  
</span>

Pada sesi troubleshooting ini, /bin/dash ditemukan memiliki izin terlalu ketat sehingga proses APT tidak dapat menjalankannya. Setelah memastikan bahwa /bin/dash adalah shell sistem yang benar, izin eksekusinya diperbaiki:

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">ls -l /bin/dash  
chmod 755 /bin/dash  
ls -l /bin/dash</span>

Catatan: perubahan izin berkas sistem harus dilakukan dengan hati-hati. Pastikan path dan target symlink benar sebelum menjalankan chmod.

**3.** <span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**Pulihkan /usr/bin/apt-key bila hilang**  
</span>

Pada server ini, /usr/bin/apt-key tidak ditemukan. Berkas tersebut dipulihkan dari paket APT yang diunduh dan diekstrak. Ringkasan proses yang digunakan pada sesi ini:

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">dpkg -s apt  
\# Paket apt yang sesuai versi/arsitektur diunduh  
\# Isi paket diekstrak, lalu usr/bin/apt-key dipulihkan ke /usr/bin/apt-key</span>

Peringatan keamanan: log menunjukkan paket apt\_2.4.13\_amd64.deb diunduh dari mirror. Hash/checksum paket tidak terlihat diverifikasi terhadap metadata repositori bertanda tangan pada catatan ini. Untuk server produksi, verifikasi asal paket dan integritasnya melalui repositori resmi serta metadata bertanda tangan sebelum menggunakan paket sistem hasil unduhan.

**4.** <span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**Perbaiki kunci PPA PHP**  
</span>

Setelah APT dapat berjalan, pembaruan daftar paket masih menghadapi masalah kunci PPA Ondřej Surý. Kunci diambil dari Ubuntu keyserver, fingerprint diperiksa, lalu disimpan dalam format keyring:

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">curl -fsSL \\  
<span style="mso-spacerun: yes;"> </span>'https://keyserver.ubuntu.com/pks/lookup?op=get&amp;search=0xB8DC7E53946656EFBCE4C1DD71DAEAAB4AD4CAB6' \\  
<span style="mso-spacerun: yes;"> </span>-o /tmp/ondrej-php.asc  
gpg --show-keys --with-fingerprint /tmp/ondrej-php.asc  
mkdir -p /etc/apt/keyrings  
gpg --dearmor --yes -o /etc/apt/keyrings/ondrej-php.gpg /tmp/ondrej-php.asc  
chmod 644 /etc/apt/keyrings/ondrej-php.gpg  
apt update</span>

<span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">  
</span>

Fingerprint yang tercatat pada sesi ini adalah B8DC 7E53 9466 56EF BCE4 C1DD 71DA EAAB 4AD4 CAB6. Pastikan fingerprint cocok dengan sumber resmi yang dapat dipercaya sebelum mempercayai kunci.

Hasil yang diharapkan: apt update selesai tanpa kesalahan GPG. Peringatan bahwa sejumlah paket dapat ditingkatkan bukan berarti semua paket tersebut harus langsung diperbarui.

**5.** <span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**Periksa kandidat paket ZIP dan simulasi instalasi**  
</span>

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">apt-cache policy php8.1-zip php8.1-common  
apt-get -s install php8.1-zip</span>

Simulasi membantu melihat paket yang akan dipasang, diperbarui, atau dihapus sebelum perubahan benar-benar dilakukan. Pada sesi ini, simulasi menunjukkan 15 paket PHP akan diperbarui, php8.1-zip akan dipasang, dan tidak ada paket yang dihapus. Karena paket PHP berasal dari PPA yang sama, versi paket-paket terkait ikut diselaraskan.

Jangan melakukan full-upgrade hanya karena APT menyebut banyak paket dapat diperbarui. Tinjau rencana perubahan terlebih dahulu, terutama pada server produksi.

**6.** <span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**Pasang ekstensi PHP ZIP**  
</span>

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">apt install php8.1-zip</span>

Dalam sesi ini, instalasi memperbarui komponen PHP 8.1 dari versi 8.1.31 menjadi 8.1.34 dan memasang php8.1-zip. APT menampilkan pesan bahwa tautan 20-zip.ini sudah ada; pesan tersebut tidak menggagalkan instalasi karena modul ZIP kemudian berhasil aktif.

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">php -m | grep -i zip  
php --ri zip  
php -v</span>

Hasil yang terlihat pada sesi ini: zip tampil pada daftar modul, informasi menunjukkan "Zip =&gt; enabled", dan PHP CLI menjadi versi 8.1.34.

**7.** <span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**Pasang Maatwebsite Excel pada proyek Laravel**  
</span>

<span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas;">cd /var/www/html/project-aplikasi  
composer require maatwebsite/excel</span>

Composer kemudian berhasil memasang maatwebsite/excel versi 3.1.70 beserta dependensi yang dibutuhkan, termasuk phpoffice/phpspreadsheet. Laravel juga menjalankan package discovery dan menampilkan maatwebsite/excel sebagai DONE.

**Ringkasan Penanganan Troubleshoting:**

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableLightShadingAccent1" id="bkmrk-masalah-tindakan-ver" style="border-collapse: collapse; border: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-bottom-alt: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0mm 5.4pt 0mm 5.4pt;"><tbody><tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes; mso-yfti-lastfirstrow: yes;"><td style="width: 165.6pt; border-top: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Masalah</span>**

</td><td style="width: 165.6pt; border-top: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Tindakan</span>**

</td><td style="width: 165.6pt; border-top: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Verifikasi</span>**

</td></tr><tr style="mso-yfti-irow: 0;"><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Composer gagal karena ext-zip</span>**

</td><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Pasang php8.1-zip setelah APT pulih</span>

</td><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">php --ri zip</span>

</td></tr><tr style="mso-yfti-irow: 1;"><td style="width: 165.6pt; border: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">/usr/bin/apt-key hilang</span>**

</td><td style="width: 165.6pt; border: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Pulihkan berkas dari paket APT yang sesuai; validasi integritas paket</span>

</td><td style="width: 165.6pt; border: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">apt update</span>

</td></tr><tr style="mso-yfti-irow: 2;"><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">/bin/dash tidak dapat dieksekusi</span>**

</td><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Periksa target dan pulihkan izin yang sesuai</span>

</td><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">ls -l /bin/dash</span>

</td></tr><tr style="mso-yfti-irow: 3;"><td style="width: 165.6pt; border: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Kunci PPA PHP bermasalah</span>**

</td><td style="width: 165.6pt; border: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Periksa fingerprint dan pasang keyring PPA</span>

</td><td style="width: 165.6pt; border: none; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">apt update tanpa error GPG</span>

</td></tr><tr style="mso-yfti-irow: 4;"><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Banyak paket dapat diperbarui</span>**

</td><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Simulasikan instalasi dan tinjau daftar perubahan</span>

</td><td style="width: 165.6pt; border: none; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">apt-get -s install php8.1-zip</span>

</td></tr><tr style="mso-yfti-irow: 5; mso-yfti-lastrow: yes;"><td style="width: 165.6pt; border: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221">**<span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Paket Excel belum terpasang</span>**

</td><td style="width: 165.6pt; border: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">Jalankan Composer dari direktori proyek Laravel</span>

</td><td style="width: 165.6pt; border: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; padding: 0mm 5.4pt 0mm 5.4pt;" valign="top" width="221"><span style="color: #365f91; mso-themecolor: accent1; mso-themeshade: 191;">composer show maatwebsite/excel</span>

</td></tr></tbody></table>

<span style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Arial',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">  
</span>