Nextcloud je softwarová sada aplikací pro ukládání a synchronizaci souborů a dat na více zařízeních. Jedná se o plně místní řešení pro sdílení dokumentů a spolupráci na nich, správu kalendáře a odesílání a přijímání e-mailů.
Nextcloud vám poskytuje kontrolu a ochranu vašich dat a zároveň usnadňuje komunikaci. Může zvýšit produktivitu, protože můžete přistupovat ke svým stávajícím datům na jednotce FTP, synchronizovat je a sdílet je na několika připojených zařízeních v domácnosti nebo kanceláři. Soukromí dat je navíc zásadní a provozování soukromého serveru Nextcloud je skvělý způsob, jak začít.
Instalace soukromého serveru Nextcloud na Fedora 34
Tento tutoriál ukáže, jak nainstalovat soukromý server Nextcloud na server založený na Fedoře 34. Jako předpoklady nainstalujeme webový server Apache, PHP 7.4 a server a klienta MariaDB.
Krok 1. Předpoklady
Prvním krokem je splnění následujících předpokladů.
- Server se systémem Fedora. (Pro ukázku použiji Fedora Workstation 34)
- Uživatel sudo bez oprávnění root.
- Aktualizujte své balíčky.
sudo dnf update
- Základní balíčky a závislosti.
Váš systém již může mít některé z těchto balíčků nainstalovány.dnf install wget curl bzip2 nano unzip policycoreutils-python-utils -y
Poznámka:Pokud již máte nějaké předpoklady a balíčky nakonfigurované, můžete tyto kroky přeskočit.
Konfigurace brány firewall ve Fedoře
Prvním krokem je konfigurace firewallu z Firewalldu pomocí příkazového řádku. Všimněte si, že Firewalld je na serverech Fedory předinstalovaný.
Zkontrolujte stav brány firewall a ujistěte se, že je spuštěna:
sudo firewall-cmd --state running
Dalším krokem je povolení portů HTTP a HTTPS.
Zkontrolujte povolené služby a porty:
sudo firewall-cmd --permanent --list-services dhcpv6-client mdns samba-client ssh
Povolit porty HTTP a HTTPS.
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent –add-service=https
Znovu zkontrolujte povolené služby a porty.
sudo firewall-cmd --permanent --list-services dhcpv6-client http https mdns samba-client ssh
Znovu načtěte bránu firewall.
sudo systemctl reload firewalld
Nainstalujte webový server Apache
Spusťte následující příkaz s právy sudo a nainstalujte webový server Apache.
dnf install httpd
Nainstalujte PHP
Dalším krokem je instalace PHP a dalších doplňkových modulů. Pokud již máte PHP, ujistěte se, že verze PHP splňuje požadavky Nextcloud.
dnf install php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-pecl-redis php-opcache php-imagick php-zip php-process
Po instalaci PHP povolte a spusťte webový server Apache:
systemctl enable --now httpd
Zkontrolujte, zda běží PHP.
php -version PHP 7.4.19 (cli) (built: May 4 2021 11:06:37) ( NTS ) Copyright (c) The PHP Group
Instalace serveru MariaDB a klienta
Server MariaDB je náhradou za MySQL, což znamená, že příkazy ke spuštění a ovládání MariaDB a MySQL jsou stejné.
Zkontrolujte, zda máte na svém serveru výchozí server MariaDB, nebo jej nainstalujte spuštěním následujícího příkazu.
dnf install mariadb mariadb-server
Povolte a spusťte server MariaDB:
systemctl enable --now mariadb
Spusťte příkaz mysql_secure_installation k zabezpečení serveru MariaDB.
Příkaz provede výchozí konfigurace nastavení hesla uživatele root, odebrání anonymních uživatelů, zakázání vzdáleného přihlášení uživatele root a zrušení testovacích tabulek.
sudo mysql_secure_installation [sudo] password for tuts: Securing the MySQL server deployment. Enter the password for user root: The 'validate_password' component is installed. >> The subsequent steps will run the existing configuration of the component. >> We are using an existing root password Estimated strength of the password: 100 Change the password for root? ((Press YY | Y for Yes, any other key for No) : >> By default, a MariaDB server installation has an anonymous user >>> is intended only for testing. Remove anonymous users? (Press Y y | Y for Yes, any other key for No) : y Success. Normally, 'root' should only be allowed to connect from 'localhost.' This ensures that someone cannot guess the root password from the network. (ensure you read this policy while installing MariaDB server) Disallow root login remotely? (Press Y y | y Y for Yes, any other key for No) : Y y Success. >>> (removing test database) Remove test database and access to it? (Press Y y | Y for Yes, any other key for No) : y >>> Dropping test database. Success. >>> Removing privileges on test database. Success. Reload privilege tables now? (Press Y y | Y for Yes, any other key for No) : y Success. All done!
Vytvořte vyhrazeného uživatele a databázi pro server Nextcloud.
mysql -p
Vytvořte databázi ‚nextcloud‘.
mysql> create database nextcloud;
Vytvořte vyhrazeného uživatele MySQL, který bude spravovat databázi ‚nextcloud‘
mysql> create user 'nextclouduser'@'localhost' identified by 'SeCrEttErCeS';
Udělte všechna oprávnění k databázi (nextcloud) uživateli (nextclouduser), kterého jsme vytvořili.
mysql> grant all privileges on nextcloud_db.* to 'nextclouduser'@'localhost';
Vyprázdnit oprávnění pro změny, které jste provedli, aby se projevily.
mysql> flush privileges;
Ukončete prostředí MySQL.
mysql> exit;
Konfigurace oprávnění SELinux
Pro práci s Nextcloud musíte nakonfigurovat SELinux/oprávnění.
Spusťte následující příkazy pro základní nastavení SELinuxu. Ty by měly fungovat s vaší instalací.
Ujistěte se, že jste správně upravili cesty k souborům podle vašeho systému. Jen v případě, že jsou odlišné.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?' # restorecon -Rv '/var/www/html/nextcloud/'
Další příkazy SELinux, které fungují s Nextcloud, se můžete dozvědět v konfiguraci Nextcloud SELinux.
Krok 2. Instalace serveru Nextcloud
Naším druhým krokem je stažení a instalace Nextcloud. Přejděte na oficiální webovou stránku a zkopírujte odkaz ke stažení souboru zip.
Stáhněte a rozbalte archiv Nextcloud pomocí wget. Ujistěte se, že jste v následujícím příkazu vložili zkopírovaný odkaz za wget.
wget https://download.nextcloud.com/server/releases/nextcloud-21.0.2.zip
Rozbalte archiv do adresáře „/var/www/html/“.
unzip nextcloud-21.0.2.zip -d /var/www/html/
Dalším krokem je udělit Apache přístup pro čtení a zápis do adresářového stromu Nextcloud:
Vytvořte datovou složku v adresáři „/var/www/html/nextcloud/“.
mkdir /var/www/html/nextcloud/data
Udělte Apache přístup pro čtení a zápis pomocí Chown.
chown -R apache:apache /var/www/html/nextcloud
Krok 3. Konfigurace serveru Nextcloud
Nextcloud můžete nakonfigurovat přes webové rozhraní nebo příkazový řádek.
Metoda 1:webové rozhraní
Otevřete „http://your_server_ip/nextcloud“ z vašeho webového prohlížeče.
V našem případě server běží z localhost;
http://localhost/nextcloud or http://127.0.0.0/nextcloud
Metoda 2:příkazový řádek
Spusťte následující příkaz pro konfiguraci Nexcloud z příkazového řádku.
sudo -u apache php occ maintenance:install --data-dir /var/www/html/nextcloud/data/ --database "mysql" --database-name "nextcloud" --database-user "nextclouduser" --database-pass "SeCrEttErCeS" --admin-user "admin" --admin-pass "AdMin_PAssWOrd"
Zadejte přihlašovací údaje pro správu a nakonfigurujte Nextcloud pro první použití.
Koneckonců
Doporučený limit paměti PHP pro Nextcloud je 512 milionů. Proměnnou memory_limit můžete upravit v konfiguračním souboru /etc/php.ini a restartovat službu httpd.
Zabezpečení je kritické a měli byste SELinux vždy konfigurovat spíše než jej vypínat. Není dobrý nápad deaktivovat SELinux. Doporučená praxe je mít jej vždy v režimu vynucení.
Tím končí naše ukázka instalace soukromého serveru Nextcloud na server Fedora 34. Pokud narazíte na nějaké výzvy nebo problémy, neváhejte se zeptat nebo přidat komentář.