Cara Install Nextcloud di CentOS 8
Nextcloud adalah perangkat lunak open source untuk membuat sebuah layanan cloud storage seperti halnya Dropbox atau Google Drive tetapi dapat diinstalasi di server milik sendiri (private server).
Nextcloud server mendukung berbagai distribusi Linux besar, seperti Ubuntu, Debian, Red Hat, CentOS, SUSE, dan openSUSE. Sementara untuk Nextcloud client tersedia untuk versi desktop (Windows, macOS, Linux) dan versi mobile (Android, iOS, Windows Phone).
0. Kebutuhan Sistem
Nextcloud server membutuhkan sistem dengan spesifikasi sebagai berikut:
Operating System
- Ubuntu 18.04 LTS (direkomendasikan)
- Red Hat Enterprise Linux 8 (direkomendasikan)
- Debian 10
- SUSE Linux Enterprise Server 15
- openSUSE Leap 42.1+
- CentOS 8
Database
- MySQL 5.7+ atau MariaDB 10.2+ (direkomendasikan)
- Oracle Database 11g
- PostgreSQL 9/10/11
- SQLite (hanya direkomendasikan untuk pengujian)
Web Server
- Apache 2.4 dengan mod_php atau php-fpm (direkomendasikan)
- nginx dengan php-fpm
PHP Runtime
- 7.2
- 7.3 (direkomendasikan)
- 7.4 (direkomendasikan)
Memory
Kapasitas memory yang dibutuhkan tergantung dari seberapa besar jumlah user, app, file dan aktivitas server.
Nextcloud membutuhkan minimum RAM 128MB, direkomendasikan minimum RAM 512MB.
1. Menyiapkan Server CentOS 8
Tutorial ini menggunakan VPS CentOS 8 di UpCloud dengan spesifikasi CPU 1 core, RAM 1GB, dan Storage 25GB.
Login SSH ke server, update sistem.
1 | dnf update -y |
Install langpack untuk mengatasi pesan error Failed to set locale, defaulting to C.UTF-8.
1 | dnf install langpacks-en glibc-all-langpacks -y |
Install EPEL repository.
1 | dnf install epel-release -y |
Install paket pendukung.
1 | dnf install unzip curl wget bash-completion mlocate policycoreutils-python-utils -y |
2. Menghubungkan Domain dengan Server
Tutorial ini menggunakan subdomain cloud.defnex.com. Di DNS manager, buat A record dengan hostname cloud.defnex.com dan server IP address.
ping domain untuk menguji apakah sudah terhubung ke server.
1 2 3 4 5 6 | ping cloud.defnex.com PING cloud.defnex.com (94.237.74.88) 56(84) bytes of data. 64 bytes from 94-237-74-88.sg-sin1.upcloud.host (94.237.74.88): icmp_seq=1 ttl=53 time=25.0 ms 64 bytes from 94-237-74-88.sg-sin1.upcloud.host (94.237.74.88): icmp_seq=2 ttl=53 time=29.1 ms 64 bytes from 94-237-74-88.sg-sin1.upcloud.host (94.237.74.88): icmp_seq=3 ttl=53 time=34.6 ms |
3. Install Apache Web Server
Install Apache web server.
1 | dnf install httpd -y |
Aktifkan dan jalankan service httpd.
1 2 3 | systemctl enable --now httpd systemctl start httpd systemctl status httpd |
Masukkan protokol http ke dalam FirewallD.
1 2 3 | firewall-cmd --add-service=http --permanent firewall-cmd --reload firewall-cmd --list-services |
Apache virtual host
Membuat file konfigurasi Apache virtual host untuk domain/subdomain.
1 2 | cd /etc/httpd/conf.d nano cloud.defnex.com.conf |
Isi dari file konfigurasi virtual host.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <VirtualHost *:80> ServerName cloud.defnex.com DocumentRoot /var/www/cloud.defnex.com <Directory /var/www/cloud.defnex.com> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/cloud.defnex.com SetEnv HTTP_HOME /var/www/cloud.defnex.com </Directory> ErrorLog /var/log/httpd/cloud.defnex.com_error.log CustomLog /var/log/httpd/cloud.defnex.com_access.log combined </VirtualHost> |
Membuat direktori document root.
1 2 | cd /var/www mkdir cloud.defnex.com |
Membuat file index.html untuk pengujian virtual host.
1 2 | cd cloud.defnex.com echo "cloud.defnex.com" > index.html |
Menguji konfigurasi Apache, hasilnya Syntax OK.
1 2 3 | apachectl -t Syntax OK |
Restart httpd service.
1 2 | systemctl restart httpd systemctl status httpd |
Tes akses http://cloud.defnex.com.
4. Install SSL
Install Certbot Let’s Encrypt.
1 | dnf install certbot python3-certbot-apache -y |
Nonaktifkan konfigurasi default SSL virtual host.
1 2 3 | cd /etc/httpd/conf.d mv ssl.conf ssl.conf.off systemctl restart httpd |
Request sertifikat SSL untuk subdomain cloud.defnex.com.
1 | certbot --apache -d cloud.defnex.com |
Masukkan informasi yang diminta.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): address@email.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N |
SSL sukses terinstall.
1 | Congratulations! You have successfully enabled https://cloud.defnex.com |
Masukkan protokol https ke dalam FirewallD.
1 2 3 | firewall-cmd --add-service=https --permanent firewall-cmd --reload firewall-cmd --list-services |
Tes akses https://cloud.defnex.com.
5. Install PHP
Versi PHP yang tersedia di default repository CentOS 8 adalah PHP 7.2. Untuk bisa menjalankan PHP 7.4 pasang REMI repository.
1 | dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y |
Aktifkan PHP 7.4 module stream.
1 | dnf module enable php:remi-7.4 -y |
Install PHP 7.4 beserta extension yang dibutuhkan oleh Nextcloud server.
1 | dnf install php74 php74-php php74-php-common php74-php-fpm php74-php-cli php74-php-gd php74-php-mbstring php74-php-intl php74-php-pecl-apcu php74-php-mysqlnd php74-php-opcache php74-php-json php74-php-zip -y |
Aktifkan dan jalankan PHP-FPM service.
1 2 3 | systemctl enable --now php74-php-fpm systemctl start php74-php-fpm systemctl status php74-php-fpm |
Restart httpd service.
1 | systemctl restart httpd |
Membuat file info.php untuk tes PHP.
1 2 | cd /var/www/cloud.defnex.com echo "<?php phpinfo(); ?>" > info.php |
Jika PHP sudah bisa berjalan dengan baik, hapus file info.php dan index.html.
1 | rm -f info.php index.html |
6. Install MariaDB Database
Install MariaDB database.
1 | dnf install mariadb-server -y |
Aktifkan dan jalankan service MariaDB.
1 2 3 | systemctl enable mariadb systemctl start mariadb systemctl status mariadb |
Amankan instalasi MariaDB.
1 | mysql_secure_installation |
Jawab pertanyaannya.
1 2 3 4 5 6 | Enter current password for root (enter for none): ENTER Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y |
Login ke MariaDB.
1 | mysql -u root -p |
Membuat database dan user untuk Nextcloud.
1 2 3 4 5 | CREATE DATABASE nextcloud; CREATE USER 'usrnxtcld'@'localhost' IDENTIFIED BY 'thesecret'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'usrnxtcld'@'localhost'; FLUSH PRIVILEGES; EXIT; |
7. Install Nextcloud Server
Download Nextcloud server, ekstrak, dan copy ke direktori document root.
1 2 3 | wget https://download.nextcloud.com/server/releases/nextcloud-19.0.1.zip unzip nextcloud-19.0.1.zip cp -R nextcloud/* /var/www/cloud.defnex.com |
Mengubah ownership dan permission document root.
1 2 3 | cd /var/www chown -R apache:apache cloud.defnex.com chmod -R 755 cloud.defnex.com |
Cek apakah SELinux aktif.
1 2 3 | getenforce Enforcing |
Jika SELinux aktif (Enforcing), restore context document root sebagai file web.
1 2 | semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/cloud.defnex.com(/.*)?' restorecon -Rv '/var/www/cloud.defnex.com' |
Akses https://cloud.defnex.com untuk install Nextcloud.
Membuat admin account.
Konfigurasi database, klik Storage & database, klik MySQL/MariaDB. Masukkan username, password, dan database.
Centang Install recommended apps jika ingin menginstalasi aplikasi Calendar, Contacts, Talk, Mail, & Collaborative editing.
Terakhir, klik Finish setup.
Nextcloud sudah selesai terinstall.
Selamat mencoba 🙂