Nextcloud adalah perangkat opensource untuk penyimpanan dan file sharing publik dan konten pribadi seperti dokumen dan gambar, di server terpusat. Ini memungkinkan Anda membuat layanan yang dihosting sendiri seperti Dropbox, Google Drive, atau Mega.nz. Awalnya, itu dibuat oleh pengembang owncloud Frank Karlitschek. Pada tahun 2016, dia membagi proyek Owncloud dan membuat proyek baru dengan nama baru "Nextcloud"
Dalam panduan ini, Anda akan belajar cara menginstal Nextcloud di Debian 11 Bullseye terbaru. Anda akan menginstal Nextcloud di dengan LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB, dan PHP).
Persiapan Pra Instalasi
- Server Debian 11. Pastikan semua paket diperbarui ke versi terbaru.
- Akses root atau pengguna dengan hak akses root.
Ada beberapa langkah untuk Instalasi Nextcloud:
- Update Repository
- Instalasi web server apache
- Instalasidan konfigurasi PHP
- Instalasidan Konfigurasi MariaDB
- Instalasi Nextcloud dari Source Code
- Instalasi SSL Letsencrypt
- Konfigurasi Apache Virtual Host untuk Nextcloud
- Setting Nextcloud
Update Repositori
Pertama, jalankan perintah berikut untuk mendapatkan hak akses root.
1. Jika Anda telah menginstal 'sudo', jalankan perintah sudo di bawah ini.
sudo su
Sekarang ketik login kata sandi untuk pengguna Anda.
2. Jika Anda tidak memiliki paket sudo, jalankan perintah 'su' seperti di bawah ini
su
Sekarang ketik password root Anda lalu tekan 'Enter'.
3. Setelah itu, update semua repositori Debian Anda menggunakan perintah apt di bawah ini.
apt update
Instal Web Server Apache
Setelah memperbarui repositori Debian, sekarang saatnya melakukan instalasi web server apache dan mengaktifkan beberapa modul Apache untuk Nextcloud.
apt install apache2
Ketik 'y' dan tekan 'Enter' untuk melanjutkan instalasi.
Jika instalasi sudah selesai, cek service apache dengan menggunakan perintah berikut.
systemctl is-enabled apache2
systemctl status apache2
Anda akan melihat output 'enabled', yang berarti layanan apache akan running secara otomatis saat startup sistem. Dan status layanan apache saat ini, 'active (running)'.
Selanjutnya, aktifkan modul Apache 'ssl, rewrite, dan headers' dengan menjalankan perintah a2enmod di bawah ini.
a2enmod ssl rewrite headers
akan menampilkan hasil
Setelah itu, jalankan perintah berikut untuk me-restart layanan apache.
systemctl restart apache2
Ok ya setelah apache direstart, maka modul baru akan aktif. sekarang coba untuk verifikasi modul tersebut menggunakan perintah apachectl di bawah ini.
apachectl -M | egrep "ssl|rewrite|headers"
jika menampilkan seperti dibawah ini, maka module berhasil di aktifkan
abaikan Could not reliably determine the server full qualified domain name
Install dan konfigurasi PHP
Untuk panduan ini, Nextcloud akan menggunakan PHP dengan versi stabil terbaru PHP 8.0.
Secara default, repositori Debian menyediakan paket untuk PHP 8.0. Namun, Nextcloud memerlukan beberapa paket PHP tambahan yang dapat diinstal dari repositori pihak ke-3. Dan Anda akan menambahkan repositori baru ke sistem Debian Anda.
1. Jalankan perintah di bawah ini untuk menambahkan repositori PHP untuk sistem Debian.
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main"\
| sudo tee /etc/apt/sources.list.d/sury-php.list
Download GPG key ke '/etc/apt/trusted.gpg.d' .
curl -o /etc/apt/trusted.gpg.d/sury-php8.gpg https://packages.sury.org/php/apt.gpg
Sekarang jalankan perintah 'apt update' untuk memperbarui semua repositori.
apt update
2. Instal paket PHP dan modul PHP tambahan untuk Nextcloud menggunakan perintah apt di bawah ini.
apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu
Setelah itu, jalankan lagi perintah apt untuk menginstal beberapa paket tambahan.
apt install -y libmagickcore-dev
paket library 'libmagickcore-dev' diperlukan oleh php-imagick untuk pemrosesan gambar SVG di Nextcloud.
3. Jika semua instalasi paket selesai, ubah direktori kerja to '/etc/php/8.0/apache2' dan edit konfigurasi 'php.ini' . bisa menggunakan nano atau vi
cd /etc/php/8.0/apache2/
nano php.ini
Silahkan ubah beberapa opsi default dengan konfigurasi berikut.
file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
display_errors = Off
date.timezone = Europe/Amsterdam
output_buffering = Off
Hilangkan komentar opsi 'zend_extension=opcache' untuk memuat ekstensi opcache.
zend_extension=opcache
Cari bagian '[opcache]' ubah dengan konfigurasi dibawah ini
[opcache]
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
Simpan konfigurasi dengan menekan tombol 'Ctrl+x' dan ketik 'y', lalu tekan 'Enter' untuk keluar.
restart layanan apache menggunakan perintah di bawah ini.
systemctl restart apache2
Install dan Konfigurasi MariaDB
instal server database mariadb, jalankan perintah di bawah ini.
apt install mariadb-server mariadb-client
Ketik 'y' untuk konfirmasi dan menginstal paket mariadb.
Setelah instalasi selesai, periksa layanan mariadb menggunakan perintah berikut.
systemctl is-enabled mariadb
systemctl status mariadb
Amankan instalasi database dengan kata sandi root, menonaktifkan login remote root, dan menghapus database test
Untuk melakukannya, Anda dapat perintah 'mysql_secure_installation', yang disertakan pada instalasi default mariadb.
Jalankan perintah dibawah ini:
mysql_secure_installation
Tekan 'Enter' untuk melanjutkan
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Ketik 'Y' untuk enable 'unix_socket' otentifikasi user 'root'.
Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
... Success!
Ketika password untuk mariadb , lalu enter
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Ketik "Y" lalu tekan "Enter" untuk menghapus anonymous user dari mariadb.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
disable remote login untuk user 'root'. ketik "Y" dan tekan "Enter" untuk melanjutkan.
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
Ketik "Y" untuk menghapus database "test" dan tekan "Enter".
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
terakhir ketik "Y" untuk reload all tables privileges
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Ok, instalasi mariadb selesai
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Membuat Database dan user Nextcloud
masuk ke shell mariadb menggunakan perintah mysql di bawah ini.
mysql -u root -p
Buat database baru dengan nama nextcloud_db
CREATE DATABASE nextcloud_db;
Buat user dan password
CREATE USER nextclouduser@localhost IDENTIFIED BY 'StrongPassword';
izinkan user "nextclouduser" untuk akses tulis ke database "nextcloud_db"
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
reload all tables privileges
FLUSH PRIVILEGES;
Ok instalasi mariadb selesai , bisa keluar dengan ketik "quit" dan tekan "Enter"