Cara Memperbaiki Galat "cURL Error 28: Operation Timed Out" pada Nextcloud 20

Hai, selamat datang kembali di ChotibulStudio. Di artikel kali ini, saya akan membahas cara memperbaiki galat cURL error 28: Operation timed out pada Nextcloud 20. Permasalahan ini saya temukan saat akan mencoba memasang paket aplikasi yang disediakan Nextcloud.

Cara Memperbaiki Galat "cURL Error 28: Operation Timed Out" pada Nextcloud 20
Tampilan galat cURL Error 28: Operation Timed Out

Setelah mencari informasi ke beberapa forum pengguna Nextcloud, saya mengambil kesimpulan bahwa galat tersebut disebabkan oleh konfigurasi di sisi server side programming (PHP), web server dan Nextcloud itu sendiri.

Baik PHP, web server maupun Nextcloud-nya sendiri, peran ketiga-nya tidak bisa diabaikan. Jika ada kesalahan konfigurasi dari salah-satunya saja, maka Nextcloud tidak akan berfungsi sebagaimana mestinya.

Baca juga: Nextcloud, Layanan Singkronasi dan Berbagi Berkas Sumber Terbuka

Pada kasus saya ini, pesan galatnya cURL error 28: Operation timed out after 120000 miliseconds with 51949441 out of 362992160 bytes received (see https://curl.haxx.se/libcurl/libcurl-errors.html). Inti dari galat tersebut adalah Anda harus mengatur waktu habis PHP dan Nextcloud dengan nilai yang sama.

Berikut adalah langkah-langkah cara memperbaiki galat cURL error 28: operation timed out pada Nextcloud 20.

Atur waktu habis pada PHP

Untuk dapat mengatur waktu habis di PHP, Anda cukup mengedit berkas php.ini dan menyesuaikan nilai dari variabel max_execution_time dan max_input_time.

Untuk dapat mengedit berkas php.ini dan menyesuaikan nilai dari kedua variabel tersebut, Anda harus memastikan spesifikasi program yang Anda gunakan untuk menjalankan Nextcloud.

Disini, saya memasang Nextcloud di atas LEMP stack, yang berarti, saya menggunakan PHP FastCGI Process Manager atau PHP FPM. Sehingga konfigurasi php.ini untuk PHP FPM terletak di direktori /etc/php/[versi PHP yang terpasang]/fpm/. Edit berkas php.ini dengan perintah berikut.

$ sudo nano /etc/php/7.4/fpm/php.ini

Manfaatkan fitur pencarian pada editor Nano untuk mencari nama variabel yang Anda inginkan. Gunakan kombinasi tombol Ctrl W untuk membuka fitur pencarian. Ketikkan nama variabel yang diinginkan lalu tekan enter. Jika diawal baris variabel terdapat simbol titik koma (;), silahkan dihapus. 

max_execution_time = 3600
max_input_time = 3600

Simpan konfigurasi yang sudah Anda buat, lalu silahkan muat ulang layanan PHP FPM dengan perintah berikut.

$ sudo systemctl restart php7.4-fpm.service

Atur waktu habis pada Nextcloud

Seperti yang saya bilang diatas, Nextcloud juga memiliki pengaturan waktu habis sendiri. Hanya saja, untuk mengubah nilai waktu habis pada Nextcloud, Anda harus melakukan secara manual dengan mengubah kode sumbernya.

Ada dua berkas yang perlu diedit untuk mengubah interval waktu habis. Kedua berkas tersebut terletak di direktori yang berbeda.

Berkas pertama bernama Client.php yang terletak di /var/www/nextcloud/lib/private/Http/Client/. Editlah berkas Client.php dengan perintah berikut.

$ sudo nano /var/www/nextcloud/lib/private/Http/Client/Client.php

Silahkan manfaatkan fitur pencarian untuk menemukan pernyataan RequestOptions::TIMEOUT. Ubah nilai yang awalmya 120 menjadi 3600.

Berkas kedua bernama Installer.php yang berada di /var/www/nextcloud/lib/private/. Edit berkas tersebut dengan perintah berikut.

$ sudo nano /var/www/nextcloud/lib/private/Installer.php

Manfaatkan fitur pencarian editor Nano untuk menemukan baris $timeout = $this->isCLI ? 0 : 120;. Ubah nilai 120 menjadi 3600.

Konfigurasi tambahan

Dengan mengatur waktu habis di PHP FPM sebagai server side programming dan Nextcloud, Anda sudah menyelaraskan pengaturan keduanya.

Apakah itu cukup untuk mengatasi masalah cURL error 28: operation timed out?

Menurut saya sih, belum cukup ya. Karena pengaturan time out dibuat agar proses pengunduhan, pembaruan atau pemasangan Add Ons, dapat berjalan sesuai dengan batas waktu yang dibutuhkan oleh si Nextcloud itu sendiri.

Bagaimana dengan ukuran pengunduhan yang akan diambil oleh Nextcloud dan dimuat oleh web server dan server side programming-nya?

Anda musti menyesuaikannya juga, dong.

Menurut dokumentasi teknis Nextcloud, besaran berkas unduhan yang direkomendasikan Nextcloud adalah 512M atau lebih. Untuk itu, Anda perlu mengatur maksimal unduhan yang diizinkan. Baik di konfigurasi server side programming maupun di web server.

Atur maksimal ukuran ungahan di Nginx

Edit konfigurasi blok server Nginx agar dapat memproses unggahan berkas maksimal 512M.

$ sudo nano /etc/nginx/sites-available/nextcloud.conf

Tambahkan konfigurasi berikut tepat dibawah baris server_name _;.

...
client_max_body_size 512M;
...

Simpan konfigurasi dan muat ulang layanan Nginx.

$ sudo systemctl restart nginx.service

Atur maksimal ukuran unggahan di PHP FPM

Edit konfigurasi PHP FPM dengan mengeksekusi perintah berikut ini.

$ sudo nano /etc/php/7.4/fpm/php.ini

Gunakan fitur pencarian editor Nano untuk menemuan variabel berikut lalu ubah nilainya menjadi 512M.

upload_max_filesize = 512M
post_max_size = 512M

Simpan konfigurasi dan muat ulang layanan PHP FPM.

$ sudo systemctl restart php7.4-fpm.service

Uji coba

Setelah melakukan penyesuaian waktu habis dan besaran maksimal unggahan berkas yang dapat di proses oleh server side programming dan web server, sekarang waktunya menguji coba. Apakah konfigurasi yang sudah Anda lakukan bekerja dengan baik atau justru malah timbul galat yang lain?.

Pada kasus yang saya tulis di artikel ini, konfigurasi di atas sudah menyelesikan galat cURL error 28: operation timed out.

Pengujian yang saya lakukan adalah dengan memasang paket aplikasi yang sudah disediakan Nextcloud di dasbor. Disini, saya coba memasang Collabora Online (CODE) yang memiliki ukuran sekitar 300-an MB.

Galat "cURL Error 28: Operation Timed Out" pada Nextcloud 20 telah diperbaiki
Galat "cURL error 28: Operation timed out" pada Nextcloud 20 telah diperbaiki


Kesimpulan

Galat cURL error 28: operation timed out disebabkan oleh waktu habis yang terlalu singkat. Untuk menghindarinya, Anda bisa menyesuaikan waktu habis pada sisi server side prgramming dan Nextcloud.

Tidak hanya timeout, Anda juga harus mengatur batas maksimal ukuran untuk unggahan yang dapat diproses oleh sistem, dalam hal ini, PHP dan Nginx. Dengan memodifikasi batasan maksimal unggahan, diharapkan dapat mengontrol penggunaan media penyimpanan yang ada di server Anda.

Demikian artikel cara memperbaiki galat cURL error 28: operation timed out pada Nextcloud 20. Semoga bermanfaat untuk Anda dan orang-orang yang Anda cintai. Sampai jumpa lagi di artikel-artikel berikutnya.

Komentar

Postingan populer dari blog ini

Cara Membuat Menu Navigasi di Footer Blogger

Visual Studio Code Bisa Ngedit Berkas Secara Remote Via SSH, Canggih!

Cara Memperbaiki Galat Network Unreachable Resolving pada Named di CentOS 7