NextCloud je bezplatný server s otevřeným zdrojovým kódem pro hostování a sdílení souborů vytvořený z projektu ownCloud. Je velmi podobný jiným službám pro sdílení souborů, jako je Disk Google, Dropbox a iCloud. NextCloud umožňuje ukládat soubory, dokumenty, obrázky, filmy a videa z centrálního umístění. Pomocí NextCloud můžete sdílet soubory, kontakty a jakákoli další média se svými přáteli a klienty. NextCloud se integruje s poštou, kalendářem, kontakty a dalšími funkcemi, které vašim týmům pomohou pracovat rychleji a snadněji. Klienta NextCloud můžete nainstalovat na stolní počítač a synchronizovat soubory se serverem Nextcloud. Desktopoví klienti jsou k dispozici pro většinu operačních systémů včetně Windows, macOS, FreeBSD a Linux.
V tomto tutoriálu vysvětlíme, jak nainstalovat NextCloud a zabezpečit jej pomocí Let's Encrypt SSL na Debianu 10.
Předpoklady
- Server se systémem Debian 10.
- Platný název domény s adresou IP vašeho serveru. v tomto tutoriálu použijeme doménu nextcloud.example.com.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Instalovat Apache, MariaDB a PHP
NextCloud běží na webovém serveru napsaném v PHP a používá MariaDB k ukládání svých dat. Budete tedy muset do svého systému nainstalovat Apache, MariaDB, PHP a další požadované balíčky. Všechny je můžete nainstalovat spuštěním následujícího příkazu:
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
Jakmile jsou všechny balíčky nainstalovány, otevřete soubor php.ini a upravte některá doporučená nastavení:
nano /etc/php/7.3/apache2/php.ini
Změňte následující nastavení:
memory_limit = 512M upload_max_filesize = 500M post_max_size = 500M max_execution_time = 300 date.timezone = Asia/Kolkata
Po dokončení uložte a zavřete soubor. Poté spusťte službu Apache a MariaDB a povolte jim spuštění po restartu systému pomocí následujícího příkazu:
systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurace databáze pro NextCloud
Dále budete muset vytvořit databázi a uživatele databáze pro NextCloud. Chcete-li tak učinit, přihlaste se do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Na požádání zadejte heslo uživatele root a poté vytvořte databázi a uživatele pomocí následujícího příkazu:
MariaDB [(none)]> CREATE DATABASE nextclouddb;
MariaDB [(none)]> CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
Dále udělte všechna oprávnění nextclouddb pomocí následujícího příkazu:
MariaDB [(none)]> GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';
Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Stáhnout NextCloud
Nejprve navštivte stránku stahování NextCloud a stáhněte si nejnovější verzi NextCloud do svého systému. V době psaní tohoto článku je nejnovější verze NextCloud 17.0.1. Můžete si jej stáhnout pomocí následujícího příkazu:
wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
unzip nextcloud-17.0.1.zip
Dále přesuňte extrahovaný adresář do webového kořenového adresáře Apache:
mv nextcloud /var/www/html/
Dále udělte správná oprávnění adresáři nextcloud pomocí následujícího příkazu:
chown -R www-data:www-data /var/www/html/nextcloud/
chmod -R 755 /var/www/html/nextcloud/
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurace Apache pro NextCloud
Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Apache, který bude sloužit NextCloud. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/apache2/sites-available/nextcloud.conf
Přidejte následující řádky:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud.example.com Alias /nextcloud "/var/www/html/nextcloud/" <Directory /var/www/html/nextcloud/> Options +FollowSymlinks AllowOverride All Require all granted <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Po dokončení uložte a zavřete soubor. Poté povolte soubor virtuálního hostitele Apache a další požadované moduly pomocí následujících příkazů:
a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Nakonec restartujte službu Apache, abyste použili novou konfiguraci:
systemctl restart apache2
Zabezpečte NextCloud pomocí Let's Encrypt Free SSL
NextCloud je nyní nainstalován a nakonfigurován. Dále se doporučuje zabezpečit jej pomocí Let's Encrypt free SSL. Chcete-li tak učinit, nejprve nainstalujte klienta Certbot pomocí následujícího příkazu:
apt-get install python-certbot-apache -y
Po instalaci můžete spustit následující příkaz a nainstalovat Let's Encrypt Certificate pro vaši doménu nextcloud.example.com.
certbot --apache -d nextcloud.example.com
Během instalace budete požádáni, abyste uvedli svou e-mailovou adresu a přijali podmínky služby, jak je uvedeno níže:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for nextcloud.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/nextcloud-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/nextcloud-le-ssl.conf Enabling available site: /etc/apache2/sites-available/nextcloud-le-ssl.conf Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Dále zadejte 2 a stiskněte Enter pro stažení a instalaci bezplatného certifikátu SSL pro vaši doménu. Jakmile je instalace úspěšně dokončena. Měli byste získat následující výstup:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/nextcloud.conf to ssl vhost in /etc/apache2/sites-available/ nextcloud-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://nextcloud.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=nextcloud.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2019-10-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Přístup k webovému rozhraní NextCloud
Váš NextCloud je nyní nakonfigurován a zabezpečen pomocí Let's Encrypt SSL. Dále otevřete webový prohlížeč a zadejte adresu URL https://nextcloud.example.com . Budete přesměrováni na následující stránku:
Nyní zadejte své uživatelské jméno a heslo správce, složku Data, Opravit přihlašovací údaje k databázi a klikněte na Dokončit nastavení knoflík. Budete přesměrováni na řídicí panel NextCloud na následující stránce:
To je prozatím vše.
Závěr
Gratulujeme! úspěšně jste nainstalovali a zabezpečili NextCloud pomocí Let's Encrypt Free SSL na Debianu 10. Nyní můžete snadno sdílet soubory, dokumenty a média s ostatními uživateli pomocí webového rozhraní NextCloud.