poradniki

Własna chmura - Instalacja Nextcloud

wpis_header_img

Chmura i rozwiązania chmurowe w IT zrobiły w ostatnich latach zawrotną karierę, i to nie tylko wśród firm. Nic dziwnego, trudno nie docenić wygody, jaką jest możliwość przechowywania własnych plików tak, by mieć do nich dostęp z dowolnego urządzenia i dowolnego miejsca, o każdej porze dnia i nocy. Każdy z nas korzysta z dysków chmurowych – Dropboxa, Dysku Google, OneDrive’a.
Dlaczego więc nie mieć własnej chmury u siebie w domu. Wbrew pozorom nie jest to wcale takie trudne.
Poniższa instrukcja dotyczy instalacji własnej chmury na przykładzie Nextcloud, a jedyne czego potrzebujemy to trochę czasu i wcześniej zainstalowany system Debian. Ponieważ będziemy instalować Nexcloud na Debianie.

Na początek zaczniemy od aktualizacji Debiana i pakietów.
W Terminalu wpisujemy kolejno :

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

Instalacja Nextcloud

Instalujemy LAMP (Linux Apache MariaDB PHP)

Pora zainstalować Apache i bazę danych. Tu posłużymy się MariaDb ale może być też PostgreSQL tu już pozostaje kwestia indywidualna

# apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip -y

Uruchamiamy zainstalowane serwery www Apache i bazy danych MariaDB / PostgreSQL

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

Instalacja PHP

Dodajemy repozytorium zawierające pakiety PHP

# sudo wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add –
# sudo echo “deb https://packages.sury.org/php/ bionic main” | tee /etc/apt/sources.list.d/ondrej.list
apt-get update

Teraz instalujemy PHP

# sudo apt-get install libapache2-mod-php php7.3 php7.3-xml php7.3-curl php7.3-gd php7.3 php7.3-cgi php7.3-cli php7.3-zip php7.3-mysql php7.3-mbstring wget unzip -y

Edytujemy plik php.ini

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

Musimy teraz znaleźć poniższe parametry i je podmienić :

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

Zapisujemy i zamykamy plik i restartujemy serwer Apache

# sudo systemctl restart apache2

Konfiguracja bazy danych i użytkowników bazy danych MariaDB / PostgreSQL

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

# 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!
Logujemy się do MariaDB i tworzymy bazę i użytkownika.
# mysql -u root -p
Wprowadzamy nazwę naszej bazy danych
> CREATE DATABASE nextclouddb;

Query OK, 1 row affected (0.00 sec)
Pora na utworzenie użytkownika “nextcloud” i hasło “mypassword”
> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'mypassword';

 Query OK, 1 row affected (0.00 sec)
Nadajemy uprawnienia naszej bazie danych pamiętając o zmianie danych na wprowadzone przez nas
> GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextcloud'@'localhost';

 Query OK, 1 row affected (0.00 sec)
Odświerzamy / przeładowujemy uprawnienia wpisując FLUSH PRIVILEGES
> FLUSH PRIVILEGES;

 Query OK, 1 row affected (0.00 sec)
Wychodzimy
> quit

Bye

PostgreSQL

konfiguracja bazy danych PostgreSQL

sudo -u postgres psql

CREATE USER nazwa_uzytkownika WITH PASSWORD 'haslo';

CREATE DATABASE nazwa_bazy_danych TEMPLATE template0 ENCODING 'UNICODE';

GRANT ALL PRIVILEGES ON DATABASE nazwa_bazy_danych TO nazwa_uzytkownika;

\q

Konfiguracja serwera Apache

Tworzymy plik konfiguracyjny

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

Kopiujemy do niego poniższe dane

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

Zapisujemy plik i wychodzimy z edytora. Zmieniamy domyślną stronę na naszego Nextclouda i restartujemy serwer Apache

# sudo a2dissite 000-default
# sudo a2ensite nextcloud
# sudo systemctl reload apache2

Instalujemy Nextcloud

Po konfiguracji serwera , bazy danych i wszelkich innych niezbędnych repozytorium  przyszła pora na instalację naszej chmury Nextcloud.

Tworzymy folder dla naszej chmury i nadajemy mu uprawnienia

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

Tworzymy katalog na nasze dane

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

Ściągamy Nextcloud , rozpakowujemy i instalujemy

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

I to by już było na tyle. Teraz w oknie przeglądarki wpisujemy adres naszej instalacji np.

http://SERVER_IP/setup-nextcloud.php

gdzie SERVER_IP jest adresem IP bądź nazwą maszyny wirtualnej i kończymy naszą instalację już w trybie graficznym.

Jak chyba widać własna chmura to nic trudnego.
Scroll to Top