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:
- nextclouddb – jest nazwą bazy danych,
- nextcloud – jest nazwą użytkownika bazy danych,
- 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
- instalacja Nextcloud
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
- personalizacja nextcloud oraz konfiguracja
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:
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).
Pierwszy krok instalacji został zakończony. Musimy teraz utworzyć konto administratora a także skonfigurować ścieżki dla danych Nextcloud oraz bazy danych:
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.