poradniki
Własna chmura - Instalacja Nextcloud
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!
# mysql -u root -pWprowadzamy 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.