GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal NextCloud di Ubuntu 20.04 dengan Nginx (LEMP Stack)

Tutorial ini akan menunjukkan cara menginstal NextCloud di Ubuntu 20.04 LTS dengan server web Nginx.

Apa itu NextCloud?

NextCloud adalah solusi penyimpanan cloud self-hosted open-source gratis. Secara fungsional mirip dengan Dropbox. Solusi penyimpanan cloud eksklusif (Dropbox, Google Drive, dll.) memang nyaman, tetapi dengan harga tertentu:solusi tersebut dapat digunakan untuk mengumpulkan data pribadi karena file Anda disimpan di komputer mereka. Jika Anda khawatir tentang privasi, Anda dapat beralih ke NextCloud, yang dapat Anda instal di server rumah pribadi Anda atau di server pribadi virtual (VPS). Anda dapat mengunggah file Anda ke server Anda melalui NextCloud dan kemudian menyinkronkan file-file itu ke komputer desktop, laptop, atau ponsel cerdas Anda. Dengan cara ini Anda memiliki kontrol penuh atas data Anda.

Fitur NextCloud

  • Gratis dan sumber terbuka
  • Enkripsi ujung ke ujung, artinya file dapat dienkripsi pada perangkat klien sebelum diunggah ke server, jadi meskipun seseorang mencuri server Anda, mereka tidak dapat membaca file Anda.
  • Dapat diintegrasikan dengan suite office online (Collobora Online, OnlyOffice) sehingga Anda dapat membuat dan mengedit file doc, ppt, xls langsung dari NextCloud.
  • App store berisi ratusan aplikasi untuk memperluas fungsionalitas (seperti aplikasi kalender, aplikasi kontak, aplikasi pencatat, aplikasi konferensi video, dll).
  • Klien sinkronisasi tersedia di Linux, macOS, Windows, iOS, dan android.

Prasyarat

NextCloud ditulis dalam bahasa pemrograman PHP. Untuk mengikuti tutorial ini, Anda harus terlebih dahulu menginstal LEMP stack di Ubuntu 20.04 . Jika Anda belum melakukannya, silakan lihat tutorial berikut.

  • Cara Memasang LEMP Stack (Nginx, MariaDB, PHP7.4-FPM) di Ubuntu 20.04

Anda dapat menginstal NextCloud di server rumah Anda atau VPS (server pribadi virtual). Anda juga memerlukan nama domain, sehingga nantinya Anda dapat mengaktifkan HTTPS untuk mengenkripsi lalu lintas HTTP. Saya mendaftarkan nama domain saya dari NameCheap karena harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup. Nextcloud dapat diinstal tanpa nama domain, tetapi sangat tidak masuk akal jika Anda tidak mengenkripsi koneksi HTTP untuk mencegah pengintaian. Saya sarankan membeli nama domain, jika Anda benar-benar ingin mengotak-atik perangkat lunak server dan menggunakannya secara maksimal.

Sekarang mari kita instal NextCloud.

Langkah 1:Unduh NextCloud di Ubuntu 20.04

Masuk ke server Ubuntu 20.04 Anda. Kemudian unduh arsip zip NextCloud ke server Anda. Versi stabil terbaru adalah 21.0.1 pada saat penulisan ini. Anda mungkin perlu mengubah nomor versi. Buka https://nextcloud.com/install dan klik download for server tombol untuk melihat versi terbaru.

Anda dapat menjalankan perintah berikut untuk mengunduhnya di server Anda.

wget https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip

Anda selalu dapat menggunakan format URL di atas untuk mengunduh NextCloud. Jika versi baru keluar, cukup ganti 21.0.1 dengan nomor versi baru.

Setelah diunduh, ekstrak arsip dengan unzip .

sudo apt install unzipsudo unzip nextcloud-21.0.1.zip -d /usr/share/nginx/

-d opsi menentukan direktori target. File web NextCloud akan diekstraksi ke /usr/share/nginx/nextcloud/ . Kemudian kita perlu mengubah pemilik direktori ini menjadi www-data sehingga server web (Nginx) dapat menulis ke direktori ini.

sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R

Langkah 2:Buat Database dan Pengguna untuk Nextcloud di Server Database MariaDB

Masuk ke server database MariaDB dengan perintah berikut. Karena MariaDB sekarang menggunakan unix_socket plugin untuk otentikasi login pengguna, tidak perlu memasukkan kata sandi root MariaDB. Kita hanya perlu mengawali mysql perintah dengan sudo .

sudo mysql

Kemudian buat database untuk Nextcloud. Tutorial ini memberi nama database nextcloud. Anda dapat menggunakan nama apa pun yang Anda suka.

buat database nextcloud;

Buat pengguna basis data. Sekali lagi, Anda dapat menggunakan nama pilihan Anda untuk pengguna ini. Ganti your-password dengan kata sandi pilihan Anda.

buat pengguna nextclouduser@localhost yang diidentifikasi dengan 'kata sandi Anda';

Berikan pengguna ini semua hak istimewa di nextcloud basis data.

berikan semua hak istimewa di nextcloud.* ke nextclouduser@localhost yang diidentifikasi dengan 'kata sandi Anda';

Hapus hak istimewa dan keluar.

hak flush;keluar;

Langkah 3:Buat File Konfigurasi Nginx untuk Nextcloud

Buat nextcloud.conf file di /etc/nginx/conf.d/ direktori, dengan editor teks baris perintah seperti Nano.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Salin dan tempel teks berikut ke dalam file. Ganti nextcloud.example.com dengan sub-domain pilihan Anda sendiri. Jangan lupa untuk membuat catatan DNS A untuk sub-domain ini di editor zona DNS Anda. Jika Anda tidak memiliki nama domain asli, saya sarankan pergi ke NameCheap untuk membelinya. Harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

server { dengarkan 80; dengarkan [::]:80; nama_server nextcloud.example.com; # Tambahkan header untuk melayani header terkait keamanan add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag tidak ada; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies tidak ada; add_header Referrer-Policy no-referrer; #Saya menemukan header ini diperlukan di Ubuntu, tetapi tidak di Arch Linux. add_header X-Frame-Options "SAMA ASAL"; # Jalur ke root dari root instalasi Anda /usr/share/nginx/nextcloud/; access_log /var/log/nginx/nextcloud.access; error_log /var/log/nginx/nextcloud.error; lokasi =/robots.txt { izinkan semua; log_not_ditemukan mati; access_log off; } # 2 aturan berikut hanya diperlukan untuk aplikasi user_webfinger. # Batalkan komentar jika Anda berencana menggunakan aplikasi ini. #rewrite ^/.well-known/host-meta /public.php?service=host-meta last; #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json # terakhir; lokasi =/.well-known/carddav { kembali 301 $scheme://$host/remote.php/dav; } lokasi =/.well-known/caldav { kembali 301 $scheme://$host/remote.php/dav; } lokasi ~ /.well-known/acme-challenge { izinkan semua; } # atur ukuran unggahan maksimal client_max_body_size 512M; fastcgi_buffers 64 4K; # Nonaktifkan gzip untuk menghindari penghapusan header ETag gzip off; # Batalkan komentar jika server Anda dibuat dengan modul ngx_pagespeed # Modul ini saat ini tidak didukung. #kecepatan halaman mati; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; lokasi / { tulis ulang ^ /index.php; } lokasi ~ ^/(?:build|tests|config|lib|3rdparty|template|data)/ { tolak semua; } lokasi ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { tolak semua; } lokasi ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34 ])\.php(?:$|/) { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; try_files $fastcgi_script_name =404; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Hindari pengiriman header keamanan dua kali fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active benar; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors aktif; fastcgi_request_buffering mati; } lokasi ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; indeks indeks.php; } # Menambahkan header kontrol cache untuk file js dan css # Pastikan di BAWAH lokasi blok PHP ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Kontrol Tembolok "publik, usia maks=7200"; # Tambahkan header untuk melayani header terkait keamanan (Hal ini dimaksudkan untuk # memiliki yang diduplikasi dengan yang di atas) add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag tidak ada; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies tidak ada; add_header Referrer-Policy no-referrer; # Opsional:Jangan log akses ke aset access_log off; } lokasi ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; # Opsional:Jangan log akses ke aset lain access_log off; }}

Simpan dan tutup file. (Untuk menyimpan file di editor teks Nano, tekan Ctrl+O , lalu tekan Enter untuk mengkonfirmasi. Untuk keluar, tekan Ctrl+X .)

Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Langkah 4:Instal dan Aktifkan Modul PHP

Jalankan perintah berikut untuk menginstal modul PHP yang diperlukan atau direkomendasikan oleh NextCloud.

sudo apt install imagemagick php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp

Langkah 5:Aktifkan HTTPS

Sekarang Anda dapat mengakses wizard penginstalan web Nextcloud di browser web Anda dengan memasukkan nama domain untuk penginstalan Nextcloud Anda.

nextcloud.example.com

Jika halaman web tidak dapat dimuat, Anda mungkin perlu membuka port 80 di firewall.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Dan juga port 443.

sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Sebelum memasukkan informasi sensitif apa pun, kita harus mengaktifkan koneksi HTTPS aman di Nextcloud. Kami dapat memperoleh sertifikat TLS gratis dari Let's Encrypt. Instal klien Let's Encrypt (certbot) dari repositori Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx adalah plugin Nginx. Selanjutnya, jalankan perintah berikut untuk mendapatkan sertifikat TLS gratis menggunakan plugin Nginx.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d nextcloud.example.com

Dimana:

  • –nginx :Gunakan autentikator dan penginstal Nginx
  • –setuju-untuk :Setuju dengan persyaratan layanan Let's Encrypt
  • –mengalihkan :Terapkan HTTPS dengan menambahkan 301 redirect.
  • –hsts :Aktifkan Keamanan Transportasi Ketat HTTP. Ini bertahan dari serangan stripping SSL/TLS.
  • –staple-ocsp :Aktifkan Stapel OCSP.
  • –email :Email yang digunakan untuk pendaftaran dan kontak pemulihan.
  • -d flag diikuti oleh daftar nama domain, dipisahkan dengan koma. Anda dapat menambahkan hingga 100 nama domain.

Anda akan ditanya apakah Anda ingin menerima email dari EFF (Electronic Frontier Foundation). Setelah memilih Y atau T, sertifikat TLS Anda akan secara otomatis diperoleh dan dikonfigurasi untuk Anda, yang ditunjukkan oleh pesan di bawah ini.

Saya menemukan bahwa Certbot mungkin tidak dapat menambahkan header HSTS di file konfigurasi Nginx untuk Nextcloud. Jika Anda ingin mengaktifkan HSTS (HTTP Strict Transport Security), maka edit file tersebut.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Kami kemudian dapat menambahkan baris berikut di blok server SSL untuk mengaktifkan header HSTS. (Jika sudah ada, maka konfigurasi Anda baik-baik saja.)

add_header Strict-Transport-Security "max-age=31536000" selalu;

Anda juga dapat mengaktifkan protokol HTTP2 dengan menambahkan opsi http2 , yang akan mempercepat pemuatan halaman web.

dengarkan 443 ssl http2; # dikelola oleh Certbot

Seperti di bawah ini.

Simpan dan tutup file. Kemudian ketik konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Konfigurasi di atas akan mendapatkan skor A+ pada tes SSL.

Langkah 6:Selesaikan Instalasi di Browser Web Anda

Sekarang Anda dapat mengakses wizard penginstalan web Nextcloud menggunakan koneksi HTTPS.

https://nextcloud.example.com

Untuk menyelesaikan instalasi, Anda perlu membuat akun admin, masukkan path folder data Nextcloud, masukkan detail database yang Anda buat pada langkah 2. Anda dapat menggunakan localhost default sebagai alamat host, atau Anda dapat memasukkan localhost:3306 , saat MariaDB mendengarkan pada port 3306.

Folder data adalah tempat file pengguna disimpan. Untuk keamanan, yang terbaik adalah menempatkan direktori data di luar direktori webroot Nextcloud. Jadi, alih-alih menyimpan file pengguna di bawah /usr/share/nginx/nextcloud/data/ , kita dapat mengubahnya menjadi /usr/share/nginx/nextcloud-data . yang dapat dibuat dengan perintah berikut:

sudo mkdir /usr/share/nginx/nextcloud-data

Kemudian pastikan pengguna Nginx (www-data ) memiliki izin menulis ke direktori data.

sudo chown www-data:www-data /usr/share/nginx/nextcloud-data -R

Klik tombol Finish Setup tombol, Anda akan melihat antarmuka Web Nextcloud. Selamat! Anda dapat mulai menggunakannya sebagai penyimpanan cloud pribadi Anda.

Cara Mengatur Notifikasi Email NextCloud

Jika instans NextCloud Anda akan digunakan oleh lebih dari satu orang, server NextCloud Anda harus dapat mengirim email transaksional, seperti email pengaturan ulang kata sandi. Pertama, Anda harus menetapkan alamat email untuk akun Anda sendiri. Buka Settings -> Personal Info dan tetapkan alamat email untuk akun Anda.

Lalu buka Setelan -> Setelan dasar . Anda akan menemukan pengaturan server email. Ada dua mode pengiriman:sendmail dan smtp . Anda dapat memilih sendmail mode jika host NextCloud Anda menjalankan server SMTP.

Jika Anda ingin menggunakan server SMTP yang berjalan di host lain, pilih smtp mode dan masukkan alamat server SMTP dan kredensial login seperti di bawah ini. Pilih STARTTLS untuk enkripsi.

Untuk cara setting email server silahkan simak tutorial berikut ini. Catatan bahwa saya sangat merekomendasikan menjalankan server email iRedMail pada OS bersih yang baru. Menginstal iRedMail pada OS yang memiliki aplikasi web lain dapat gagal, dan kemungkinan merusak aplikasi yang ada.

  • Cara menyiapkan server email berfitur lengkap dengan mudah di Ubuntu 20.04 dengan iRedMail

Cara Mengatur Ulang Kata Sandi Pengguna Nextcloud Dari Baris Perintah

Jika Anda kehilangan kata sandi akun admin Anda, dan Anda tidak mengatur pengiriman email di Nextcloud, maka Anda perlu mengatur ulang kata sandi dengan menjalankan perintah berikut di server Anda. Ganti nextcloud_username dengan nama pengguna asli Anda.

sudo -u www-data php /usr/share/nginx/nextcloud/occ pengguna:resetpassword nextcloud_username 

Ada juga perintah lain yang mungkin berguna bagi Anda. Cantumkan perintah yang tersedia dengan:

sudo -u www-data php /usr/share/nginx/nextcloud/occ

atau

sudo -u www-data php /usr/share/nginx/nextcloud/console.php

Cara Memindahkan Direktori Data

Jika Anda perlu memindahkan direktori data NextCloud, ada 4 langkah untuk melakukannya. Pertama, Anda perlu menggunakan cp perintah untuk menyalin direktori data ke direktori baru. Misalnya, titik pemasangan hard drive eksternal saya adalah /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731 . Saya membuat direktori data baru di hard drive eksternal.

sudo mkdir /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Kemudian saya salin direktori data asli ke direktori data baru. -R flag berarti operasi penyalinan bersifat rekursif.

sudo cp /usr/share/nginx/nextcloud-data/* /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Anda juga perlu menyalin .ocdata berkas.

sudo cp /usr/share/nginx/nextcloud-data/.ocdata /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Selanjutnya, Anda perlu mengatur www-data (Pengguna Nginx) sebagai pemilik.

sudo chown www-data:www-data /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Terakhir, Anda perlu mengedit config.php berkas.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Temukan baris berikut dan ubah nilai datadirectory .

'datadirectory' => '/usr/share/nginx/nextcloud-data',

Simpan dan tutup file. Muat ulang halaman web NextCloud dan selesai.

Langkah 7:Tingkatkan Batas Memori PHP

Batas memori PHP default adalah 128MB. NextCloud merekomendasikan 512MB untuk kinerja yang lebih baik. Untuk mengubah batas memori PHP, edit php.ini berkas.

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

Temukan baris berikut. (baris 409)

memory_limit =128M

Ubah nilainya.

memory_limit =512M

Simpan dan tutup file. Atau, Anda dapat menjalankan perintah berikut untuk mengubah nilai tanpa membuka file secara manual.

sudo sed -i 's/memory_limit =128M/memory_limit =512M/g' /etc/php/7.4/fpm/php.ini

Kemudian muat ulang PHP-FPM layanan agar perubahan diterapkan.

sudo systemctl reload php7.4-fpm

Langkah 8:Siapkan PHP untuk Mengkueri Variabel Lingkungan Sistem dengan Benar

Edit www.conf berkas.

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

Temukan baris berikut (baris 396).

;clear_env =tidak

Hapus titik koma untuk menghapus komentar pada baris ini.

clear_env =tidak

Simpan dan tutup file. Atau, Anda dapat menjalankan perintah berikut untuk menghapus komentar pada baris ini tanpa membuka file secara manual.

sudo sed -i 's/;clear_env =no/clear_env =no/g' /etc/php/7.4/fpm/pool.d/www.conf

Kemudian muat ulang PHP-FPM layanan agar perubahan diterapkan.

sudo systemctl reload php7.4-fpm

Langkah 9:Tingkatkan Batas Ukuran File Unggah

Batas ukuran file unggahan maksimum default yang ditetapkan oleh Nginx adalah 1MB. Untuk mengizinkan pengunggahan file besar ke server NextCloud Anda, edit file konfigurasi Nginx untuk NextCloud.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Kami telah menetapkan ukuran file maksimum dalam file ini, seperti yang ditunjukkan oleh

client_max_body_size 512M;

Anda dapat mengubahnya jika mau, seperti 1G.

client_max_body_size 1024M;

Simpan dan tutup file. Kemudian muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

PHP juga menetapkan batas ukuran file unggahan. Ukuran file maksimum default untuk mengunggah adalah 2MB. Untuk meningkatkan batas ukuran upload, edit file konfigurasi PHP.

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

Temukan baris berikut (baris 846).

upload_max_filesize =2M

Ubah nilainya seperti di bawah ini:

upload_max_filesize =1024M

Simpan dan tutup file. Atau, Anda dapat menjalankan perintah berikut untuk mengubah nilai tanpa membuka file secara manual.

sudo sed -i 's/upload_max_filesize =2M/upload_max_filesize =1024M/g' /etc/php/7.4/fpm/php.ini

Kemudian restart PHP-FPM.

sudo systemctl restart php7.4-fpm

Langkah 10:Konfigurasikan Redis Cache untuk NextCloud

Jika Anda membuka pengaturan NextCloud Anda -> ikhtisar halaman, Anda mungkin melihat peringatan berikut:

Tidak ada cache memori yang dikonfigurasi. Untuk meningkatkan kinerja Anda, harap konfigurasikan memcache jika tersedia.

Kami akan mengaktifkan cache memori untuk nextCloud dengan menggunakan Redis. Jalankan perintah berikut untuk menginstal server Redis dari repositori Ubuntu.

sudo apt install redis-server

Anda dapat memeriksa versinya dengan:

redis-server -v

Contoh keluaran:

Server Redis v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923

Sekarang kita dapat memeriksa apakah server redis sedang berjalan.

systemctl status redis

Petunjuk:Jika perintah di atas tidak segera berhenti, Anda dapat menekan tombol Q untuk mendapatkan kembali kendali terminal.

Dari tangkapan layar di atas, kita dapat melihat bahwa itu berjalan dan mulai otomatis diaktifkan. Jika karena alasan apa pun tidak berjalan, jalankan perintah berikut:

sudo systemctl start redis-server

Dan jika mulai otomatis saat boot tidak diaktifkan, Anda dapat menggunakan perintah berikut untuk mengaktifkannya:

sudo systemctl aktifkan redis-server

Untuk mengonfigurasi Redis sebagai cache untuk nextCloud, kita perlu menginstal ekstensi PHP untuk berinteraksi dengan Redis.

sudo apt install php-redis

Periksa apakah ekstensi diaktifkan.

php --ri redis

Kita dapat melihat bahwa ekstensi Redis diaktifkan. Jika tidak diaktifkan, jalankan perintah berikut:

sudo phpenmod redis

Selanjutnya, edit file konfigurasi nextCloud.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Tambahkan baris berikut di atas akhiran ); baris.

'memcache.distributed' => '\OC\Memcache\Redis','memcache.local' => '\OC\Memcache\Redis','memcache.locking' => '\OC\Memcache\Redis' ,'redis' => array( 'host' => 'localhost', 'port' => 6379, ),

Simpan dan tutup file. Kemudian restart Nginx dan PHP-FPM.

sudo systemctl restart nginx php7.4-fpm

Sekarang buka pengaturan NextCloud -> ikhtisar halaman lagi dan segarkan halaman web, peringatan tentang cache memori akan hilang.

Menambahkan Indeks yang Hilang

Jika Anda melihat pesan berikut di Setelan NextCloud -> Ringkasan halaman,

Basis data tidak memiliki beberapa indeks. Karena fakta bahwa menambahkan indeks pada tabel besar dapat memakan waktu lama, indeks tidak ditambahkan secara otomatis.

Maka Anda perlu menambahkan indeks tersebut secara manual. Ubah ke direktori webroot Nextcloud.

cd /usr/share/nginx/nextcloud/

Jalankan perintah berikut untuk menambahkan indeks ke database Nextcloud.

sudo -u www-data php occ db:add-missing-indices

Sekarang jika Anda menyegarkan Setelan NextCloud -> Ringkasan halaman, peringatan tentang indeks yang hilang akan hilang.

Konversi ke Big Int

Jika Anda melihat pesan berikut di Setelan NextCloud -> Ringkasan halaman,

Beberapa kolom dalam database tidak memiliki konversi ke int besar. Karena fakta bahwa mengubah jenis kolom pada tabel besar dapat memakan waktu lama, mereka tidak diubah secara otomatis.

Maka Anda perlu mengubah jenis kolom secara manual. Ubah ke direktori webroot Nextcloud.

cd /usr/share/nginx/nextcloud/

Ubah Nextcloud Anda ke mode pemeliharaan untuk mencegah pengguna masuk dan membuat perubahan.

sudo -u www-data php occ maintenance:mode --on

Kemudian jalankan perintah berikut untuk mengubah jenis kolom.

sudo -u www-data php occ db:convert-filecache-bigint

Setelah selesai, matikan mode pemeliharaan.

sudo -u www-data php occ maintenance:mode --off

Sekarang jika Anda menyegarkan Setelan NextCloud -> Ringkasan halaman, peringatan tentang int besar harus hilang.

Cara Menginstal Klien NextCloud di Desktop Ubuntu 20.04

Jalankan perintah berikut di desktop Ubuntu 20.04 untuk menginstal klien dari repositori default.

sudo apt install nextcloud-client

Klien NextCloud di Ubuntu 20.04

Perangkat lunak klien untuk macOS, Windows, Android, dan iOS dapat ditemukan di halaman unduhan Nextcloud.

Cara Mengaktifkan OnlyOffice/Collabora Online

Secara default, Nextcloud dikirimkan dengan dukungan untuk OnlyOffice, yang merupakan suite kantor online yang memungkinkan Anda mengedit file doc, ppt, xls langsung dari NextCloud. Kita hanya perlu menginstal aplikasi untuk menggunakan fitur ini. Buka Apps Nextcloud -> Office & Text . Temukan dan aktifkan community document server aplikasi.

Sekarang ketika Anda mengklik tombol tambah (+) di Nextcloud, Anda akan dapat membuat dokumen Word, spreadsheet, dan presentasi langsung dari server Nextcloud Anda.

Namun, saya menemukan aplikasi ini tidak terlalu dapat diandalkan. Dan edisi komunitas hanya mengizinkan 20 pengguna paling banyak. Anda perlu membeli edisi perusahaan jika Anda memiliki lebih dari 20 pengguna. Ada suite kantor online berbasis LibreOffice open-source lain yang disebut Collabora Online yang memiliki fungsi yang sama, tetapi tanpa batasan jumlah pengguna. Anda dapat membaca artikel berikut untuk mengintegrasikannya dengan Nextcloud.

  • Mengintegrasikan Collabora Online dengan Nextcloud di Ubuntu dengan Docker

Menambahkan Entri DNS Lokal

Disarankan untuk mengedit /etc/hosts file di server Nextcloud Anda dan tambahkan entri berikut, sehingga Nextcloud sendiri tidak perlu menanyakan DNS publik, yang dapat meningkatkan stabilitas secara keseluruhan. Jika server Nextcloud Anda tidak dapat menyelesaikan nextcloud.example.com hostname, maka Anda mungkin mengalami 504 gateway time out kesalahan.

127.0.0.1 localhost nextcloud.example.com

Alamat IP di /etc/hosts file dapat memiliki beberapa nama host, jadi jika Anda memiliki aplikasi lain yang diinstal pada kotak yang sama, Anda juga dapat menambahkan nama host atau sub-domain lain pada baris yang sama seperti ini:

127.0.0.1 localhost fokus ubuntu nextcloud.example.com collabora.example.com

Menggunakan Cron untuk Menjalankan Pekerjaan Latar Belakang

Secara default, Nextcloud menggunakan AJAX untuk menjalankan satu tugas dengan setiap pemuatan halaman. Anda dapat menggunakan layanan cron sistem yang lebih efisien untuk menjalankan pekerjaan latar belakang. Buka Setelan Nextcloud -> Setelan Dasar dan pilih Cron .

Selanjutnya, edit www-data file crontab pengguna.

sudo -u www-data crontab -e

Tambahkan baris berikut di file ini, sehingga tugas cron akan berjalan setiap 5 menit.

*/5 * * * * php7.4 -f /usr/share/nginx/nextcloud/cron.php

Simpan dan tutup file.

(Opsional) Mencegah Upaya Masuk Berbahaya

Jika komputer Anda memiliki alamat IP publik statis, Anda dapat membuat daftar putih IP di file konfigurasi Nginx.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Tambahkan baris berikut di blok server SSL untuk membatasi akses ke /login URL, jadi hanya alamat IP Anda yang dapat mengakses URL ini. Ganti 78.56.34.12 dengan alamat IP Anda sendiri.

lokasi ~* ^/login{ try_files $uri /index.php; termasuk fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Hindari pengiriman header keamanan dua kali fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active benar; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors aktif; fastcgi_request_buffering mati; izinkan 78.56.34.12; tolak semua;}

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Jika Anda tidak memiliki alamat IP statis di jaringan rumah, Anda dapat menyiapkan server VPN di pusat data.

Kiat Pemecahan Masalah

Jika Anda menemukan kesalahan, Anda dapat memeriksa salah satu file log berikut untuk mencari tahu apa yang salah.

  • Log kesalahan Nginx:/var/log/nginx/error.log
  • Log kesalahan Nginx untuk host virtual Nextcloud:/var/log/nginx/nextcloud.error
  • Log aplikasi Nextcloud:/usr/share/nginx/nextcloud/data/nextcloud.log

Misalnya, saya pernah mengalami “Internal Server Error ” pada instance Nextcloud saya dan /var/log/nginx/nextcloud.error file memberi tahu saya bahwa

FastCGI terkirim dalam stderr:"Pesan PHP:PHP Kesalahan fatal:Uncaught OC\HintException:[0]:Memcache \OC\Memcache\Redis tidak tersedia untuk cache lokal (Apakah modul PHP yang cocok diinstal dan diaktifkan?) 

Ternyata karena saya menggunakan ppa:ondrej/php PPA di server Ubuntu saya, saya juga perlu menginstal php7.4-redis selain php-redis paket.

Memperbarui Nextcloud

Penting untuk selalu memperbarui server Nextcloud Anda dengan keamanan terbaru dan perbaikan bug. Baca tutorial di bawah ini untuk mempelajari cara meningkatkan Nextcloud.

  • 2 Cara untuk Meningkatkan Nextcloud [Command-Line &GUI]

Ubuntu
  1. Cara Menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal LEMP di Ubuntu 16.04

  3. Cara Menginstal WordPress dengan LEMP Stack di Ubuntu 18.04

  1. Cara Menginstal Nextcloud dengan Nginx di Ubuntu 18.04 LTS

  2. Cara Instal WordPress dengan LEMP Stack di CentOS 8

  3. Instal phpMyAdmin di Ubuntu 20.04 dengan Nginx

  1. Cara Instal Nginx dengan PHP dan MySQL (LEMP Stack) di Ubuntu 18.04

  2. Cara Menginstal Nginx dengan PHP dan MySQL (LEMP Stack) di Ubuntu 20.04 LTS

  3. Instal WordPress dengan LEMP Stack di Ubuntu 20.04