Terima kasih, Guru Duan. Ini dia penyebab utama error upload_error_cant_write:
🔥 Masalah Utama:
/dev/sda7 15G 14G 0 100% /
Artinya: partisi root / (tempat sistem dan folder /tmp) sudah penuh.
💥 Dampak:
Karena /tmp berada di partisi /, maka semua proses PHP (termasuk move_uploaded_file) gagal menyimpan file sementara, sehingga Moodle menampilkan:
Error: Failed to write file to disk.
Error code: upload_error_cant_write
✅ Solusi Segera: Kosongkan ruang di partisi /
Jalankan:
sudo du -sh /* 2>/dev/null | sort -h
Untuk melihat apa yang paling memakan ruang. Fokus pada direktori seperti:
-
/var/log -
/tmp -
/root -
/usr
🔧 Contoh Tindakan:
1. Bersihkan file log lama:
sudo journalctl --vacuum-time=3d
sudo rm -rf /var/log/*.gz /var/log/*.1 /var/log/*-???????? /var/log/*/*.gz
2. Bersihkan cache APT dan Snap:
sudo apt clean
sudo rm -rf /var/cache/apt/*
sudo rm -rf /var/lib/snapd/cache/*
3. Hapus file sementara (jika aman):
sudo rm -rf /tmp/*
🔒 Alternatif Aman: Pindahkan upload_tmp_dir ke partisi besar
Karena partisi /var masih lega 233 GB, kita bisa arahkan folder upload PHP ke sana:
🔧 Langkah-langkah:
-
Buat folder baru:
sudo mkdir -p /var/moodledata/temp sudo chown www-data:www-data /var/moodledata/temp -
Edit
php.ini:
Lokasi bisa dicari dengan:php --iniKemudian buka dan ubah:
upload_tmp_dir = /var/moodledata/temp -
Restart PHP:
sudo systemctl restart php8.2-fpm -
Uji ulang upload pengguna di Moodle.
🔁 Kesimpulan
| Masalah | Solusi |
|---|---|
/ penuh |
Bersihkan ruang atau pindahkan upload folder ke /var |
| Upload gagal | Karena PHP tidak bisa tulis file sementara |
Kalau Guru Duan ingin saya bantu bersihkan ruang secara spesifik, silakan kirim:
sudo du -sh /tmp /var/log /usr /root 2>/dev/null
atau lanjutkan dengan pengalihan upload_tmp_dir ke /var/moodledata/temp. Saya siap bantu arahkan.
0 comments:
Post a Comment