GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Seafile con Nginx su CentOS 7

Seafile è un software cloud privato che fornisce funzionalità simili come Dropbox, mega.co.nz e altri, semplicemente ospitati sul tuo server. Seafile si basa sul linguaggio di programmazione Python ed è rilasciato con una licenza open source in modo che tu possa creare il tuo cloud privato e sarà molto più sicuro.

Seafile supporta la crittografia per archiviare i tuoi dati in modo sicuro. Per crittografare i file in una libreria di archiviazione, è necessario impostare una password al momento della creazione della libreria. La password non verrà memorizzata nel cloud Seafile. Quindi anche l'amministratore dei server non può visualizzare i tuoi dati crittografati senza la password.

In questo tutorial, installerò Seafile su CentOS 7 con il server web Nginx e MariaDB come server di database.

Prerequisiti

  • Server CentOS 7
  • Privilegi di root

Passaggio 1:preparare CentOS per Seafile

Accedi al server centOS con la tua password di root ssh.

ssh [email protected]
TYPE YOUR PASSWORD

    Modifica il file di configurazione di SELinux con vim.

    vim /etc/sysconfig/selinux

    Sostituisci il valore 'enforcing' con 'disabled'.

    SELINUX=disabled

    Salva il file ed esci dall'editor.

    Riavvia il server per applicare la modifica della politica di SELinux.

    reboot

    Attendi il riavvio del server, quindi accedi nuovamente al tuo server come utente root.

    Controlla selinux con il comando seguente:

    getenforce

    Dovresti vedere "Disabilitato ' come risultato.

    Passaggio 2:installazione delle dipendenze Seafile

    Seafile è basato su python, quindi dobbiamo prima installare python per l'installazione. Seafile ha il supporto per i database SQLite e MySQL/MariaDB, userò MariaDB come database per seafile qui in quanto fornisce prestazioni migliori rispetto a SQLite. Nginx viene utilizzato come proxy inverso per Seafile e Seahub.

    In questo passaggio, installeremo diversi pacchetti Python, MariaDB e Nginx. Iniziamo con l'installazione del repository EPEL sul nostro server CentOS.

    yum -y install epel-release

    Quindi, installa Python sui pacchetti, MariaDB e Nginx.

    yum -y install python-imaging MySQL-python python-simplejson python-setuptools mariadb mariadb-server nginx

    Attendi che tutti i pacchetti siano installati.

    Passaggio 3 - Configura MariaDB

    Nel passaggio 2, abbiamo già installato il server MariaDB, dobbiamo solo avviare il servizio e configurare ora la password di root.

    Avvia MariaDB e configura la password di root con i comandi seguenti:

    systemctl start mariadb
    mysql_secure_installation

    Digita la tua password di root.

    Set root password? [Y/n] Y
    New password:
    Re-enter new password:
    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] Y
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y

    La password di root di MariaDB è configurata e ora possiamo accedere alla shell mysql.
    Avviso:la shell della riga di comando di MariaDB è denominata mysql.

    Creeremo 3 database per seafile:

    1. ccnet_db
    2. seafile_db
    3. seahub_db

    E creeremo un nuovo utente 'seacloud ' con la password 'la tua password '. Sostituisci la tua password con una password sicura!

    Accedi alla shell mysql con il client mysql.

    mysql -u root -p
    TYPE YOUR PASSWORD

    Esegui le query mysql seguenti per creare i database e l'utente per l'installazione di seafile.

    create database ccnet_db character set = 'utf8';
    create database seafile_db character set = 'utf8';
    create database seahub_db character set = 'utf8';

    create user [email protected] identified by 'yourpassword';

    grant all privileges on ccnet_db.* to [email protected] identified by 'yourpassword';
    grant all privileges on seafile_db.* to [email protected] identified by 'yourpassword';
    grant all privileges on seahub_db.* to [email protected] identified by 'yourpassword';
    flush privileges;
    exit

    Sostituisci la tua password nei comandi precedenti con la tua password.

    Fase 4 - Installa Seafile

    In questo passaggio, installeremo Seafile. Seafile verrà eseguito sotto l'utente nginx in modo da poter utilizzare nginx come proxy inverso per i servizi seafile e seahub.

    Installeremo seafile sotto l'utente nginx nella directory '/var/www/seafile', creeremo quella directory e la inseriremo con cd.

    mkdir -p /var/www/seafile
    cd /var/www/seafile

    Scarica Seafile con il comando wget ed estrai l'archivio scaricato.

    wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_6.0.5_x86-64.tar.gz
    tar -xzvf seafile-server_6.0.5_x86-64.tar.gz

    Rinomina la directory in 'seafile-server' e passa a quella directory.

    mv seafile-server-6.0.5 seafile-server
    cd seafile-server/

    Esegui il file 'setup-seafile-mysql.sh' per configurare il database.

    ./setup-seafile-mysql.sh

    Premi Invio e ti verranno chieste informazioni di seguito:

    • nome server:utilizzerò il nome host del server 'natsume '
    • IP o dominio del server:indirizzo IP del server, nel mio caso '192.168.1.115 '
    • directory dati predefinita:premi semplicemente Invio
    • porta predefinita:premi Invio
    • Ora per la configurazione del database, scegli il numero 2

    Per la configurazione MySQL:

    • usa host non disponibile - localhost
    • porta predefinita - 3306
    • l'utente mysql - 'seacloud '
    • e la password è 'la tua password '
    • Il database ccnet è 'ccnet_db '
    • Il database di seafile è 'seafile_db '
    • Il database di seahub è 'seahub_db '

    Premi invio e lo script creerà le tabelle del database per il seafile.

    Ora possiamo avviare i servizi seafile e seahub.

    ./seafile.sh start
    ./seahub.sh start

    Quando il file seahub.sh viene eseguito, ci verrà richiesta la configurazione dell'amministratore.

    Digita l'e-mail e la password dell'amministratore, quindi il servizio seahub verrà eseguito.

    Seafile è installato e funzionante ora, possiamo accedere a Seafile da un browser web con l'IP del server sulla porta 8000 (nel mio caso - 192.168.1.115:8000), ma non lo faremo ora perché useremo un proxy inverso per il seafile server ed eseguiremo seafile con un file di servizio systemd.

    Quindi per ora dobbiamo interrompere il servizio Seafile e Seahub.

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

    Fase 5:configurazione del servizio Seafile e Seahub

    Eseguiremo seafile come utente nginx, quindi dobbiamo cambiare il proprietario della directory di installazione di seafile e della directory seahub_cache in utente nginx:

    cd /var/www/
    chown -R nginx:nginx *
    chown -R nginx:nginx /tmp/seahub_cache

    Quindi, vai alla directory systemd e crea un file seafile.service con vim:

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

    Incolla la configurazione del servizio Seafile di seguito:

    [Unit]
    Description=Seafile Server
    Before=seahub.service
    After=network.target mariadb.service

    [Service]
    Type=oneshot
    ExecStart=/var/www/seafile/seafile-server/seafile.sh start
    ExecStop=/var/www/seafile/seafile-server/seafile.sh stop
    RemainAfterExit=yes
    User=nginx
    Group=nginx

    [Install]
    WantedBy=multi-user.target

    Salva ed esci.

    Ora crea un nuovo file seahub.service.

    vim seahub.service

    E incolla la configurazione di seguito.

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

    [Service]
    Type=oneshot
    ExecStart=/var/www/seafile/seafile-server/seahub.sh start-fastcgi
    ExecStop=/var/www/seafile/seafile-server/seahub.sh stop
    RemainAfterExit=yes
    User=nginx
    Group=nginx

    [Install]
    WantedBy=multi-user.target

    Salva ed esci.

    Ricarica il servizio systemd e avvia seafile e seahub con systemctl.

    systemctl daemon-reload
    systemctl start seafile
    systemctl start seahub

    Assicurati che non ci siano errori e verifica che il servizio seafile e seahub sia in esecuzione sulle porte 8082 e 8000.

    netstat -plntu

    Passaggio 6 - Genera file di certificato SSL

    Per questo tutorial, eseguiremo seafile su un proxy Nginx e Nginx fornirà connessioni sicure (HTTPS) per la sicurezza dei dati. Possiamo utilizzare un file di certificato SSL gratuito o il certificato SSL a pagamento, questo non ha importanza per la configurazione. In questo passaggio, genererò un file di certificato SSL autofirmato con OpenSSL nella directory '/etc/nginx/ssl'.

    Crea la directory SSL.

    mkdir -p /etc/nginx/ssl
    cd /etc/nginx/ssl

    Genera file di certificato autofirmati e un file dhparam con il comando seguente:

    openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
    openssl req -new -x509 -sha256 -days 365 -newkey rsa:2048 -nodes -keyout server.key -out server.crt

    Rispondi ai dettagli del certificato come richiesto da OpenSSL come il tuo nome, stato, e-mail, nome di dominio ecc. Quindi modifica i permessi della directory e dei file del certificato.

    chmod -R 700 /etc/nginx/ssl
    chmod 400 server.*
    chmod 400 dhparam.pem

    I file del certificato SSL sono stati generati.

    Passaggio 7 - Configura Nginx come proxy inverso

    In questo passaggio, configureremo Nginx come proxy inverso per il server seafile sulle porte 8000 e 8002.

    Vai alla directory di configurazione di nginx e crea un nuovo file host virtuale per seafile.

    cd /etc/nginx/
    vim conf.d/seafile.conf

    Incolla la configurazione dell'host virtuale di seguito:

    server {  
            listen        80;
            server_name   cloud.natsume.co;
            return 301  https://$host$request_uri;
    }

    server { 
        listen 443 ssl;
        server_name cloud.natsume.co;
        ssl on;
        ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
        ssl_certificate         /etc/nginx/ssl/server.crt;
        ssl_certificate_key    /etc/nginx/ssl/server.key;

        ssl_ciphers  'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
        ssl_dhparam   /etc/nginx/ssl/dhparam.pem;
        ssl_prefer_server_ciphers  on;

        location / {
            fastcgi_pass    127.0.0.1:8000;
            fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
            fastcgi_param   PATH_INFO           $fastcgi_script_name;

            fastcgi_param   SERVER_PROTOCOL        $server_protocol;
            fastcgi_param   QUERY_STRING        $query_string;
            fastcgi_param   REQUEST_METHOD      $request_method;
            fastcgi_param   CONTENT_TYPE        $content_type;
            fastcgi_param   CONTENT_LENGTH      $content_length;
            fastcgi_param   SERVER_ADDR         $server_addr;
            fastcgi_param   SERVER_PORT         $server_port;
            fastcgi_param   SERVER_NAME         $server_name;
            fastcgi_param   REMOTE_ADDR         $remote_addr;

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

        # Reverse Proxy for seahub
        location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            client_max_body_size 0;
            proxy_connect_timeout  36000s;
            proxy_read_timeout  36000s;
            proxy_send_timeout  36000s;
            send_timeout  36000s;
        }

        #CHANGE THIS PATH WITH YOUR OWN DIRECTORY
        location /media {
            root /var/www/seafile/seafile-server/seahub;
        }

    }

    Salva ed esci.

    Userò "cloud.natsume.co" come nome di dominio. Sostituiscilo con il tuo nome di dominio nella configurazione sopra.

    Ora prova la configurazione di Nginx e assicurati che non ci siano errori.

    nginx -t

    Avvia Nginx con il comando systemctl:

    systemctl start nginx

    Assicurati che le porte 80 e 443 siano disponibili nell'elenco fornito da netstat:

    netstat -plntu

    Successivamente, dobbiamo aggiungere il nome di dominio alla configurazione di seafile. Vai alla directory seafile e modifica il file di configurazione.

    cd /var/www/seafile/
    vim conf/ccnet.conf

    Modifica l'URL del servizio con il tuo nome di dominio.

    SERVICE_URL = https://cloud.natsume.co

    Salva ed esci.

    Modifica il file di configurazione di seahub.

    vim conf/seahub_settings.py

    Nella seconda riga, aggiungi la configurazione di seguito:

    HTTP_SERVER_ROOT = 'https://cloud.natsume.co/seafhttp'

    Sostituisci nuovamente il nome di dominio con il tuo dominio qui. Salva ed esci.

    Riavvia seafile e aggiungi tutti i servizi da avviare all'avvio:

    systemctl restart seafile
    systemctl restart seahub

    systemctl enable nginx
    systemctl enable mariadb
    systemctl enable seafile
    systemctl enable seahub

    Passaggio 8:configurazione del firewallD

    Nel passaggio 7, abbiamo configurato Nginx per utilizzare la porta HTTP e HTTPS. Ora dobbiamo aprire quelle porte nel Firewall aggiungendole a firewalld.

    Avvia firewalld.

    systemctl start firewalld
    systemctl enable firewalld

    Aggiungi la porta HTTP e HTTPS alla configurazione del firewall con il comando firewall-cmd di seguito:

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --zone=public --add-port=443/tcp --permanent

    Ricarica la configurazione del firewall e controlla l'elenco delle porte.

    firewall-cmd --reload
    firewall-cmd --list-all

    Fase 9 - Test di Seafile

    Apri il tuo browser, digita il nome di dominio seafile, nel mio caso cloud.natsume.co e verrai reindirizzato alla connessione https.

    Digita l'e-mail e la password dell'amministratore e fai clic su "Accedi".

    Dashboard dell'amministratore di Seafile:

    Visualizzazione file Seafile.

    Seafile con Nginx come proxy inverso e SSL è stato installato correttamente sul server CentOS 7.

    Conclusione

    Con l'ampia varietà di applicazioni cloud di oggi, Seafile è una soluzione di cloud privato che può essere utilizzata in questo giorno. Con la funzionalità di crittografia a livello di libreria/cartella, puoi archiviare i tuoi dati in modo sicuro su un server Seacloud. Inoltre, Seafile è facile da configurare e implementare sul tuo server.


    Cent OS
    1. Come installare Nginx su CentOS 7

    2. Come installare WordPress con Nginx su CentOS 7

    3. Come installare phpMyAdmin con Nginx su CentOS 7

    4. Come installare phpMyAdmin con Nginx su CentOS 7 / RHEL 7

    5. Come installare Sitemagic CMS su CentOS 7 – Con Nginx

    Come installare phpMyAdmin con Nginx su CentOS 8 / RHEL 8

    Come installare Nginx con ngx_pagespeed su CentOS

    Come installare Nginx con PHP-FastCGI su CentOS 6

    Come installare Magento con Nginx su CentOS 7

    Come installare Laravel con Nginx su CentOS 8

    Come installare Nginx su CentOS 7?