GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Seafile con Nginx su Ubuntu 18.04 LTS

Seafile è un sistema di hosting di file e cloud storage open source con funzioni avanzate come la sincronizzazione da più piattaforme (sistema multipiattaforma), protezione della privacy con crittografia dei file integrata e supporto per l'autenticazione a due fattori (TFA), controllo della versione, blocco dei file, modifica online e molti altri. Seafile è scritto nel linguaggio di programmazione C e Python e fornisce funzionalità simili come Dropbox, mega.co.nz e altri.

In questo tutorial, ti mostrerò passo dopo passo come installare e configurare un server Seafile con il server web Nginx e il database MySQL. Installeremo il server seafile sotto il server web Nginx con HTTPS SSL Letsencrypt abilitato, utilizzando l'ultimo MySQL 5.8 sul sistema Ubuntu 18.04.

Prerequisiti

  • Ubuntu 18.04
  • Privilegi di root

Cosa faremo?

  1. Installa le dipendenze Python di Seafile
  2. Installa e configura MySQL
  3. Scarica Seafile Server per sistema Linux
  4. Installa Seafile Server
  5. Installa Nginx e Letsencrypt
  6. Configura Nginx come proxy inverso per Seafile Server
  7. Configura il server Seafile
  8. Esecuzione di Seafile Server come servizio
  9. Configura Firewall UFW
  10. Test

Passaggio 1:installazione delle dipendenze Python di Seafile

Il primo passo che dobbiamo compiere prima di installare il server seafile sul sistema è installare le sue dipendenze. Seafile è un'applicazione basata su Python e richiede Python 2.7 per essere eseguita sul server.

Prima di installare qualsiasi pacchetto, dobbiamo aggiornare il repository di Ubuntu.

sudo apt update

Ora installa python 2.7 con tutte le dipendenze necessarie per l'installazione del server seafile usando i comandi apt di seguito.

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-memcache python-requests -y

Attendi l'installazione di tutte le dipendenze.

Passaggio 2:installazione e configurazione di MySQL

Seafile offre supporto per SQLite e il server di database MySQL. Per questa guida, utilizzeremo il server di database MySQL per la nostra installazione. Distribuiremo il server seafile utilizzando l'ultima versione di MySQL 5.8.

Installa il server MySQL usando il comando apt di seguito.

sudo apt install mysql-server mysql-client -y

Al termine dell'installazione, avvia il servizio MySQL e abilitalo all'avvio ogni volta all'avvio del sistema.

systemctl start mysql
systemctl enable mysql

Il server MySQL è installato sul sistema Ubuntu.

Ora dobbiamo configurare la password di root di MySQL usando il comando 'mysql_secure_installation'.

mysql_secure_installation

Ora ti verrà chiesto della politica della password MySQL, 0 per LOW, 1 per MEDIUM e 2 per STRONG. Digita il numero '1' per la politica della password MEDIA, premi invio e quindi digita la tua password sicura.

Per gli altri, digita semplicemente "Y" come mostrato di seguito.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

La configurazione della password di root MySQL è stata completata.

Successivamente, creeremo un nuovo database per il server Seafile. Creeremo 3 database per ogni componente seafile e creeremo un nuovo utente del database. Creeremo un nuovo utente chiamato 'seafile' e avrà tutti i privilegi per tutti e 3 i database 'ccnet-db', 'seafile-db' e 'seahub-db'.

Accedi alla shell MySQL utilizzando il comando client MySQL.

mysql -u root -p

Ora crea nuovi database 'ccnet-db', 'seafile-db', 'seahub-db' e crea un nuovo utente 'seafile'. Quindi concedi tutti e 3 i privilegi del database all'utente 'seafile'.

Esegui query MySQL di seguito.

create database `ccnet-db` character set = 'utf8';
create database `seafile-db` character set = 'utf8';
create database `seahub-db` character set = 'utf8';

create user 'seafile'@'localhost' identified by '[email protected]';

GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@localhost;
GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@localhost;
GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@localhost;

Il server MySQL è stato installato, è stata impostata la password di root ed è stato creato il database per l'installazione di seafile.

Fase 3 - Scarica Seafile Server per il sistema Linux

In questo tutorial, il server seafile verrà eseguito come servizio sul sistema systemd e verrà eseguito con un utente non root.

Crea un nuovo utente chiamato 'mohammad'.

useradd -m -s /bin/bash mohammad

Ora accedi all'utente 'mohammad' e scarica l'ultima versione del server seafile usando wget.

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

Estrarre il file 'seafile-server.tar.gz' e rinominare la directory principale in 'seafile-server'.

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

Il codice sorgente del server seafile è stato scaricato nella directory '/home/mohammad/seafile-server'.

Fase 4 - Installa Seafile Server con MySQL

In questo passaggio, installeremo il server seafile utilizzando lo script di installazione MySQL fornito da Seafile.

Accedi come utente 'mohammad' e vai alla directory 'seafile-server'.

su - mohammad
cd seafile-server/

Ora esegui lo script 'setup-seafile-mysql.sh'.

./setup-seafile-mysql.sh

Lo script di installazione eseguirà il controllo del modulo Python. Assicurati che tutte le dipendenze siano installate, quindi premi Invio.

Ora sarai nella configurazione di Seafile.

  • nome server:inserisci il nome del tuo server seafile come 'hakase-cloud'.
  • nome dominio server:digita il nome di dominio per il tuo server seafile 'cloud.hakase-labs.io'.
  • directory dati seafile:lascia la configurazione predefinita e premi invio.
  • porta del file server di seafile:lasciala sulla porta predefinita '8082'.

Ora per la configurazione del database. Ti verranno richieste 2 opzioni:lascia che lo script crei il database per te o utilizza un database esistente.

Scegli l'opzione '2' per utilizzare le impostazioni del database esistenti.

  • host database:host locale predefinito
  • porta database:predefinita su mysql porta normale '3306'
  • L'utente del database è 'seafile' con password '[email protected]'
  • database ccnet:'ccnet-db'
  • database seafile:'seafile-db'
  • database seahub:'seahub-db'

Ora premi di nuovo invio per confermare la configurazione del nostro server seafile.

E al termine dell'installazione, otterrai il risultato mostrato di seguito.

L'installazione e la configurazione del server Seafile sono state completate con successo. E il file server seafile funzionerà sotto la porta "8082", il servizio seahub funzionerà sotto la porta "8000".

Successivamente, proveremo per eseguire il server seafile e il server seahub utilizzando lo script di avvio.

Come utente 'mohammad', vai alla directory '~/seafile-server-latest'.

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

Ora avvia il server seafile eseguendo il comando seguente.

./seafile.sh start

Quindi esegui il server seahub.

./seahub.sh start

La prima volta che esegui lo script di avvio 'seahub.sh', ti verrà chiesto di creare un utente amministratore e una password per il server seafile.

Digita l'e-mail e la password dell'amministratore, quindi premi Invio.

E l'utente e la password amministratore sono stati creati:ora controlla le porte del servizio seafile e seahub '8082' e '8080' usando il comando netstat.

netstat -plntu

E vedrai che il server seafile e il server seahub sono attivi e funzionanti sul sistema Ubuntu 18.04.

Ora interrompi seafile e il server seahub.

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

Passaggio 5 - Installa e configura Nginx con Letsencrypt

Per questa guida, il server seafile verrà eseguito sul server Web Nginx con HTTPS abilitato. E in questo passaggio, installeremo il server web Nginx e lo strumento Letsencrypt, quindi genereremo la chiave SSL letencrypt e DHPARAM per il nome di dominio del server seafile.

Installa il server web Nginx usando il comando apt di seguito.

sudo apt install nginx -y

Al termine dell'installazione, avvia il servizio Nginx e abilitalo all'avvio ogni volta all'avvio del sistema.

systemctl start nginx
systemctl enable nginx

Ora installa lo strumento Letencrypt per la generazione di certificati SSL Letencrypt.

sudo apt install letsencrypt -y

Il server web Nginx e lo strumento Letencrypt sono stati installati.

Quindi, vai alla directory '/etc/nginx' e crea un nuovo file di configurazione 'certbot.conf' per letencrypt.

cd /etc/nginx/
vim snippets/certbot.conf

Incolla lì la seguente configurazione.

location /.well-known {
    alias /var/www/html/.well-known;
}

Salva ed esci.

Modifica il file dell'host virtuale predefinito.

vim sites-available/default

Aggiungi la seguente riga di inclusione di seguito alla parentesi 'server {...}'.

include snippets/certbot.conf;

Salva ed esci.

Testa la configurazione di nginx e riavvia il server web.

nginx -t
systemctl restart nginx

E siamo pronti per generare un nuovo certificato SSL Letencrypt per il nome di dominio del server Seafile.

Genera i file del certificato SSL utilizzando il comando 'certbot' come mostrato di seguito.

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

Nota:

  • Genereremo un nuovo certificato SSL e specificheremo la dimensione della chiave su '4096'.

Ora otterrai tutti i file dei certificati SSL che si trovano nella directory '/etc/letsencrypt/live'.

E per maggiore sicurezza, genereremo la chiave Diffie-Hellman con dimensione 4096 utilizzando il comando OpenSSL.

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

Tutti i certificati necessari sono stati generati.

Passaggio 6:configura Nginx come proxy inverso per Seafile Server

Vai alla directory di configurazione '/etc/nginx' e crea un nuovo file host virtuale 'seafile' usando vim.

cd /etc/nginx/
vim sites-available/seafile

Incolla lì la seguente configurazione.

 server {
        listen       80;
        server_name  cloud.hakase-labs.io;
        rewrite ^ https://$http_host$request_uri? permanent;
        server_tokens off;
    }
    server {
        listen 443 ssl http2;
        server_name cloud.hakase-labs.io;
        
        ssl on;
        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:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-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;

        location / {
            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;

            # used for view/edit office file via Office Online Server
            client_max_body_size 0;

            access_log      /var/log/nginx/seahub.access.log;
            error_log       /var/log/nginx/seahub.error.log;
        }

        location /seafhttp {
            rewrite ^/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;
        }
        location /media {
            root /home/mohammad/seafile-server-latest/seahub;
        }
    }

Salva ed esci.

Abilita l'host virtuale seafile e verifica la configurazione.

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

assicurati che non ci siano errori e riavvia il servizio nginx.

systemctl restart nginx

La configurazione di Nginx come proxy inverso per il server Seafile è stata completata.

Passaggio 7:configurazione del server Seafile

Per eseguire il server seafile con il nome di dominio del server web Nginx, dobbiamo modificare la configurazione predefinita 'seafile' per 'servizio ccnet', 'server seafile' e 'server seahub'.

Accedi come utente 'mohammad' e vai alla directory 'conf/'.

su - mohammad
cd conf/

Modifica il file di configurazione del servizio ccnet 'ccnet.conf'.

vim ccnet.conf

Nella riga 'SERVICE_URL', cambia il valore nel nome di dominio con HTTPS come di seguito.

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

Salva ed esci.

Ora modifica il file 'seafile.conf' per la configurazione del server seafile.

vim seafile.conf

Aggiungi la riga 'host' con il valore a '127.0.0.1' localhost come di seguito.

[fileserver]
host = 127.0.0.1
port = 8082

Salva ed esci.

E infine, modificheremo il file 'seahub_settings.py'.

vim seahub_settings.py

Nella riga 'FILE_SERVER_ROOT', cambia il valore nel nome di dominio con HTTPS.

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

Salva ed esci.

Fase 8 - Esecuzione di Seafile Server come servizio

In questo tutorial, eseguiremo il server seafile come servizio sul sistema Ubuntu 18.04. Creeremo un nuovo script di servizio per seafile e seahub.

Vai alla directory '/etc/systemd/system' e crea un nuovo file di servizio 'seafile.service'.

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

Incolla lì il seguente script di servizio Seafile.

[Unit]
Description=Seafile
After=network.target mysql.service

[Service]
Type=forking
ExecStart=/home/mohammad/seafile-server-latest/seafile.sh start
ExecStop=/home/mohammad/seafile-server-latest/seafile.sh stop
User=mohammad
Group=mohammad

[Install]
WantedBy=multi-user.target

Salva ed esci.

Ora crea il file del servizio seahub 'seahub.service'.

vim seahub.service

Incolla lì il seguente script del servizio seahub.

[Unit]
Description=Seafile hub
After=network.target seafile.service

[Service]
Type=forking
ExecStart=/home/mohammad/seafile-server-latest/seahub.sh start
ExecStop=/home/mohammad/seafile-server-latest/seahub.sh stop
User=mohammad
Group=mohammad

[Install]
WantedBy=multi-user.target

Salva ed esci.

Nota:

  • Cambia il percorso degli script seafile.sh e seahub.sh.

Ora ricarica il sistema systemd.

systemctl daemon-reload

E avvia il servizio seafile e seahub.

systemctl start seafile
systemctl start seahub

Abilita questi servizi per l'avvio ogni volta all'avvio del sistema.

systemctl enable seafile
systemctl enable seahub

I servizi seafile e seahub sono attivi e funzionanti:controllali utilizzando i comandi seguenti.

systemctl status seafile
systemctl status seahub

netstat -plntu

Passaggio 8:configurazione del firewall UFW

Si consiglia di attivare sempre il firewall su qualsiasi sistema. Per il sistema Ubuntu, accenderemo il firewall UFW e aggiungeremo le porte SSH, HTTP e HTTPS.

Aggiungi la porta 'ssh' e abilita il firewall UFW.

ufw allow ssh
ufw enable

digita 'y' per attivare il firewall.

Ora aggiungi i servizi HTTP e HTTPS.

ufw allow http
ufw allow https

Controlla l'elenco delle regole sul firewall.

ufw status numbered

E otterrai tre servizi SSH, HTTP e HTTPS nell'elenco.

Fase 9 - Test

Apri il tuo browser web e digita l'URL di installazione del server seafile. Il mio è:

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

E verrai reindirizzato alla pagina di accesso della connessione HTTPS sicura.

Digita l'email dell'amministratore "[email protected]" e la password "mypassword", quindi fai clic sul pulsante "Accedi".

Ora otterrai la dashboard di Seafile come di seguito.

Aggiuntivo:caricata un'immagine e visualizzarla sulla dashboard di Seafile.

L'installazione e la configurazione del server seafile con il web server Nginx e Letsencrypt su Ubuntu 18.04 sono state completate con successo.


Ubuntu
  1. Come installare WordPress con Nginx su Ubuntu 18.04

  2. Come installare Seafile con Nginx su Ubuntu 20.04 LTS

  3. Come installare Phorum con Nginx su Ubuntu 18.04 LTS

  4. Come installare Nginx con PHP5 e MySQL su Ubuntu 11.10

  5. Come distribuire Modsecurity con Nginx su Ubuntu 20.04 LTS

Come installare GitBucket con Nginx su Ubuntu 20.04 LTS

Come installare phpMyAdmin con Nginx (LEMP) su Ubuntu 18.04 LTS

Come installare Nginx con il modulo Ngx_Pagespeed su Ubuntu 16.04 LTS

Come installare Joomla con Nginx su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 20.04 LTS