GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Nextcloud 13 di Ubuntu 16.04 dengan Nginx

Kami telah menerbitkan tutorial tentang cara menginstal Nextcloud di Ubuntu 16.04 dengan server web Apache pada Juni 2016, tak lama setelah rilis publik pertama Nextcloud. Tetapi banyak orang ingin menggunakan Nginx daripada Apache sebagai server web. Jadi dalam tutorial ini kita akan melihat cara menginstal Nextcloud 13 di Ubuntu 16.04 dengan Nginx.

Catatan:Jika Anda menggunakan Ubuntu 18.04, ikuti tutorial ini:Instal Nextcloud di Ubuntu 18.04 dengan Nginx (LEMP stack)

Prasyarat

Pertama, Anda harus melihat tutorial pemasangan LEMP ini untuk Ubuntu 16.04 jika Anda belum menginstal LEMP. Setelah terinstal, kembali ke sini dan baca terus.

Langkah 1:Unduh NextCloud 13

Unduh arsip zip server NextCloud ke server Anda. Versi stabil terbaru adalah 13.0.4 pada saat penulisan ini. Anda mungkin perlu mengubah nomor versi. Buka https://nextcloud.com/install dan klik tombol download untuk melihat versi terbaru.

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

Ekstrak.

sudo apt install unzip

unzip nextcloud-13.0.4.zip

Direktori baru bernama nextcloud akan dibuat di direktori kerja saat ini. Pindahkan direktori baru dan semua kontennya ke root dokumen server web Nginx

sudo mv nextcloud /usr/share/nginx/

Kemudian Anda juga perlu mengatur pengguna Nginx (www-data) sebagai pemilik direktori NextCloud.

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

Langkah 2:Buat Database dan Pengguna di MariaDB

Masuk ke server database MariaDB dengan perintah berikut:

sudo mysql -u root

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

create database nextcloud;

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

create user nextclouduser@localhost identified by 'your-password';

Berikan pengguna ini semua hak istimewa di nextcloud basis data.

grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';

Hapus hak istimewa dan keluar.

flush privileges;

exit;

Langkah 3:Aktifkan Logging Biner di MariaDB

Edit file konfigurasi mysqld.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Tambahkan tiga baris berikut di [mysqld] bagian.

log-bin        = /var/log/mysql/mariadb-bin
log-bin-index  = /var/log/mysql/mariadb-bin.index
binlog_format  = mixed

Format log biner harus mixed . Simpan dan tutup file. Kemudian restart layanan MariaDB.

sudo systemctl restart mysql

Sekarang log biner diaktifkan di MariaDB.

Langkah 4:Buat File Konfigurasi Nginx untuk Nextcloud

Buat nextcloud.conf file di /etc/nginx/conf.d/ direktori.

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

Masukkan teks berikut ke dalam file. Ganti teks berwarna merah dengan data Anda yang sebenarnya. Jangan lupa untuk menetapkan A record untuk nama domain.

server {
    listen 80;
    server_name nextcloud.your-domain.com;

    # Add headers to serve security related headers
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    # Path to the root of your installation
    root /usr/share/nginx/nextcloud/;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
    # last;

    location = /.well-known/carddav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
       return 301 $scheme://$host/remote.php/dav;
    }

    location ~ /.well-known/acme-challenge {
      allow all;
    }

    # set max upload size
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;

    # Disable gzip to avoid the removal of the ETag header
    gzip off;

    # Uncomment if your server is build with the ngx_pagespeed module
    # This module is currently not supported.
    #pagespeed off;

    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    location / {
       rewrite ^ /index.php$uri;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
       deny all;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
       deny all;
     }

    location ~ ^/(?: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)(/.*)$;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       #Avoid sending the security headers twice
       fastcgi_param modHeadersAvailable true;
       fastcgi_param front_controller_active true;
       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
       fastcgi_intercept_errors on;
       fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
       try_files $uri/ =404;
       index index.php;
    }

    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    location ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        # Add headers to serve security related headers (It is intended to
        # have those duplicated to the ones above)
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        # Optional: Don't log access to assets
        access_log off;
   }

   location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
   }
}

Simpan dan tutup file. Uji konfigurasi Nginx, lalu muat ulang Nginx agar perubahan diterapkan.

sudo nginx -t

sudo systemctl reload nginx

Langkah 5:Instal dan Aktifkan Modul PHP

Jalankan perintah berikut untuk menginstal modul PHP yang diperlukan.

sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl  php7.0-zip php7.0-xml php7.0-mbstring

Langkah 6:Aktifkan HTTPS

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

nextcloud.your-domain.com

Tetapi sebelum memasukkan informasi sensitif apa pun, kita harus mengaktifkan koneksi HTTPS aman di Nextcloud. Kami dapat memperoleh sertifikat TLS gratis dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien certbot (Let's Encrypt) di Ubuntu 16.04 dari PPA resmi. software-properties-common paket diperlukan untuk menambahkan PPA di Ubuntu. Terkadang, itu tidak diinstal secara default di Ubuntu. Python-certbot-nginx adalah plugin Nginx.

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python-certbot-nginx

Anda mungkin juga perlu memutakhirkan beberapa perpustakaan.

sudo apt upgrade

Selanjutnya, jalankan perintah berikut untuk mendapatkan sertifikat TLS gratis menggunakan plugin Nginx.

sudo certbot --nginx --agree-tos --redirect --staple-ocsp --email your-email-address -d nextcloud.your-domain.com

Dalam beberapa detik, Anda akan melihat pesan seperti di bawah ini, yang berarti sertifikat TLS berhasil diperoleh dan diinstal.

Selesaikan Instalasi di Browser Web Anda

Sekarang Anda dapat mengakses wizard penginstalan web Nextcloud menggunakan koneksi HTTPS. Untuk menyelesaikan instalasi, Anda perlu membuat akun admin, masuk ke jalur folder data Nextcloud, masukkan detail database yang dibuat sebelumnya.

Folder data adalah tempat file pengguna disimpan. Untuk keamanan, yang terbaik adalah menempatkan direktori data di luar root web 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

Setelah selesai, Anda akan melihat antarmuka Web Nextcloud. Selamat! Anda dapat mulai menggunakannya sebagai penyimpanan cloud pribadi Anda.

Itu dia! Saya harap tutorial ini membantu Anda menginstal Nextcloud di Ubuntu 16.04 dengan konfigurasi Nginx. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami. Anda juga dapat mengikuti kami di Google+, Twitter atau menyukai halaman Facebook kami.


Ubuntu
  1. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  2. Cara Menginstal phpMyAdmin dengan Nginx di Ubuntu 18.04

  3. Cara menginstal PHP 7.4 Dengan Nginx di Ubuntu 20.04

  1. Cara Menginstal Nextcloud dengan Nginx di Ubuntu 18.04 LTS

  2. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal Grav CMS dengan Nginx di Ubuntu 16.04

  1. Cara Menginstal SuiteCRM dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  3. Cara Menginstal Mailpile dengan Nginx di Ubuntu 15.10