Nextcloud jest rozwiązaniem chmurowym, którego podstawowym zadaniem jest umożliwienie dostępu do plików z każdego miejsca, w którym jest internet – zarówno na urządzeniach stacjonarnych, jak i mobilnych (Android, iOS).  Chmura pozwala na przesyłanie plików, współdzielenie ich z innymi użytkownikami oraz otrzymywanie powiadomień na telefon lub e-mail, gdy ktoś udostępni dane. Pliki oznaczone są regułami i parametrami, takimi jak fizyczna lokalizacja, grupa użytkowników, właściwości plików i typy plików. Wskazane parametry pozwalają administratorom oraz użytkownikom w pełni kontrolować dostęp do tych danych.

Aby rozpocząć instalację Nextcloud, należy zalogować się do systemu jako root, a następnie wydać polecenia aktualizacji systemu oraz środowiska maszyny wirtualnej:

# sudo apt-get update
# sudo apt-get upgrade -y

Aby zakończyć proces aktualizacji niezbędne jest ponowne uruchomienie maszyny, dlatego należy się upewnić, że odpowiednie wykonywane prace oraz stan usług zostały zapisane i mogą zostać zrestartowane. Maszynę restartujemy poleceniem:

# reboot

  • LAMP

Kolejną rzeczą, którą należy zrobić, jest instalacja stosu serwerów LAMP (Linux Apache MariaDB PHP). Można to zrobić za pomocą następującego polecenia:

# sudo apt-get install apache2 mariadb-server apt-transport-https -y

Następnie należy uruchomić zainstalowane serwery www Apache i bazy danych MariaDB używając komend:

# sudo systemctl start apache2
# sudo systemctl enable apache2
# sudo systemctl start mariadb
# sudo systemctl enable mariadb

W dalszej kolejności niezbędne jest dodanie repozytorium, zawierającego odpowiednie wersje PHP. Możemy to wykonać za pomocą następujących poleceń:

# sudo add-apt-repository ppa:ondrej/php
# sudo apt-get update

Teraz można zainstalować język PHP w odpowiedniej wersji (w naszym wypadku będzie to wersja 7.2) wraz z odpowiednimi niezbędnymi do działania Nextcloud modułami:

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

W następnej kolejności musimy edytować plik konfiguracyjny php.ini. Aby tego dokonać należy przejść do odpowiedniego folderu zawierającego ten plik, a także edytować go za pomocą edytora vi lub nano:

# sudo nano /etc/php/7.2/apache2/php.ini

Teraz musimy odnaleźć 5 parametrów i ustawić je w sposób podany poniżej :

memory_limit = 512M
upload_max_filesize = 200M
max_execution_time = 360
post_max_size = 200M
date.timezone = EUROPE/WARSAW

Plik należy zapisać i zamknąć.

Aby zmiany zostały zastosowanie musimy zrestartować usługę poleceniem:

#  sudo systemctl restart apache2

Dla pewności możemy sprawdzić aktualnie zainstalowaną wersję PHP komendą:

# php -v

PHP 7.3.6-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May 31 2019 11:06:48) ( NTS )
 Copyright (c) 1997-2018 The PHP Group
 Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
     with Zend OPcache v7.3.6-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

  • konfiguracja bazy danych MariaDB oraz utworzenie bazy danych

Instalacja oraz konfiguracja MariaDB musi być zabezpieczona hasłem. Aby to zrobić, należy wydać następujące polecenie:

# sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

 In order to log into MariaDB to secure it, we'll need the current
 password for the root user. If you've just installed MariaDB, and
 you haven't set the root password yet, the password will be blank,
 so you should just press enter here.

 Enter current password for root (enter for none):
 OK, successfully used password, moving on…

 Setting the root password ensures that nobody can log into the MariaDB
 root user without the proper authorisation.

 Set root password? [Y/n] y
 New password:
 Re-enter new password:
 Password updated successfully!
 Reloading privilege tables..
  … Success!

 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!

 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!

 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! 

 Reloading the privilege tables will ensure that all changes made so far
 will take effect immediately.

 Reload privilege tables now? [Y/n] y
  … Success!

 Cleaning up…

 All done! If you've completed all of the above steps, your MariaDB
 installation should now be secure.

 Thanks for using MariaDB!

Należy ustawić swoje hasło, a następnie przejść przez konfigurator odpowiadając na zadane pytania.

Można teraz utworzyć bazę danych niezbędną do uruchomienia instalacji Nextcloud. Należy zalogować się do konsoli MariaDB za pomocą następującego polecenia, podając wcześniej utworzone hasło do użytkownika bazy danych:

 # mysql -u root -p

a następnie utworzyć bazę danych dla Nextcloud poleceniem:

> CREATE DATABASE nextclouddb;

Query OK, 1 row affected (0.00 sec)

niezbędnym jest także dodanie użytkownika bazy danych Nextcloud oraz ustawienie hasła:

> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'mypassword';

 Query OK, 1 row affected (0.00 sec)

gdzie:

  1. nextclouddb – jest nazwą bazy danych,
  2. nextcloud – jest nazwą użytkownika bazy danych,
  3. mypassword – jest hasłem użytkownika tej bazy danych.

Kolejną rzeczą jest nadanie uprawnień do bazy danych za pomocą następującego polecenia:

> GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextcloud'@'localhost';

 Query OK, 1 row affected (0.00 sec) 

Teraz należy uruchomić komendę FLUSH PRIVILEGES, aby tabela uprawnień została ponownie załadowana przez MariaDB:

> FLUSH PRIVILEGES;

 Query OK, 1 row affected (0.00 sec) 

Konfiguracja bazy danych została zakończona.Można teraz wyjść z konsoli MariaDB za pomocą polecenia:

> quit

Bye

  • konfiguracja serwera Apache:

Niezbędne jest teraz utworzenie pliku konfiguracyjnego Apache dla Nextcloud. Utworzenie nowego pliku można wykonać za pomocą polecenia:

# sudo nano /etc/apache2/sites-available/nextcloud.conf

kopiujemy do niego następującą treść:

    ServerAdmin admin@example.com
    DocumentRoot "/var/www/html/nextcloud"
    ServerName example.com

<Directory "/var/www/html/nextcloud/">
    Options MultiViews FollowSymlinks
    AllowOverride All
    Order allow,deny
    Allow from all


TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log

gdzie:

example.com – jest nazwą FQDN maszyny wirtualnej (jeżeli jest dostępna)

Następnie niezbędne jest wyłączenie standardowej witryny w konfiguracji serwera Apache i włączenie oraz ustawienie Nextcloud jako domyślnej. Można to zrobić poleceniami:

# sudo a2dissite 000-default
# sudo a2ensite nextcloud

Aby zmiany został zastosowane musimy przeładować serwer Apache poleceniem:

# sudo systemctl reload apache2

Teraz można przejść do instalacji serwera Nextcloud. Niezbędne jest utworzenie nowego katalogu dla Nextcloud i nadanie mu odpowiednich uprawnień za pomocą następujących poleceń:

# sudo mkdir /var/www/html/nextcloud
# sudo chown www-data:www-data /var/www/html/nextcloud
# sudo chmod 750 /var/www/html/nextcloud

a także utworzenie katalogu na dane Nextcloud:

# sudo mkdir -p /var/nextcloud/data
# sudo chown www-data:www-data /var/nextcloud/data
# sudo chmod 750 /var/nextcloud/data

Następnie można pobrać instalator Nextcloud:

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

Jeżeli został zainstalowany firewall UFW musimy otworzyć odpowiednie porty w celu instalacji Nextcloud:

# ufw allow 80
# ufw allow 443

następnie należy uruchomić ponownie ufw za pomocą następującego polecenia:

# ufw restart

Kolejnym krokiem jest dalsza instalacja Nextcloud za pomocą przeglądarki internetowej. W polu adresu należy wpisać adres, pod którym dostępny jest instalator Nextcloud:

http://SERVER_IP/setup-nextcloud.php

gdzie SERVER_IP jest adresem IP bądź nazwą maszyny wirtualnej.

Po wpisaniu poprawnego adresu wyświetli się witryna instalatora Nextcloud:

nextcloud instalator

W następnym kroku, należy upewnić się, aby wprowadzić właściwy katalog, w którym będzie znajdować się Nextcloud. Jeżeli Nextcloud ma zostać zainstalowany w katalogu głównym serwera Apache, należy wpisać kropkę „.”. W przeciwnym razie należy wpisać nextcloud (aby zainstalować nextcloud w podkatalogu o nazwie nextcloud).

instalator nextcloud krok 2

instalator nextcloud

Pierwszy krok instalacji został zakończony. Musimy teraz utworzyć konto administratora  a także skonfigurować ścieżki dla danych Nextcloud oraz bazy danych:

instalator nextcloud krok 4

W celu zakończenia procesu instalacji Nextcloud, należy kliknąć przycisk Finish Setup.

Po zakończonym procesie instalacji zostanie wyświetlona witryna Web interfejsu Nextcloud.