Již v červnu 2016, krátce po prvním veřejném vydání Nextcloud, jsme zveřejnili návod, jak nainstalovat Nextcloud na Ubuntu 16.04 s webovým serverem Apache. Ale mnoho lidí chce jako webový server používat Nginx spíše než Apache. Takže v tomto tutoriálu uvidíme, jak nainstalovat Nextcloud 13 na Ubuntu 16.04 s Nginx.
Poznámka:Pokud používáte Ubuntu 18.04, postupujte podle tohoto návodu:Nainstalujte Nextcloud na Ubuntu 18.04 s Nginx (LEMP stack)
Předpoklady
Nejprve byste se měli podívat na tento návod k instalaci LEMP pro Ubuntu 16.04, pokud jste LEMP ještě nenainstalovali. Po instalaci se vraťte sem a čtěte dál.
Krok 1:Stáhněte si NextCloud 13
Stáhněte si archiv zip serveru NextCloud na svůj server. Poslední stabilní verze je v době psaní tohoto článku 13.0.4. Možná budete muset změnit číslo verze. Přejděte na https://nextcloud.com/install a klikněte na tlačítko stažení, abyste si prohlédli nejnovější verzi.
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.zip
Extrahujte to.
sudo apt install unzip unzip nextcloud-13.0.4.zip
Nový adresář s názvem nextcloud
bude vytvořen v aktuálním pracovním adresáři. Přesuňte nový adresář a veškerý jeho obsah do kořenového adresáře dokumentů webového serveru Nginx
sudo mv nextcloud /usr/share/nginx/
Poté musíte také nastavit uživatele Nginx (www-data) jako vlastníka adresáře NextCloud.
sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R
Krok 2:Vytvořte databázi a uživatele v MariaDB
Přihlaste se k databázovému serveru MariaDB pomocí následujícího příkazu:
sudo mysql -u root
Poté vytvořte databázi pro Nextcloud. Tento kurz pojmenuje databázi nextcloud. Můžete použít jakékoli jméno.
create database nextcloud;
Vytvořte uživatele databáze. Opět můžete pro tohoto uživatele použít preferované jméno. Nahraďte své heslo preferovaným heslem.
create user nextclouduser@localhost identified by 'your-password';
Udělte tomuto uživateli všechna oprávnění na nextcloud
databáze.
grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';
Vyprázdněte oprávnění a ukončete.
flush privileges; exit;
Krok 3:Povolte binární protokolování v MariaDB
Upravte konfigurační soubor mysqld.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Přidejte následující tři řádky do [mysqld]
sekce.
log-bin = /var/log/mysql/mariadb-bin log-bin-index = /var/log/mysql/mariadb-bin.index binlog_format = mixed
Formát binárního protokolu musí být mixed
. Uložte a zavřete soubor. Poté restartujte službu MariaDB.
sudo systemctl restart mysql
Nyní je v MariaDB povolen binární protokol.
Krok 4:Vytvořte konfigurační soubor Nginx pro Nextcloud
Vytvořte nextcloud.conf
soubor v /etc/nginx/conf.d/
adresář.
sudo nano /etc/nginx/conf.d/nextcloud.conf
Do souboru vložte následující text. Nahraďte červeně zbarvený text svými skutečnými daty. Nezapomeňte pro název domény nastavit záznam A.
server { listen 80; server_name nextcloud.your-domain.com; # Add headers to serve security related headers add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; # Path to the root of your installation root /usr/share/nginx/nextcloud/; location = /robots.txt { allow all; log_not_found off; access_log off; } # The following 2 rules are only needed for the user_webfinger app. # Uncomment it if you're planning to use this app. #rewrite ^/.well-known/host-meta /public.php?service=host-meta last; #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json # last; location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } location ~ /.well-known/acme-challenge { allow all; } # set max upload size client_max_body_size 512M; fastcgi_buffers 64 4K; # Disable gzip to avoid the removal of the ETag header gzip off; # Uncomment if your server is build with the ngx_pagespeed module # This module is currently not supported. #pagespeed off; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; location / { rewrite ^ /index.php$uri; } location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { deny all; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; } location ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; index index.php; } # Adding the cache control header for js and css files # Make sure it is BELOW the PHP block location ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200"; # Add headers to serve security related headers (It is intended to # have those duplicated to the ones above) add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; # Optional: Don't log access to assets access_log off; } location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; # Optional: Don't log access to other assets access_log off; } }
Uložte a zavřete soubor. Otestujte konfiguraci Nginx a poté znovu načtěte Nginx, aby se změny projevily.
sudo nginx -t sudo systemctl reload nginx
Krok 5:Instalace a povolení modulů PHP
Spuštěním následujících příkazů nainstalujte potřebné moduly PHP.
sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl php7.0-zip php7.0-xml php7.0-mbstring
Krok 6:Povolte HTTPS
Nyní máte přístup k průvodci webovou instalací Nextcloud ve vašem prohlížeči zadáním názvu domény pro vaši instalaci Nextcloud.
nextcloud.your-domain.com
Před zadáním jakýchkoli citlivých informací bychom však měli povolit zabezpečené připojení HTTPS na Nextcloud. Můžeme získat bezplatný certifikát TLS od společnosti Let’s Encrypt. Spuštěním následujících příkazů nainstalujte klienta certbot (Let’s Encrypt) na Ubuntu 16.04 z oficiálního PPA. software-properties-common
balíček je potřeba k přidání PPA na Ubuntu. Někdy není ve výchozím nastavení na Ubuntu nainstalován. Python-certbot-nginx
je plugin Nginx.
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python-certbot-nginx
Možná budete také muset upgradovat některé knihovny.
sudo apt upgrade
Dále spusťte následující příkaz a získejte bezplatný certifikát TLS pomocí pluginu Nginx.
sudo certbot --nginx --agree-tos --redirect --staple-ocsp --email your-email-address -d nextcloud.your-domain.com
Během několika sekund se zobrazí zpráva jako níže, což znamená, že certifikát TLS byl úspěšně získán a nainstalován.
Dokončete instalaci ve webovém prohlížeči
Nyní můžete přistupovat k průvodci webovou instalací Nextcloud pomocí připojení HTTPS. Chcete-li dokončit instalaci, musíte si vytvořit účet správce, zadat cestu k datové složce Nextcloud a zadat dříve vytvořené údaje o databázi.
Složka dat je místo, kde jsou uloženy soubory uživatelů. Z důvodu zabezpečení je nejlepší umístit datový adresář mimo webový kořen Nextcloud. Takže místo ukládání souborů uživatelů pod /usr/share/nginx/nextcloud/data/
, můžeme to změnit na /usr/share/nginx/nextcloud-data
, který lze vytvořit pomocí následujícího příkazu:
sudo mkdir /usr/share/nginx/nextcloud-data
Poté se ujistěte, že uživatel Nginx (www-data
) má oprávnění k zápisu do datového adresáře.
sudo chown www-data:www-data /usr/share/nginx/nextcloud-data -R
Jakmile to uděláte, uvidíte webové rozhraní Nextcloud. Gratuluji! Můžete jej začít používat jako své soukromé cloudové úložiště.
A je to! Doufám, že vám tento návod pomohl nainstalovat Nextcloud na Ubuntu 16.04 s konfigurací Nginx. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje. Můžete nás také sledovat na Google+, Twitteru nebo na stránce na Facebooku.