GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Nextcloud 13 na Ubuntu 16.04 s Nginx

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.


Ubuntu
  1. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  2. Jak nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04

  3. Jak nainstalovat PHP 7.4 s Nginx na Ubuntu 20.04

  1. Jak nainstalovat Nextcloud s Nginx na Ubuntu 18.04 LTS

  2. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  3. Jak nainstalovat Grav CMS s Nginx na Ubuntu 16.04

  1. Jak nainstalovat SuiteCRM s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10