W艂asna chmura - Instalacja Nextcloud

poradniki

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鈥檃.
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 Nextclod, 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

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

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

Instalacja 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.