Nextcloud to rozwiązanie chmurowe, którego głównym celem jest umożliwienie dostępu do plików z dowolnego miejsca z dostępem do internetu – zarówno na komputerach stacjonarnych, jak i urządzeniach mobilnych (Android, iOS). Chmura pozwala na przesyłanie danych, współdzielenie ich z innymi użytkownikami oraz otrzymywanie powiadomień (np. na telefon lub e-mail) w przypadku udostępnienia plików. Dane mogą być zarządzane za pomocą reguł i parametrów, takich jak lokalizacja, grupy użytkowników czy typy plików, co zapewnia pełną kontrolę nad dostępem zarówno administratorom, jak i użytkownikom.

1. Rozpoczęcie instalacji

Aby rozpocząć instalację Nextcloud, należy zalogować się do systemu jako użytkownik root, a następnie zaktualizować system oraz środowisko maszyny wirtualnej:

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

Po zakończeniu aktualizacji wymagane jest ponowne uruchomienie systemu. Przed wykonaniem restartu należy upewnić się, że wszystkie istotne dane i usługi zostały zapisane:

# reboot

2. Instalacja stosu LAMP

Kolejnym krokiem jest instalacja stosu LAMP (Linux, Apache, MariaDB, PHP):

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

Następnie należy uruchomić oraz włączyć usługi Apache i MariaDB:

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

3. Instalacja i konfiguracja PHP

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

Należy zmodyfikować następujące parametry:

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

Po zapisaniu zmian należy zrestartować Apache:

#  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

4. Konfiguracja bazy danych MariaDB

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

5. Konfiguracja serwera Apache

Tworzymy plik konfiguracyjny dla Nextcloud:

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

W pliku należy umieścić konfigurację:

    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

6. Instalacja Nextcloud

Kolejno 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

Gotowe środowisko Nextcloud w NSIX

Chcesz bezpiecznie przechowywać i udostępniać pliki w firmie bez skomplikowanej konfiguracji serwera, baz danych i sieci? Skorzystaj z naszego kompleksowego rozwiązania:

Pakiet Nextcloud – kompletna infrastruktura 

Dzięki temu otrzymujesz prywatną chmurę dla swojej firmy – bez konieczności samodzielnej instalacji i konfiguracji. Skontaktuj się z nami

7. Konfiguracja przez przeglądarkę

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

Na końcu należy kliknąć przycisk Finish Setup, aby zakończyć instalację.

Po poprawnym zakończeniu procesu wyświetlony zostanie interfejs webowy Nextcloud, gotowy do użycia.