Cara install NextCloud 15 di Ubuntu

NextCloud adalah solusi Dropbox seperti untuk berbagi file dan sinkronisasi yang di-hosting sendiri. Menginstal NextCloud 15 pada Ubuntu adalah hal yang sepele. Apakah Anda ingin melakukan backup, melakukan sinkronisasi file atau hanya memiliki alternatif Google Kalender, panduan ini adalah untuk Anda.

Apa itu NextCloud? apakah seperti “cloud”?

cloud computing

Jika Anda kebetulan datang ke sini secara kebetulan dan tidak tahu apa itu NextCloud, berikut adalah artikel yang menjelaskan fitur utama dan kelebihan / kekurangannya. NextCloud adalah SaaS Cloud, jika Anda ingin tahu lebih banyak tentang jenis cloud, Anda dapat membaca artikel ini.

Dalam artikel ini kita akan membahas instalasi server.

Step 1: Install software

Langkah pertama untuk menginstal NextCloud 15 adalah menginstal server web dan PHP. Meskipun Anda dapat mengadaptasi panduan ini untuk banyak versi Ubuntu, saya sarankan Anda untuk tetap menggunakan Ubuntu 18.04 atau lebih tinggi karena PHP7 disertakan. PHP7 membawa banyak perbaikan atas versi sebelumnya dan akan meningkatkan NextCloud juga, karena faktanya PHP7 diperlukan sejak NextCloud 11. Anda akan memerlukan akses root selama prosedur ini.

Open a terminal and input the following commands:

# apt-get install apache2 php7.0 bzip2
# apt-get install libapache2-mod-php php-gd php-json php-mysql php-curl php-mbstring
# apt-get install php-intl php-mcrypt php-imagick php-xml php-zip

Step 2: Install Database

Now, this choice won’t really alter the functionality of NextCloud, so pick whatever you know best. If you’re unsure pick MariaDB/MySQL.

# apt-get install mariadb-server php-mysql

During the installation you will be prompted to choose a root password, pick a strong one. If you’re not prompted to choose a password, the default one will be blank. (This is potentially insecure, change it!)

Now you need to enter the database (you will be asked the password you just set):

$ mysql -u root -p

Now that you are in create a database:

CREATE DATABASE nextcloud;

Now you need to create the user that will be used to connect to the database:

CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD_HERE';

The last step is to grant the privileges to the new user:

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;

When you’re done type Ctrl-D to exit.

Step 3: Install NextCloud

The last step is to actually get the software, configure it and run it.

With these step we download the software and extract it:

# cd /var/www
# wget https://download.nextcloud.com/server/releases/latest-15.tar.bz2 -O nextcloud-15-latest.tar.bz2
# tar -xvjf nextcloud-15-latest.tar.bz2
# chown -R www-data:www-data nextcloud
# rm nextcloud-15-latest.tar.bz2

Now we need to create a new file in /etc/apache2/sites-available/nextcloud.conf . Feel free to use whatever editor you feel comfortable with and add the following lines:

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
  Options +FollowSymlinks
  AllowOverride All

<IfModule mod_dav.c>
  Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

Once done it’s time to enable the new site and enable apache mods that are needed by NextCloud:

# a2ensite nextcloud
# a2enmod rewrite headers env dir mime
# systemctl restart apache2

 

Step 4: Configuring firewall

This step is essential when your firewall is enabled. If your firewall is enabled you won’t be able to access your NextCloud 15 instance; on the other hand if it isn’t enabled you shouldn’t have any problems and you can simply skip this step. 

Keep in mind having a firewall enabled is a good security practice and you should already have one enabled.

In order for the firewall to work, it must be enabled. This guide will not include this part. When you enable a firewall many things can go wrong, e.g. you’re using SSH, you enable the firewall and your connection is cut and can’t connect otherwise, hence you should carefully review the documentation from your distribution.

To open the ports needed by NextCloud 15 follow these steps:

UFWIPtables

UFW is the default firewall in Ubuntu, if you’re using one, you’re probably using UFW.

# ufw allow http
# ufw allow https

IPtables is an older firewall (still widely used), if you’re not using UFW you can use IPtables directly.

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Step 5: Install

Once you’re done with selecting the database, it’s time to install everything. Head to http://YOUR_IP_ADDRESS/nextcloud/ and you will be facing the following screen:

NextCloud 15 Installation
NextCloud 15 Installation

Select an administrator username and password, then you can select the data folder, but if you don’t know what you’re doing it’s best if you leave it with the default value. Then click on “Storage & Database” to select the database you chose during step 2. Fill everything and if you’ve followed all the steps correctly you should be seeing the following screen:

NextCloud 15 Welcome screen
NextCloud 15 Welcome screen

Step 6: Enable Caching (suggested)

NextCloud is good but it can be very slow if you don’t configure a caching solution. There are two caching solutions covered in this guide:

  • PHP OPcache: a PHP inbuilt cache solution that speeds up scripts execution.
  • Redis server: a fast in-memory key-value store that speeds up everything in NextCloud.

Enabling OPcache

Open a terminal and input the following commands:

# apt-get install php-opcache

 

Now you need to edit a file located at /etc/php/7.2/apache2/conf.d/10-opcache.ini . Replace 7.2 with the version of PHP you have installed. With your favorite editor, edit the file adding the missing lines:

; configuration for php opcache module
; priority=10
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

 

These values are suggested by NextCloud, but you’re free to tweak them to suit your needs. Once you’re done you can restart apache:

# systemctl restart apache2

Installing and configuring Redis

Open a terminal and input the following commands:

# apt-get install redis-server php-redis

Now you must configure NextCloud to use Redis. To do so you need to edit the NextCloud configuration file located at /var/www/nextcloud/config/config.php . The file will look like this, add the highlighted lines:

<?php
$CONFIG = array (
  'instanceid' => '',
  'passwordsalt' => '',
  'secret' => '',
  'trusted_domains' =>
  array (
    0 => 'YOUR_IP',
  ),
  'datadirectory' => '/var/www/nextcloud/data',
  'dbtype' => 'mysql',
  'version' => '15.0.0.10',
  'overwrite.cli.url' => 'http://YOUR_IP/nextcloud',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nc_user',
  'dbpassword' => 'YOUR_PASSWORD_HERE',
  'installed' => true,
  'memcache.locking' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.local' => '\OC\Memcache\Redis',
    'redis' => [
      'host' => 'localhost',
      'port' => 6379,
      'timeout' => 3,
    ],
);

 

These settings will enable NextCloud to use Redis for caching and file locks. Of course these settings are just an example, you can tweak them to suit your needs.

Lastly, restart the webserver:

# systemctl restart apache2

Step 7: Expose NextCloud to Internet (optional)

Hosting applications available to the Internet is potentially dangerous. In order to keep your applications safe you need to be proficient in system security and to follow security best practices.

Most people will want to access their files from whatever location they are. To do so, your newly created NextCloud instance needs to be connected to the Internet.

Given that you need to take care of port-forwarding (if you’re a home user) and domain configuration (which varies according to your provider), here you can find the instructions to create a virtual host with Apache.

Using your favorite text editor, edit the file we created previously at /etc/apache2/sites-available/nextcloud.conf . And make it look like this:

<VirtualHost *:80>
  ServerName YOURDOMAIN.TLD
  ServerAdmin YOUR@EMAIL.TLD

  <directory /var/www/nextcloud>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
    SetEnv HOME /var/www/nextcloud
    SetEnv HTTP_HOME /var/www/nextcloud
  </directory>
</VirtualHost>

 

It is important to set ServerName according to a domain you own and have configured correctly. Once you complete this step you won’t be able to access NextCloud through http://YOUR_IP_ADDRESS/nextcloud anymore. Instead you will be able to access it through http://YOURDOMAIN.TLD (notice /nextcloud is gone).

Lastly, restart the webserver:

# systemctl restart apache2

Step 8: Get a free SSL certificate with Let’s Encrypt! (SUGGESTED!)

Now that you have your NextCloud instance up and running you’re good to go, but beware: you’re not safe. Internet is a dangerous place for your data and you will most likely need an SSL certificate to ensure your communications are encrypted. Provided you own a domain name you can get one for free using Let’s Encrypt! No catches, free forever.

Let’s Encrypt has rate limits in place to prevent inappropriate usage of the CA. There’s a limit on the numbers of attempts you can do before getting a temporary ban. During this setup, if things go wrong, I suggest you to use the –staging option to avoid the temporary ban. The –staging option will use a testing server and will not issue valid certificates. When you have completed the procedure against the test server successfully, you can remove the –staging option to obtain the real certificate.

Open a terminal and input the following commands:

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache

 

Now you will run the command to install a certificate, follow the procedure and you will get everything configured out of the box:

$ sudo certbot --apache

 

Lastly, restart the webserver:

# systemctl restart apache2

Di tulis oleh: