Cara Install Nextcloud di Ubuntu 22.04 – Nextcloud adalah sebuah web aplikasi berbasis cloud storage atau penyimpanan cloud yang bisa digunakan untuk menyimpan, mengakses, dan berbagi berbagai jenis file dan data secara online. Nextcloud ini hampir mirip dengan layanan penyimpanan data seperti Google Drive atau Dropbox, tetapi yang membuat Nextcloud istimewa adalah kemampuannya untuk di-hosting di server pribadi atau di dalam infrastruktur Anda sendiri.
Baca Juga : Cara Install Nextcloud dengan PHP-FPM di Ubuntu 22.04
Setelah mengetahui apa itu nextcloud dan beberapa fitur andalanya, selanjutnya adalah proses instalasi nextcloud. Pada tutorial kali ini kita akan menggunakan VPS Ubuntu versi 22.04 LTS
Untuk spesifikasi VPS yang akan kita pakai adalah 2 Core vCPU, 4 GB RAM, serta 40GB SSD. Untuk VPSnya sendiri menggunakan provider dari AlibabaCloud Free Trial. Oke,, Jika VPS sudah ada dan siap bertempur, cekidot..
Sebelum memulai proses instal-install, wajib untuk mengupdate dan mengupgrade server terlebih dulu.
sudo apt update & sudo apt upgrade -y
Kemudian install web server Apache. berikut perintahnya.
sudo apt install apache2 -y
Cek status apache dan pastikan statusnya running. Buat juga agar service apache auto running dengan perintah berikut.
sudo service apache2 start
sudo systemctl enable apache2
sudo service apache2 status
Terakhir search IP Publik VPS di address bar browser chrome, edge, firefox, atau browser lain dan pastikan halaman Apache Default Page terbuka seperti ini.
Database yang akan kita pakai kali ini adalah Mariadb Server. berikut cara installnya
sudo apt install mariadb-server -y
Setelah berhasil menginstall service mariadb server, jalankan service mariadbnya dan buat agar service mariadb autostart. Terakhir cek status mariadb dan pastikan servicenya aktif.
sudo service mariadb start
sudo systemctl enable mariadb
sudo service mariadb status
Pastikan service mariadb running seperti ini.
Nextcloud membutuhkan PHP karena aplikasi ini dibangun menggunakan bahasa pemrograman PHP, yang berfungsi untuk menjalankan kode server-side dan menghasilkan antarmuka pengguna serta melakukan pemrosesan data.
Pertama Kita install dulu paket dependensi dengan menambahkan repository ondrej php.
sudo apt update
sudo apt install -y lsb-release gnupg2 ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Setelah repository berhasil ditambah, install php8.2 dan modul ekstensinya.
sudo apt install -y imagemagick php-imagick php8.2-common libapache2-mod-php8.2 php8.2-mysql php8.2-fpm php8.2-gd php8.2-curl php8.2-zip php8.2-xml php8.2-mbstring php8.2-bz2 php8.2-intl php8.2-gmp
Terakhir enable modul php8.2 dan reload service apache2
sudo a2enmod php8.2
sudo systemctl reload apache2
Kemudian buat file info.php untuk mengecek php sudah terinstall dengan benar di server kita
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Lalu search IP Publik VPS di address bar browser dengan atribut info.php. lihat pada gambar dibawah ini
Proses instalasi PHP8.2 sudah berhasil dan selesai. Langkah selanjutnya adalah hapus file info.php untuk menjaga keamanan server.
sudo rm /var/www/html/info.php
Untuk mendowload file master nextcloud, Anda bisa mengunjungi web official nextcloud di https://nextcloud.com/install . Di tutorial kali ini kita akan menginstal nextcloud versi terbaru.
cd ~
wget https://download.nextcloud.com/server/releases/latest.zip
kemudian ekstrak dengan unzip
sudo apt install unzip
sudo unzip latest.zip -d /var/www/
Terakhir ubah kepemilikan direktori ke www-data
sudo chown www-data:www-data /var/www/nextcloud/ -R
Untuk masuk ke server database MariaDB, Anda bisa menggunakan perintah berikut. Karena MariaDB sekarang menggunakan plugin unix_socket untuk mengautentikasi login, jadi tidak perlu memasukkan password root MariaDB. Cukup tambahkan awalan “sudo” sebelum perintah mysql.
sudo mysql
Kemudian buat database untuk nextcloud, buat juga usernya agar terpisah dari yang lain dan beri akses user agar bisa mengakses databasenya. seperti ini contohnya, pastikan kalian mengganti ‘your-password’ dengan password yang asli.
CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost identified by 'your-password';
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'your-password';
Terakhir Flush Privileges dan keluar dari konsol mysql.
flush privileges;
exit;
Kurang lebih beginilah prosesnya
Aapache Virtualhost ini yang akan digunakan untuk menyeting nama domain nextcloud, menyeting lokasi root dokumen, dan mengatur konfigurasi keamanan.
Untuk membuat apache virtualhost sendiri caranya adalah sebagai berikut :
Buat file conf di /etc/apache2/sites-available menggunakan text editor nano atau vim.
sudo nano /etc/apache2/sites-available/nextcloud.conf
Kemudian isikan dengan konfigurasi di bawah ini :
<VirtualHost *:80>
DocumentRoot "/var/www/nextcloud"
ServerName nextcloud.awanservers.com
ErrorLog ${APACHE_LOG_DIR}/nextcloud.error
CustomLog ${APACHE_LOG_DIR}/nextcloud.access combined
<Directory /var/www/nextcloud/>
Require all granted
Options FollowSymlinks MultiViews
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any
</Directory>
</VirtualHost>
Jika sudah, test kode konfigurasi virtualhost di atas dengan perintah berikut :
Pastikan hasilnya “Syntax Ok”.
sudo apache2ctl configtest
Langkah berikutnya aktifkan virtualhostnya
sudo a2ensite nextcloud.conf
Terakhir restart service apache untuk memuat perubahan.
sudo systemctl reload apache2
Langkah wajib yang harus dilakukan selanjutnya adalah mempoiting domain, yaitu mengarahkan ip address ke domain website. Untuk mempointing domain, Anda bisa masuk ke panel domain manajemen tempat Anda membeli domain.
Atau jika Anda menggunakan cloudflare, bisa mempointing domain seperti gambar di bawah ini. Saya rasa untuk domain kontrol selain cloudflare, cara pointingnya sama saja. Tinggal masukkan IP Publik server VPS ke A record domain.
Untuk SSL yang akan kita gunakan adalah dari lets encrypt dan menggunakan certbot untuk proses requestnya. Sebelum menginstall SSL, pertama install dulu paket dan dependensi yang diperlukan.
sudo apt install certbot python3-certbot-apache -y
Kemudian request SSL Sertifikat Lets Encrypt dengan perintah seperti ini
sudo certbot --apache --agree-tos --redirect --email [email protected] -d nextcloud.awanservers.com
Pastikan proses request SSL berhasil seperti ini :
Setelah request SSL berhasil, Sekarang website nextcloud Anda sudah menjadi HTTPS. Sertifikat SSL dari Lets Encrypt berlaku selama 90 hari atau 3 bulan. Nantinya setiap kali sertifikat SSL habis masa berlakunya akan otomatis direnew oleh server.
Setelah semua proses di atas sudah selesai dilakukan. Langkah selanjutnya adalah melakukan instalasi nextcloud di web browser.
https://namadomain.com
Isi username dan password terserah Anda, Untuk bagian configure database pilih MySQL/Mariadb dan isi sesuai nama database, username, dan password yang tadi sudah di buat. Terakhir klik Install.
Kurang lebih begini tampilan awal nextcloud.
Redis server ini akan berperan sebagai penyimpanan cache. Fungsinya agar mempercepat akses dan respons nextcloud. Karena dengan Redis, Nextcloud dapat mengurangi beban server dan meningkatkan kinerja secara keseluruhan.
Pertama kita install dulu redis servernya
sudo apt install redis-server -y
Kemudian start dan enable autorun service redis dan pastikan statusnya active (running)
sudo systemctl start redis-server
sudo systemctl enable redis-server
sudo systemctl status redis
setelah itu untuk mengkonfigurasi Redis menjadi cache nextcloud, Perlu menginstal ekstensi PHP-Redis agar nextcloud dapat berkomunikasi dengan Redis.
sudo apt install php8.2-redis
Kemudian cek ekstensi redis dan pastikan sudah enable seperti ini.
Kemudian hubungkan redis ke nextcloud agar menjadi cache.
sudo nano /var/www/nextcloud/config/config.php
Tambahkan baris konfigurasi berikut di atas simbol );
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
Lihat pada gambar dibawah ini ! Taruh di bawah baris ‘installed’ => true,
Terakhir restart service php dan nginx
sudo systemctl restart nginx php8.2-fpm
Berikut ini adalah beberapa tambahan konfigurasi untuk nextcloud, diantaranya troubleshooting error dan reset password lewat CLI.
Masukkan perintah berikut untuk mereset password user nextcloud. Ganti nextcloud_username dengan username asli akun Anda.
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword nextcloud_username
Di sini kita akan mengubah batas maksimal upload file dari yang awalnya 2MB menjadi 1 GB. Berikut caranya.
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 1024M/g' /etc/php/8.2/php.ini
sudo systemctl restart php8.2-fpm
Secara default, nextcloud menggunakan AJAX untuk memproses setiap task per load page. Agara penggunaan sistem lebih efisien, Anda bisa menggantinya dengan cron proses.
Pertama masuk ke dashboard nextcloud Anda, pergi ke Administration Settings ->Basic Settings kemudian ganti Background Job ke Cron
Kemudian tambahkan cron proses dengan user www-data
sudo -u www-data crontab -e
Tambahkan baris berikut untuk menjalankan cron setiap 5 menit sekali.
*/5 * * * * php8.2 -f /var/www/nextcloud/cron.php
Save dan keluar. Sekarang Background Job nextcloud sudah berganti menggunakan cron.
Jadi begitulah Cara Install Nextcloud di Ubuntu 22.04 menggunakan LAMP Stack. Setelah Langkah 1 sampai 9 sudah dilakukan, harusnya server nextcloud Anda sudah berjalan dengan lancar. Terimakasih sudah mengikuti tutorial ini. Untuk informasi lebih lanjut Anda bisa menulis komentar di bawah atau menghubungi saya melalui email di [email protected]