GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak integrovat OnlyOffice s NextCloud na Ubuntu

Jak možná víte, Nextcloud je řešení cloudového úložiště s vlastním hostitelem a OnlyOffice je samoobslužný online kancelářský dokumentový server. Tento tutoriál vám ukáže, jak integrovat OnlyOffice s Nextcloud , takže budete moci upravovat kancelářské dokumenty (DOCX, XLSX, PPTX atd.) přímo z webového rozhraní NextCloud.

Funkce integrační aplikace Nextcloud OnlyOffice

  • Plně vybavený textový editor dostupný online se všemi funkcemi desktopových editorů.
  • 100% zobrazení, konverze, tisk a věrnost stránkování.
  • Umožňuje přidávat odkazy, tabulky, grafy, vkládat obrázky, automatické tvary, vzorce, textové objekty a manipulovat s nimi, vytvářet seznamy s odrážkami nebo číslované seznamy.
  • Úpravy ve spolupráci s vašimi spoluhráči v reálném čase:zobrazte změny okamžitě nebo až po uložení. Ke kontrole a sledování změn použijte komentáře a vestavěný chat.
  • Podporuje úpravy a ukládání souborů DOCX, XLSX, PPTX, TXT. Soubor můžete také uložit v jiných formátech, jako je ODT, ODS, ODP, DOC, XLS, PPT, PPS, EPUB, RTF, HTML, HTM.
  • Plně kompatibilní s formáty Office Open XML:.docx, .xlsx, .pptx
  • Automaticky ukládat soubory, abyste nepřišli o svou práci.
  • Podporuje latinku, znaky CJK (čínština, japonština, korejština).

Předpoklady

Dokumentový server OnlyOffice vyžaduje alespoň 2jádrový procesor a 2 GB RAM. Aby to s Nextcloud fungovalo hladce, doporučuji použít server se 4jádrovým CPU a 4GB RAM. Můžete si koupit výkonný VPS od Contabo s velmi nízkou cenou. Pokud je uživatelů mnoho, měli byste zvážit aktualizaci specifikací serveru.

Contabo má datová centra pouze v Německu. Pokud potřebujete VPS hostované v USA, doporučuji Turnkey Internet, který nabízí 4jádrový CPU, 8GB RAM VPS za 9,99 USD/měsíc.

K dokončení tohoto průvodce potřebujete funkční server Nextcloud. Pokud jste tak ještě neučinili, přečtěte si prosím následující článek a nejprve nastavte server Nextcloud.

  • Nainstalujte NextCloud na Ubuntu 18.04 s Nginx (LEMP Stack)

Poté si přečtěte následující pokyny k integraci OnlyOffice a Nextcloud. Dokumentový server OnlyOffice a server Nextcloud lze nainstalovat na dva různé hostitele Začínáme.

Krok 1:Nainstalujte dokumentový server ONLYOFFICE na Ubuntu

Dokumentový server OnlyOffice závisí na PostgreSQL, Node.js, Redis Server, RabbitMQ serveru a Nginx. Následující kroky jsou testovány na serveru Ubuntu 18.04 ale měl by být také použitelný pro distribuce Linuxu v rodině Debian.

Nainstalujte PostgreSQL z úložiště Ubuntu

sudo apt install postgresql

Poté vytvořte onlyoffice databáze.

sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"

Vytvořte onlyoffice uživatel.

sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"

Udělte povolení.

sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

Poznámka :Uživatelské jméno i heslo musí být onlyoffice .

Nainstalujte NodeJS z oficiálního úložiště

Dokumentový server OnlyOffice vyžaduje nodejs verze 8.12.0+, ale verze v úložišti Ubuntu je zastaralá, takže budeme muset nainstalovat nejnovější verzi LTS (12.13.1) Node.js z upstream úložiště.

Přidejte úložiště Node.js.

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

Nainstalujte Node.js.

sudo apt install nodejs -y

Zkontrolujte verzi Node.js.

node -v

Ukázkový výstup:

v12.13.1

Nainstalujte server Redis a Rabbitmq

sudo apt install redis-server rabbitmq-server

Zkontrolujte jejich stav.

systemctl status redis-server

systemctl status rabbitmq-server

Měli byste vidět, že jsou aktivní (běžící) . Pokud rabbitmq-server se nepodařilo spustit, je to většinou kvůli nedostatku paměti na počítači nebo neplatnému názvu hostitele. Server Redis naslouchá na 127.0.0.1:6379 . RabbitMQ poslouchá na 0.0.0.0:25672 a 0.0.0.0:4369

Nainstalujte dokumentový server OnlyOffice

Přidejte úložiště OnlyOffice pomocí následujícího příkazu.

echo "deb http://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list

Importovat pouze veřejný klíč Office.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5

Aktualizujte místní index balíčků a nainstalujte dokumentový server OnlyOffice. Všimněte si, že onlyoffice-documentserver balíček nainstaluje nginx-extras jako závislost, takže pokud běží webový server Apache, musíte jej nejprve zastavit.

sudo apt update

sudo apt install onlyoffice-documentserver

Během procesu instalace budete požádáni o zadání hesla PostgreSQL pro onlyoffice. Zadejte „onlyoffice“ (bez uvozovek).

Chcete-li nainstalovat základní písma TrueType od společnosti Microsoft, musíte také přijmout licenční podmínky společnosti Microsoft.

Blok serveru Nginx bude nainstalován jako /etc/nginx/conf.d/ds.conf . (Je to ve skutečnosti symbolický odkaz na /etc/onlyoffice/documentserver/nginx/ds.conf .) Dokumentový server OnlyOffice je webová aplikace nodejs a Nginx funguje jako reverzní proxy. /var/www/onlyoffice/documentserver/ je kořenový adresář webu.

Po dokončení instalace zadejte do webového prohlížeče veřejnou IP adresu vašeho serveru, měli byste vidět „Dokumentový server běží“

Chcete-li zkontrolovat číslo verze dokumentového serveru, můžete použít následující příkaz.

apt search onlyoffice-documentserver

Ukázkový výstup.

onlyoffice-documentserver/squeeze,now 5.4.1-39 amd64 [installed]
  online viewers and editors for text, spreadsheet and presentation files.

Krok 2:Povolení HTTPS pro dokumentový server

Chcete-li připojit NextCloud k dokumentovému serveru OnlyOffice, tento musí být spuštěn v režimu HTTPS (server Nextcloud i uživatelské prohlížeče budou muset navázat kontakt s dokumentovým serverem). Následující kroky ukazují, jak získat a nainstalovat certifikát Let’s Encrypt TLS.

Nejprve musíme upravit soubor bloku serveru OnlyOffice Nginx.

sudo nano /etc/nginx/conf.d/ds.conf

Přidáme direktivu server_name, jak je uvedeno níže. Nezapomeňte nastavit DNS A záznam pro onlyoffice.your-domain.com .

include /etc/nginx/includes/http-common.conf;
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_tokens off;
  server_name onlyoffice.your-domain.com;

  include /etc/nginx/includes/ds-*.conf;
}

Uložte a zavřete soubor. Znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

Poté nainstalujte klienta certbot (Let’s Encrypt) a plugin Nginx.

sudo apt install certbot python3-certbot-nginx

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 --hsts --staple-ocsp --email [email protected] -d onlyoffice.your-domain.com

Kde:

  • --nginx :Použijte plugin nginx.
  • --agree-tos :Souhlas se smluvními podmínkami.
  • --redirect :Vynutit HTTPS přesměrováním 301.
  • --hsts :Ke každé odpovědi HTTP přidejte záhlaví Strict-Transport-Security. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.
  • --staple-ocsp : Povoluje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.

Během několika sekund se zobrazí zpráva jako níže, což znamená, že certifikát TLS byl úspěšně získán.

Navštivte https://onlyoffice.your-domain.com ve webovém prohlížeči, abyste ověřili, že dokumentový server OnlyOffice běží správně v režimu HTTPS.

Krok 3:Nainstalujte integrační aplikaci Nextcloud OnlyOffice

Přihlaste se do webového rozhraní Nextcloud jako správce, poté přejděte na stránku Nextcloud Apps a klikněte na Office & Text v levém panelu. Najdete aplikaci OnlyOffice. Stáhněte a povolte jej.

Poté přejděte na stránku Nastavení Nextcloud a vyberte ONLYOFFICE v levém podokně a zadejte název domény pro OnlyOffice do pole Adresa služby pro úpravu dokumentů.

Po uložení výše uvedeného nastavení byste měli být schopni vytvářet dokumenty, tabulky a prezentační soubory v Nextcloud kliknutím na tlačítko plus (+). Otevře se samostatná karta pro úpravy.

V kontextové nabídce kancelářských dokumentů také uvidíte novou položku s názvem „Otevřít v OnlyOffice“.

Instalace serveru OnlyOffice Document Server a Nextcloud na stejném hostiteli

Dokumentový server OnlyOffice používá jako webový server Nginx.

Pokud máte existující server Nextcloud spuštěný s Nginx, nedojde při instalaci OnlyOffice na stejný počítač k žádnému poškození vašeho serveru Nextcloud. Odstraní nginx-core a nainstalujte nginx-extras balíček, takže dojde k malému výpadku, ale vaše konfigurace zůstanou nedotčené.

Pokud máte existující server Nextcloud spuštěný s webovým serverem Apache a chcete nainstalovat OnlyOffice na stejný počítač, máte dvě možnosti:

  1. Zastavte/odeberte Apache, použijte Nginx jako webový server pro Nextcloud i OnlyOffice. V tomto tutoriálu můžete použít konfiguraci Nextcloud Nginx.
  2. Nakonfigurujte Nginx jako reverzní proxy pro Apache.

Konfigurace Nginx jako reverzního proxy pro Apache

Pokud zvolíte druhou cestu, měli byste nejprve změnit číslo portu Apache před instalací dokumentového serveru OnlyOffice.

Upravte ports.conf soubor.

sudo nano /etc/apache2/ports.conf

Najděte řádek:

Listen 80

Změňte jej na jiné číslo portu, například 8180. Všimněte si, že byste zde neměli používat 8080, protože dokumentový server OnlyOffice potřebuje port 8080 ke spuštění své docservice.

Listen 8180

Měli byste také změnit číslo portu SSL, protože později Nginx provede ukončení SSL. Najděte řádek:

Listen 443

Změňte číslo portu na něco jako 4433.

Listen 4433

Uložte a zavřete soubor. Dále upravte soubor virtuálního hostitele pro Nextcloud.

sudo nano /etc/apache2/sites-enabled/nextcloud.conf

První řádek by měl vypadat takto:

<VirtualHost *:80>

Změňte číslo portu na 8180.

<VirtualHost *:8180>

Měli bychom také zakázat přesměrování HTTP na HTTPS přidáním znaků komentáře před následující řádky. (Váš server Nextcloud používá připojení HTTPS, že?)

#RewriteEngine on
#RewriteCond %{SERVER_NAME} =nextcloud.your-domain.com
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

A změňte port pro naslouchání SSL.

<VirtualHost *:443>

Změňte výše uvedený port na 4433. Uložte a zavřete soubor. Znovu načtěte konfiguraci Apache.

sudo systemctl reload apache2

Nyní Apache naslouchá na portech 8180 a 4433. Poté můžeme podle výše uvedených pokynů nainstalovat dokumentový server OnlyOffice, který v procesu nainstaluje Nginx.

Jakmile jsou dokumentový server OnlyOffice a Nginx nainstalovány, vytvořte blokový soubor serveru Nginx pro proxy požadavky na Apache.

sudo nano /etc/nginx/conf.d/nextcloud-proxy.conf

Přidejte do souboru následující řádky. Nahraďte název domény svým vlastním. Cesta k ssl_certificate a ssl_certificate_key je pro vydané certifikáty Let’s Encrypt. Pokud používáte certifikát vydaný jinou CA, měli byste zadat svou vlastní cestu.

server {
        listen 80;
        server_name nextcloud.your-domain.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl http2;
        server_name nextcloud.your-domain.com;

        ssl_certificate /etc/letsencrypt/live/nextcloud.your-domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/nextcloud.your-domain.com/privkey.pem;

        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_protocols TLSv1.1 TLSv1.2;

        add_header Strict-Transport-Security max-age=15768000;

        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;

        location / {
                proxy_pass http://127.0.0.1:8180;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

location / {...} sekce přesměruje všechny požadavky na webový server Apache naslouchající na portu 8180. Uložte a zavřete soubor. Poté otestujte konfiguraci Nginx.

sudo nginx -t

Pokud je syntaxe v pořádku, znovu načtěte Nginx.

sudo systemctl reload nginx

Nyní byste měli být schopni navštívit váš server Nextcloud jako obvykle, bez přidání čísla portu do adresy URL. Pokud k načtení hlavičky HTTP použijete následující příkaz cURL, měli byste vidět, že front-end server je Nginx.

curl -I https://nextcloud.your-domain.com

Ukázkový výstup:

HTTP/1.1 302 Found
Server: nginx/1.11.9
Date: Tue, 14 Mar 2017 08:55:30 GMT
Content-Type: text/html; charset=UTF-8

Snížení režie DNS a HTTPS

Pokud jsou Nextcloud a OnlyOffice nainstalovány na stejném hostiteli, mohou spolu Nextcloud a OnlyOffice hovořit lokálně, aniž by museli zjišťovat veřejný název DNS a vytvářet připojení HTTPS.

Nejprve musíte vytvořit blok serveru Nginx, který naslouchá na místním hostiteli pro Nextcloud a OnlyOffice. Pro OnlyOffice můžete upravit /etc/nginx/conf.d/ds.conf soubor

sudo nano /etc/nginx/conf.d/ds.conf

A přidejte následující blok serveru. Všimněte si, že tento blok serveru naslouchá na 127.0.0.1:80 a používá onlyoffice-document-server jako název_serveru.

#HTTP host for internal services
server {
  listen 127.0.0.1:80;
  listen [::1]:80;
  server_name onlyoffice-document-server;
  server_tokens off;

  include /etc/nginx/includes/ds-*.conf;
}

Uložte a zavřete soubor. Poté můžete upravit konfigurační soubor Nextcloud Nginx.

sudo nano /etc/nginx/conf.d/nextcloud.conf

A přidejte následující blok serveru. Poslouchá také na 127.0.0.1:80 a používá nextcloud jako název_serveru.

server {
    listen 127.0.0.1:80;
    server_name nextcloud;

    # 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;
    add_header Referrer-Policy no-referrer;

    #I found this header is needed on Ubuntu, but not on Arch Linux. 
    add_header X-Frame-Options "SAMEORIGIN";

    # Path to the root of your installation
    root /usr/share/nginx/nextcloud/;

    access_log /var/log/nginx/nextcloud.access;
    error_log /var/log/nginx/nextcloud.error;

    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.2-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;
        add_header Referrer-Policy no-referrer;
        # 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

Dále musíme přidat lokální DNS záznam do /etc/hosts soubor jako níže, takže server může najít adresu pro onlyoffice-document-server a nextcloud .

127.0.0.1 localhost onlyoffice-document-server nextcloud

Uložte a zavřete soubor.

Potřebujeme také upravit Nextcloud config.php soubor.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Přidejte nextcloud v seznamu důvěryhodných domén, jak je uvedeno níže.

  'trusted_domains' =>
  array (
    0 => 'nextcloud.linuxbabe.com',
    1 => 'nextcloud',
  ),

Uložte a zavřete soubor.

Nyní se vraťte na stránky nastavení webového rozhraní Nextcloud, klikněte na advanced server settings , zadejte interní adresu pro dokumentový server OnlyOffice a Nextcloud.

  • http://onlyoffice-document-server/
  • http://nextcloud/

Klikněte na tlačítko Uložit a máte hotovo.

Jak upgradovat dokumentový server OnlyOffice

Když vyjde nová verze dokumentového serveru OnlyOffice, jednoduše pomocí správce balíčků apt upgradujete na novou verzi.

sudo apt update;sudo apt upgrade

Pamatujte, že nová verze přepíše vaše přizpůsobení v /etc/nginx/conf.d/ds.conf soubor. Doporučuji zálohovat tento soubor pomocí následujícího příkazu, abyste mohli snadno obnovit své vlastní konfigurace.

cat /etc/nginx/conf.d/ds.conf | sudo tee /etc/nginx/conf.d/ds.conf.backup

Ubuntu
  1. Jak integrovat Alfresco s ONLYOFFICE Online Editor na Ubuntu 14.04

  2. Jak nainstalovat NextCloud 13 na Ubuntu 16.04

  3. Jak nainstalovat NextCloud 15 na Ubuntu 18.04

  1. Jak nastavit FTP server s VSFTPD na Ubuntu 20.04

  2. Jak nastavit FTP server s VSFTPD na Ubuntu 18.04

  3. Jak integrovat Collabora Online s Nextcloud na Ubuntu 20.04

  1. Jak nainstalovat Nextcloud s Nginx na Ubuntu 18.04 LTS

  2. Jak nainstalovat ONLYOFFICE 8.9.0 s Dockerem na Ubuntu

  3. Jak integrovat ONLYOFFICE s Nextcloud