Cara menginstal Nextcloud di Ubuntu 18.04
Nextcloud adalah layanan cloud yang dihosting sendiri. Ini menyediakan penyimpanan yang disinkronkan, produktivitas, dan aplikasi groupware untuk penggunaan pribadi atau bisnis, yang dapat Anda akses di awan. Ini dapat dihosting di tempat (di jaringan lokal), atau di VPS di Internet.
Petunjuk ini memandu Anda melalui langkah-langkah yang diperlukan untuk menginstal Nextcloud di VPS.
Buat VPS yang menjalankan Ubuntu Server 18.04 LTS
Mulailah dengan instalasi baru Ubuntu 18.04.
Misalnya, jika Anda menggunakan Linode, dari dasbor Linode Anda pilih Membuat, kemudian Linode. Lalu, di bawah Pilih Distribusi, pilih Ubuntu 18.04 LTS.
Atau, jika Anda menggunakan Digital Ocean, dari dasbor Digital Ocean Anda pilih Membuat, Droplet. Lalu, di bawah Distribusi, pilih Ubuntu 18.04.3 (LTS) x64.
Layanan minimal $ 5 / bulan di Linode dan Digital Ocean menawarkan 1 GB RAM, 25 GB penyimpanan SSD, dan 1 TB lalu lintas jaringan bulanan. Untuk penggunaan pribadi, Nextcloud bekerja dengan baik pada spesifikasi ini. Jika Anda membutuhkan lebih banyak ruang disk, Anda dapat memilih paket yang lebih mahal.
Saat VPS Anda dibuat, pastikan Anda mengetahuinya alamat IP dan kata sandi root sebelum melanjutkan instruksi ini. Alamat IP terdaftar di dasbor untuk VPS Anda. Kata sandi root dipilih oleh Anda selama instalasi (Linode), atau dikirim ke email Anda (Digital Ocean).
Perbarui data DNS domain Anda
Sekarang adalah saat yang tepat untuk memperbarui data DNS domain Anda untuk diarahkan ke VPS Anda. Masuk ke pencatatan domain Anda, dan buat rekam A untuk domain Anda dengan alamat IPv4 VPS Anda. Secara opsional, Anda dapat membuat data AAAA yang mengarah ke alamat VPS IPv6.
Jika Anda tidak yakin bagaimana melakukan ini, periksa dokumentasi di situs web registrar Anda.
Disarankan menggunakan nama domain untuk server Anda, tetapi tidak wajib. Jika Anda tidak memiliki nama domain, Anda bisa mendapatkannya di registrar seperti NameCheap atau GoDaddy. Jika Anda tidak menginginkan nama domain, Anda dapat mengganti alamat IPv4 VPS Anda dengan nama domain dalam petunjuk ini.
Hubungkan ke VPS dengan SSH
Hubungkan ke VPS Anda dengan SSH, masuk sebagai pengguna akar. Misalnya, di Windows 10, buka prompt perintah dan jalankan perintah berikut.
ssh [email protected]address
Menggantikan alamat dengan nama domain atau alamat IP server Anda. Misalnya, jika alamat IPv4 VPS Anda adalah 123.45.67.89:
ssh [email protected]
Jika Anda baru-baru ini memperbarui data DNS Anda, informasi tersebut mungkin belum disebarkan ke server DNS Anda. Jika Anda tidak dapat terhubung menggunakan nama domain Anda, gunakan alamat IP Anda.
Jika ini adalah pertama kalinya Anda terhubung ke server, Anda akan diminta untuk memverifikasi keaslian kunci enkripsi server.
The authenticity of host 'example.com (123.45.67.89)' can't be established. ECDSA key fingerprint is SHA256:asdfPZq159216hjklgRBhD412b3PvkEjKBf0h352mZp. Are you sure you want to continue connecting (yes/no)?
Tipe Iya dan tekan Enter. Anda kemudian akan diminta untuk memasukkan kata sandi root VPS Anda.
Warning: Permanently added '198.74.58.146' to the list of known hosts. [email protected]'s password:
Ketik kata sandi root dan tekan Enter.
Perbarui Ubuntu dan buat pengguna
Saat Anda masuk, Anda akan melihat prompt perintah untuk server Anda.
[email protected]:~#
Perbarui sistem menggunakan manajer paket apt.
apt update && apt -y upgrade
Buat akun pengguna biasa (non-root). Pilih nama satu kata dengan huruf kecil. Misalnya, jika nama Anda Alice, Anda dapat memilih nama pengguna alice. Dalam contoh ini, kami akan memberi nama pengguna myuser.
adduser myuser
Jawab petunjuknya sebagai berikut.
Enter new UNIX password: (type a password and press Enter) Retype new UNIX password: (type it again and press Enter) Full Name []: (press Enter) Room Number []: (press Enter) Work Phone []: (press Enter) Home Phone []: (press Enter) Other []: (press Enter) Is the information correct? [Y/n] (press Enter)
Gunakan perintah usermod untuk menambahkan pengguna Anda ke sudo kelompok. Usermod memungkinkan Anda menjalankan perintah sudo, sehingga Anda dapat menjalankan perintah administrator tanpa masuk sebagai root.
usermod -aG sudo myuser
Setel nama host komputer Anda ke nama domain Anda. (Pengganti example.com dengan nama domain Anda yang sebenarnya.)
hostnamectl set-hostname example.com
Keluar dari server.
exit
Amankan VPS
Masuk ke server lagi, kali ini sebagai pengguna baru Anda.
ssh [email protected]
Anda akan disambut oleh prompt pengguna biasa.
[email protected]:~$
Perhatikan bahwa alih-alih a #, prompt diakhiri dengan a $. Ini menunjukkan Anda masuk sebagai pengguna biasa, bukan sebagai root.
Nonaktifkan login SSH root
Berbahaya mengizinkan login SSH oleh pengguna root, karena VPS Anda terpapar ke Internet, dan dapat menerima banyak upaya login yang tidak diinginkan. Langkah-langkah berikut memastikan bahwa tidak ada seorang pun (termasuk Anda) yang dapat masuk ke server sebagai root.
Anda harus selalu menonaktifkan login SSH root sesegera mungkin setelah membuat VPS.
Buka file / etc / ssh / sshd_config di editor teks. Dalam contoh ini, kami menggunakan editor teks nano. Itu sshd_config file memerlukan hak administrator untuk mengedit, jadi Anda harus mengawali nano perintah dengan sudo, dan masukkan kata sandi Anda (bukan kata sandi root) saat diminta.
sudo nano /etc/ssh/sshd_config
Di editor teks, gunakan tombol panah untuk menemukan baris yang bertuliskan PermitRootLogin ya. Ubah kata Iya untuk tidak.
Simpan file dengan menekan Ctrl + O, Memasukkan. Keluar dari editor dengan menekan Ctrl + X.
Mulai ulang server SSH untuk memuat pengaturan baru.
sudo systemctl restart sshd
Konfigurasikan firewall VPS
Untuk membantu mengamankan server Anda, gunakan utilitas ufw (“Firewall Tidak Rumit”) untuk membatasi akses ke port jaringan tertentu.
Pertama, tetapkan aturan default yang luas. Konfigurasikan firewall untuk mengizinkan semua lalu lintas keluar, dan tolak semua lalu lintas masuk.
sudo ufw default allow outgoing
sudo ufw default deny incoming
Kemudian, buat pengecualian untuk mengizinkan lalu lintas masuk untuk koneksi SSH (port 22), HTTP (port 80), dan HTTPS (port 443).
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
Aktifkan firewall, dengan menerapkan aturan ini.
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Tipe y dan tekan Enter.
Firewall is active and enabled on system startup
Instal server web, database, dan PHP
Instal server web Apache, sistem database MariaDB, dan bahasa skrip PHP.
sudo apt -y install apache2 mariadb-server php
Instal modul PHP yang dibutuhkan oleh Nextcloud.
sudo apt -y install php-curl php-gd php-mbstring php-zip php-xml php-mysql php-intl php-bz2 php-imagick
Konfigurasi MariaDB
Siapkan server MariaDB, dan konfigurasikan akun root-nya.
sudo mysql_secure_installation
Enter current password for root (enter for none): (press Enter) Change the root password? [Y/n] (press Enter) New password: (type a password, press Enter) Re-enter new password: (type it again, press Enter) Remove anonymous users? [Y/n] (press Enter) Disallow root login remotely? [Y/n] (press Enter) Remove test database and access to it? [Y/n] (press Enter) Reload privilege tables now? [Y/n] (press Enter)
Buka klien MariaDB.
sudo mysql
Jalankan perintah berikut di prompt MariaDB.
use mysql
update user set plugin='mysql_native_password' where user="root";
flush privileges;
q
Konfigurasi Apache
Aktifkan modul Apache yang dibutuhkan oleh Nextcloud.
sudo a2enmod rewrite headers env dir mime
Setel direktif ServerName global
Buka file konfigurasi global Apache untuk mengedit.
sudo nano /etc/apache2/apache2.conf
Di bagian atas file, masukkan baris berikut, menggunakan nama domain Anda, bukan example.com.
ServerName example.com
tekan Ctrl + O, Memasukkan untuk menyimpan file. tekan Ctrl + X untuk keluar.
Buat file konfigurasi host virtual Apache untuk Nextcloud
Buat file konfigurasi server web baru untuk Nextcloud. File tersebut akan kosong saat Anda membukanya.
sudo nano /etc/apache2/sites-available/nextcloud.conf
Letakkan teks ini di file.
ServerName example.com DocumentRoot /var/www/nextcloud/ Alias / "/var/www/nextcloud/" Require all granted AllowOverride All Options FollowSymLinks MultiViews Dav off
tekan Ctrl + O, Memasukkan untuk menyimpan file. tekan Ctrl + X untuk menutup file.
Unduh dan pasang Nextcloud
Ubah ke direktori home Anda (disingkat ~) menggunakan perintah cd.
cd ~
Buat direktori “Download” dengan perintah mkdir, lalu ubah ke direktori itu.
mkdir Downloads
cd Downloads
Gunakan utilitas wget untuk mengunduh versi terbaru Nextcloud, dan hash SHA512. Hash adalah file teks kecil yang berisi tanda tangan matematika yang membantu memverifikasi keaslian arsip Nextcloud.
wget https://download.nextcloud.com/server/releases/latest.tar.bz2{,.sha512}
Gunakan utilitas sha512sum untuk memverifikasi bahwa hash SHA512 dari arsip Nextcloud cocok dengan konten file teks.
sha512sum -c latest.tar.bz2.sha512
latest.tar.bz2: OK
Gunakan utilitas tar untuk mengekstrak konten arsip.
tar xjvf latest.tar.bz2
Salin direktori nextcloud yang telah diekstrak ke direktori / var / www /.
sudo cp -R nextcloud /var/www/
Gunakan utilitas chown untuk mengubah pengguna dan grup direktori / var / www / nextcloud (dan semua file dan subdirektorinya) ke pengguna / grup situs web khusus www-data.
sudo chown -R www-data:www-data /var/www/nextcloud/
Instal nextcloud dengan perintah berikut. Dalam perintah ini, ganti nilai berikut dengan milik Anda.
- dbpass.dll – kata sandi root MariaDB yang Anda tentukan di Konfigurasi MariaDB, di atas.
- ncuser – nama pengguna untuk pengguna administrator Nextcloud. Nilai ini tidak harus sama dengan nama pengguna VPS Anda. Misalnya, Anda dapat memilih admin, atau alice, dll. Pengguna ini memiliki hak administrator di aplikasi Nextcloud.
- ncpass – kata sandi untuk pengguna administrator Nextcloud Anda.
sudo -u www-data php /var/www/nextcloud/occ maintenance:install --database "mysql" --database-name "nextcloud" --database-user "root" --database-pass "dbpass" --admin-user "ncuser" --admin-pass "ncpass"
Setelah beberapa saat, jika semuanya bekerja dengan benar, pesan konfirmasi akan ditampilkan.
Nextcloud was successfully installed
Sebagai praktik yang baik, hapus riwayat perintah setelah memasukkan kata sandi teks biasa pada baris perintah.
history -c
Tambahkan nama domain Anda ke domain tepercaya Nextcloud.
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value=example.com
System config value trusted_domains => 1 set to string example.com
Aktifkan konfigurasi server web Nextcloud.
sudo a2ensite nextcloud.conf
Nonaktifkan situs web placeholder Apache default.
sudo a2dissite 000-default.conf
Muat ulang konfigurasi Apache.
sudo systemctl reload apache2
Aktifkan HTTPS
Aplikasi Nextcloud Anda saat ini hanya dapat diakses dengan HTTP. Langkah selanjutnya adalah mengaktifkan HTTPS untuk memastikan bahwa data sepenuhnya dienkripsi antara perangkat Nextcloud Anda dan server.
Instruksi ini menggunakan certbot utilitas untuk secara otomatis memperoleh sertifikat TLS gratis untuk domain Anda dari Let’s Encrypt. Certbot juga mengkonfigurasi Apache untuk mengenkripsi lalu lintas Nextcloud Anda dengan TLS.
Aktifkan modul Apache SSL, dan mulai ulang Apache.
sudo a2enmod ssl
sudo systemctl restart apache2
Instal dan jalankan certbot.
sudo apt install -y python-certbot-apache
sudo certbot --apache
Certbot meminta informasi kepada Anda. Jawab sebagai berikut.
- Masukkan alamat email Anda (wajib).
- Tipe SEBUAH dan tekan Enter untuk menyetujui persyaratan layanan Let’s Encrypt.
- Tipe Y untuk membagikan alamat email Anda dengan EFF, atau N untuk menolak, dan tekan Enter.
- Domain Apache Anda terdaftar. Ketik nomor domain yang lalu lintasnya ingin Anda enkripsi. Jika ini adalah satu-satunya situs web Anda di server, ketik 1 dan tekan Enter.
- Tipe 2 untuk mengalihkan permintaan HTTP ke HTTPS (sangat disarankan). Tekan enter.
Certbot secara otomatis memuat ulang konfigurasi Apache Anda, dan lalu lintas situs web Anda sekarang dienkripsi melalui HTTPS. Certbot juga mengkonfigurasi cron untuk memperbarui sertifikat Anda secara otomatis sebelum kadaluwarsa.
Aktifkan URL “cantik”
Secara default, URL Nextcloud Anda menyertakan “index.php” sebagai bagian dari alamat web. Anda dapat mengonfigurasi Nextcloud untuk menyembunyikan bagian URL ini, yang membuatnya terlihat lebih bagus saat membagikannya, misalnya saat membuat link untuk membagikan file.
Mempersingkat URL hanyalah perubahan tampilan, dan tidak memengaruhi fungsionalitas Nextcloud.
Untuk menghilangkan index.php dari URL Nextcloud Anda, edit file /var/www/nextcloud/config/config.php.
sudo nano /var/www/nextcloud/config/config.php
Lakukan dua perubahan berikut. Pertama, cari baris yang berisi:
'overwrite.cli.url' => 'http://localhost'
Di baris ini, ubah http: // localhost untuk https: //domainanda jadi terlihat seperti ini:
'overwrite.cli.url' => 'https://example.com',
Kemudian, tambahkan baris baru, yang berisi teks ini:
'htaccess.RewriteBase' => "https://www.computerhope.com/",
Simpan file dan keluar dari editor. (Di nano, tekan Ctrl + O, Memasukkan, Ctrl + X.)
Terakhir, jalankan perintah ini untuk memperbarui file .htaccess Nextcloud Anda dengan konfigurasi baru.
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
Perubahan segera berlaku, tanpa memulai ulang layanan apa pun. URL lama dengan “index.php” masih berfungsi normal, tetapi permintaan baru menggunakan format URL yang “lebih cantik”.