GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Seafile s Nginx na Ubuntu 18.04 LTS

Seafile je open source systém pro hostování souborů a cloudové úložiště s pokročilými funkcemi, jako je synchronizace z více platforem (systém napříč platformami), ochrana soukromí pomocí vestavěného šifrování souborů a podpora dvoufaktorové autentizace (TFA), kontrola verzí, zamykání souborů, úpravy online a mnoho dalších. Seafile je napsán v programovacím jazyce C a Python a poskytuje podobné funkce jako Dropbox, mega.co.nz a další.

V tomto tutoriálu vám krok za krokem ukážu, jak nainstalovat a nakonfigurovat server Seafile s webovým serverem Nginx a databází MySQL. Nainstalujeme server seafile pod webový server Nginx s povoleným HTTPS SSL Letsencrypt pomocí nejnovější MySQL 5.8 na systému Ubuntu 18.04.

Předpoklady

  • Ubuntu 18.04
  • Oprávnění uživatele root

Co uděláme?

  1. Nainstalujte závislosti Seafile Python
  2. Nainstalujte a nakonfigurujte MySQL
  3. Stáhněte si Seafile Server pro systém Linux
  4. Nainstalujte Seafile Server
  5. Nainstalujte Nginx a Letsencrypt
  6. Nakonfigurujte Nginx jako reverzní proxy pro server Seafile
  7. Konfigurace serveru Seafile
  8. Spuštění serveru Seafile jako služby
  9. Konfigurace brány UFW Firewall
  10. Testování

Krok 1 – Instalace závislostí Seafile Python

Prvním krokem, který musíme udělat před instalací seafile serveru do systému, je instalace jeho závislostí. Seafile je aplikace založená na pythonu a ke spuštění na serveru vyžaduje python 2.7.

Před instalací jakýchkoli balíčků musíme aktualizovat úložiště Ubuntu.

aktualizace sudo apt

Nyní nainstalujte python 2.7 se všemi závislostmi potřebnými pro instalaci seafile serveru pomocí příkazů apt níže.

sudo apt install python -y
sudo apt install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-questre-mem /před>

Počkejte, až se nainstalují všechny závislosti.

Krok 2 – Instalace a konfigurace MySQL

Seafile nabízí podporu pro SQLite a databázový server MySQL. Pro tuto příručku použijeme pro naši instalaci databázový server MySQL. Nasadíme server seafile pomocí nejnovější verze MySQL 5.8.

Nainstalujte server MySQL pomocí příkazu apt níže.

sudo apt install mysql-server mysql-client -y

Po dokončení instalace spusťte službu MySQL a povolte její spuštění při každém startu systému.

systemctl spustit mysql
systemctl povolit mysql

Server MySQL je nainstalován v systému Ubuntu.

Nyní musíme nakonfigurovat heslo root MySQL pomocí příkazu 'mysql_secure_installation'.

mysql_secure_installation

Nyní budete dotázáni na zásady hesla MySQL, 0 pro NÍZKÉ, 1 pro STŘEDNÍ a 2 pro SILNÉ. Zadejte číslo „1“ pro zásady hesla STŘEDNÍ, stiskněte klávesu Enter a poté zadejte své bezpečné heslo.

Pro ostatní stačí napsat „Y“, jak je uvedeno níže.

Odebrat anonymní uživatele? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :YZakázat vzdálené přihlášení root? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :YOdebrat testovací databázi a získat k ní přístup? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :YNačíst nyní tabulky oprávnění? (Stiskněte y|Y pro Ano, jakékoli jiné tlačítko pro Ne) :Y

Nastavení kořenového hesla MySQL bylo dokončeno.

Dále vytvoříme novou databázi pro server Seafile. Vytvoříme 3 databáze pro každou komponentu seafile a vytvoříme nového uživatele databáze. Vytvoříme nového uživatele s názvem 'seafile' a bude mít všechna oprávnění ke všem 3 databázím 'ccnet-db', 'seafile-db' a 'seahub-db'.

Přihlaste se do prostředí MySQL pomocí příkazu klienta MySQL.

mysql -u root -p

Nyní vytvořte nové databáze 'ccnet-db', 'seafile-db', 'seahub-db' a vytvořte nového uživatele 'seafile'. Poté udělte všechna 3 databázová oprávnění uživateli 'seafile'.

Níže spusťte dotazy MySQL.

vytvořit databázi `ccnet-db` znaková sada ='utf8';
vytvořit databázi `seafile-db` znaková sada ='utf8';
vytvořit databázi `seahub-db` znaková sada =' utf8';

vytvořit uživatele 'seafile'@'localhost' identifikovaného pomocí '[email protected]';

UDĚLEJTE VŠECHNA PRIVILEGIA NA `ccnet-db`.* na ` seafile`@localhost;
UDĚLEJTE VŠECHNA PRIVILEGIA NA `seafile-db`.* `seafile`@localhost;
UDĚLEJTE VŠECHNA PRIVILEGIE NA `seahub-db`.* `seafile`@localhost;

Server MySQL byl nainstalován, heslo uživatele root bylo nastaveno a databáze pro instalaci seafile byla vytvořena.

Krok 3 – Stáhnout Seafile Server pro systém Linux

V tomto tutoriálu poběží seafile server jako služba na systému systemd a bude běžet pod uživatelem bez oprávnění root.

Vytvořte nového uživatele s názvem 'mohammad'.

useradd -m -s /bin/bash mohammad

Nyní se přihlaste jako uživatel 'mohammad' a stáhněte si nejnovější verzi serveru seafile pomocí wget.

su - mohammad
wget https://download.seadrive.org/seafile-server_6.2.5_x86-64.tar.gz

Rozbalte soubor 'seafile-server.tar.gz' a přejmenujte hlavní adresář na 'seafile-server'.

tar -xf seafile-server_6.2.5_x86-64.tar.gz
mv seafile-server-6.2.5/ seafile-server/

Zdrojový kód serveru seafile byl stažen do adresáře '/home/mohammad/seafile-server'.

Krok 4 – Instalace serveru Seafile s MySQL

V tomto kroku nainstalujeme server seafile pomocí instalačního skriptu MySQL poskytnutého společností Seafile.

Přihlaste se jako uživatel 'mohammad' a přejděte do adresáře 'seafile-server'.

su - mohammad
cd seafile-server/

Nyní spusťte skript 'setup-seafile-mysql.sh'.

./setup-seafile-mysql.sh

Instalační skript provede kontrolu modulu python. Ujistěte se, že jsou nainstalovány všechny závislosti a poté stiskněte Enter.

Nyní budete v konfiguraci Seafile.

  • název serveru:zadejte název serveru seafile, např. „hakase-cloud“.
  • název domény serveru:zadejte název domény vašeho mořského serveru „cloud.hakase-labs.io“.
  • Datový adresář seafile:ponechte výchozí konfiguraci a stiskněte enter.
  • port souborového serveru seafile:ponechte jej na výchozím portu '8082'.

Nyní ke konfiguraci databáze. Budete požádáni o 2 možnosti:nechat skript vytvořit databázi za vás, nebo použít existující databázi.

Chcete-li použít existující nastavení databáze, vyberte možnost '2'.

  • hostitel databáze:výchozí localhost
  • port databáze:výchozí na normálním portu mysql '3306'
  • uživatel databáze je „seafile“ s heslem „[email protected]“
  • databáze ccnet:'ccnet-db'
  • databáze seafile:'seafile-db'
  • databáze seahub:'seahub-db'

Nyní znovu stiskněte enter pro potvrzení naší konfigurace mořského serveru.

A po dokončení instalace získáte výsledek, jak je znázorněno níže.

Instalace a konfigurace seafile serveru byla úspěšně dokončena. A souborový server seafile poběží pod portem '8082', služba seahub bude spuštěna pod portem '8000'.

Dále otestujeme spuštění serveru seafile a serveru seahub pomocí startovacího skriptu.

Jako uživatel 'mohammad' přejděte do adresáře '~/seafile-server-latest'.

su - mohammad
cd ~/seafile-server-latest/

Nyní spusťte server seafile spuštěním příkazu níže.

./seafile.sh start

Poté spusťte server seahub.

./seahub.sh start

Při prvním spuštění spouštěcího skriptu 'seahub.sh' budete požádáni o vytvoření administrátorského uživatele a hesla pro seafile server.

Zadejte svůj e-mail a heslo správce a stiskněte klávesu Enter.

A uživatel a heslo správce byly vytvořeny – nyní zkontrolujte porty služeb seafile a seahub '8082' a '8080' pomocí příkazu netstat.

netstat -plntu

A uvidíte, že server seafile a server seahub běží na systému Ubuntu 18.04.

Nyní zastavte server seafile a seahub.

./seafile.sh stop
./seahub.sh stop

Krok 5 – Instalace a konfigurace Nginx pomocí Letsencrypt

V této příručce bude server seafile spuštěn pod webovým serverem Nginx s povoleným HTTPS. A v tomto kroku nainstalujeme webový server Nginx a nástroj Letsencrypt a poté vygenerujeme klíč SSL letsencrypt a DHPARAM pro název domény serveru seafile.

Nainstalujte webový server Nginx pomocí příkazu apt níže.

sudo apt install nginx -y

Po dokončení instalace spusťte službu Nginx a povolte její spuštění při každém spuštění systému.

systemctl spustit nginx
systemctl povolit nginx

Nyní nainstalujte nástroj letsencrypt pro generování certifikátů SSL letsencrypt.

sudo apt install letsencrypt -y

Byl nainstalován webový server Nginx a nástroj letsencrypt.

Dále přejděte do adresáře '/etc/nginx' a vytvořte nový konfigurační soubor 'certbot.conf' pro letsencrypt.

cd /etc/nginx/
úryvky vim/certbot.conf

Zde vložte následující konfiguraci.

místo /.well-known { alias /var/www/html/.well-known;}

Uložte a ukončete.

Upravte výchozí soubor virtuálního hostitele.

vim sites-available/default

Přidejte následující řádek pro začlenění níže do závorky 'server {...}'.

include snippets/certbot.conf;

Uložte a ukončete.

Otestujte konfiguraci nginx a restartujte webový server.

nginx -t
systemctl restart nginx

A jsme připraveni vygenerovat nový letsencrypt SSL certifikát pro název domény serveru seafile.

Vygenerujte soubory certifikátu SSL pomocí příkazu 'certbot', jak je uvedeno níže.

certbot certonly --rsa-key-size 4096 --webroot --agree-tos --no-eff-email --email [e-mail protected] -w /var/www/html -d cloud.hakase-labs .io

Poznámka:

  • vygenerujeme nový certifikát SSL a určíme velikost klíče na „4096“.

Nyní získáte všechny soubory certifikátu SSL umístěné v adresáři '/etc/letsencrypt/live'.

A pro dodatečné zabezpečení vygenerujeme klíč Diffie-Hellman o velikosti 4096 pomocí příkazu OpenSSL.

openssl dhparam -out /etc/nginx/dhparam.pem 4096

Všechny potřebné certifikáty byly vygenerovány.

Krok 6 – Konfigurace Nginx jako reverzního proxy pro server Seafile

Přejděte do konfiguračního adresáře '/etc/nginx' a vytvořte nový soubor virtuálního hostitele 'seafile' pomocí vim.

cd /etc/nginx/
weby vim-dostupné/seafile

Zde vložte následující konfiguraci.

 server { poslouchat 80; název_serveru cloud.hakase-labs.io; přepsat ^ https://$http_host$request_uri? trvalý; server_tokens off; } server { poslouchat 443 ssl http2; název_serveru cloud.hakase-labs.io; ssl zapnuto; ssl_certificate /etc/letsencrypt/live/cloud.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/cloud.hakase-labs.io/privkey.pem; ssl_session_timeout 5m; ssl_session_cache shared:SSL:5m; ssl_dhparam /etc/nginx/dhparam.pem; #SSL Security ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:-SHA25ESG16 RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_ecdh_curve secp384r1; ssl_prefer_server_ciphers on; server_tokens off; ssl_session_tickets off; proxy_set_header X-Forwarded-For $remote_addr; umístění / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; # používá se k zobrazení/úpravě kancelářského souboru prostřednictvím serveru Office Online Server client_max_body_size 0; access_log /var/log/nginx/seahub.access.log; error_log /var/log/nginx/seahub.error.log; } umístění /seafhttp { přepsat ^/seafhttp(.*)$ $1 break; proxy_pass http://127.0.0.1:8082; client_max_body_size 0; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; } umístění /media { root /home/mohammad/seafile-server-latest/seahub; } }

Uložte a ukončete.

Povolte virtuálního hostitele seafile a otestujte konfiguraci.

ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/
nginx -t

ujistěte se, že nedošlo k žádné chybě a restartujte službu nginx.

systemctl restart nginx

Konfigurace Nginx jako reverzní proxy pro server seafile byla dokončena.

Krok 7 – Konfigurace serveru Seafile

Chcete-li spustit server seafile pod názvem domény webového serveru Nginx, musíme upravit výchozí konfiguraci 'seafile' pro 'ccnet service', 'seafile server' a 'seahub server'.

Přihlaste se jako uživatel 'mohammad' a přejděte do adresáře 'conf/'.

su - mohammad
cd conf/

Upravte konfigurační soubor služby ccnet 'ccnet.conf'.

vim ccnet.conf

Na řádku 'SERVICE_URL' změňte hodnotu na název domény s HTTPS, jak je uvedeno níže.

SERVICE_URL =https://cloud.hakase-labs.io

Uložte a ukončete.

Nyní upravte soubor 'seafile.conf' pro konfiguraci serveru seafile.

vim seafile.conf

Přidejte řádek 'host' s hodnotou k '127.0.0.1' localhost, jak je uvedeno níže.

[fileserver]hostitel =127.0.0.1port =8082

Uložte a ukončete.

A nakonec upravíme soubor 'seahub_settings.py'.

vim seahub_settings.py

Na řádku 'FILE_SERVER_ROOT' změňte hodnotu na název domény s HTTPS.

FILE_SERVER_ROOT ='https://cloud.hakase-labs.io/seafhttp'

Uložte a ukončete.

Krok 8 – Spuštění serveru Seafile jako služby

V tomto tutoriálu spustíme server seafile jako službu na systému Ubuntu 18.04. Vytvoříme nový servisní skript pro seafile a seahub.

Přejděte do adresáře '/etc/systemd/system' a vytvořte nový soubor služby 'seafile.service'.

cd /etc/systemd/system/
vim seafile.service

Zde vložte následující skript služby seafile.

[Unit]Description=SeafileAfter=network.target mysql.service[Service]Type=forkingExecStart=/home/mohammad/seafile-server-latest/seafile.sh startExecStop=/home/mohammad/seafile-server-latest/ seafile.sh stopUser=mohammadGroup=mohammad[Install]WantedBy=multi-user.target

Uložte a ukončete.

Nyní vytvořte soubor služby seahub 'seahub.service'.

vim seahub.service

Zde vložte následující skript služby seahub.

[Unit]Description=Seafile hubAfter=network.target seafile.service[Service]Type=forkingExecStart=/home/mohammad/seafile-server-latest/seahub.sh startExecStop=/home/mohammad/seafile-server-latest /seahub.sh stopUser=mohammadGroup=mohammad[Install]WantedBy=multi-user.target

Uložte a ukončete.

Poznámka:

  • Změňte cestu skriptů seafile.sh a seahub.sh.

Nyní znovu načtěte systémový systém.

systemctl daemon-reload

A spusťte službu seafile a seahub.

systemctl start seafile
systemctl start seahub

Povolte spuštění těchto služeb při každém spuštění systému.

systemctl povolit seafile
systemctl povolit seahub

Služby seafile a seahub jsou v provozu – zkontrolujte to pomocí příkazů níže.

systemctl status seafile
systemctl status seahub

netstat -plntu

Krok 8 – Konfigurace brány UFW

Na jakémkoli systému se doporučuje vždy zapnout firewall. Pro systém ubuntu zapneme UFW firewall a přidáme na něj porty SSH, HTTP a HTTPS.

Přidejte port 'ssh' a povolte bránu firewall UFW.

ufw povolit ssh
ufw povolit

zadejte „y“ pro zapnutí brány firewall.

Nyní přidejte služby HTTP a HTTPS.

ufw povolit http
ufw povolit https

Zkontrolujte seznam pravidel na bráně firewall.

číslovaný stav ufw

A na seznamu získáte tři služby SSH, HTTP a HTTPS.

Krok 9 – Testování

Otevřete webový prohlížeč a zadejte adresu URL instalace seafile serveru. Můj je:

http://cloud.hakase-labs.io/

A budete přesměrováni na přihlašovací stránku zabezpečeného připojení HTTPS.

Zadejte e-mail správce „[email protected]“ a heslo „mypassword“ a poté klikněte na tlačítko „Přihlásit se“.

Nyní získáte řídicí panel seafile, jak je uvedeno níže.

Další – nahrán obrázek a zobrazení na hlavní panel seafile.

Instalace a konfigurace seafile serveru s webovým serverem Nginx a Letsencrypt na Ubuntu 18.04 byla úspěšně dokončena.


Ubuntu
  1. Jak nainstalovat Phorum s Nginx na Ubuntu 18.04 LTS

  2. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  3. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  2. Jak nainstalovat Seafile s Nginx na Ubuntu 20.04 LTS

  3. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  1. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Redmine 3 s Nginx na Ubuntu 15.10