Ricerca nel sito web

Installazione di Seafile (Secure Cloud Storage) con database MySQL in RHEL/CentOS/SL 7.x/6.x


Seafile è un'applicazione avanzata di archiviazione cloud collaborativa open source scritta in Python con supporto per la condivisione e la sincronizzazione dei file, collaborazione in team e protezione della privacy utilizzando la crittografia lato client. È costruito come un file multipiattaforma sincronizzato con client che funziona su tutte le principali piattaforme (Linux, Raspberry Pi, Windows, Mac, iPhone e Android) e può essere facilmente integrato con servizi locali come LDAP e WebDAV o può essere distribuito utilizzando funzionalità avanzate servizi di rete e database come MySQL, SQLite, PostgreSQL, Memcached, Nginx o Apache Web Server.

Questo tutorial ti guiderà passo dopo passo nell'installazione di Seafile Server su RHEL/CentOS/Scientific Linux 7.x/6.x distribuito con database MySQL, con avvio init script per eseguire il server sulla porta Seafile predefinita (8000/TCP) e sulla porta di transazione HTTP predefinita (80/TCP), creano le regole firewall necessarie per aprire le porte richieste.

Requisiti

  1. Installazione minima di CentOS 6.5 con indirizzo IP statico.
  2. Database MySQL/MariaDB
  3. Python 2.6.5+ o 2.7
  4. Strumenti di installazione Python
  5. Python-simplejson
  6. Imaging Python
  7. Python-mysqldb

Questa procedura di installazione è stata testata sul sistema CentOS 6.4 64 bit, ma può essere utilizzata anche su altre distribuzioni Linux con la specifica che gli script di avvio init differiscono da una distribuzione all'altra .

Passaggio 1: installa i moduli Python

1. Per prima cosa esegui un aggiornamento del sistema, quindi installa tutti i moduli Python richiesti utilizzando i seguenti comandi.

yum upgrade
yum install python-imaging MySQL-python python-simplejson python-setuptools

2. Se usi un server Debian o Ubuntu installa tutti i moduli Python con i comandi successivi.

sudo apt-get update
sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

Passaggio 2: installare Seafile Server

3. Dopo aver installato tutti i moduli Python, crea un nuovo utente di sistema con una password complessa che verrà utilizzata per ospitare la configurazione del server Seafile e tutti i dati nella sua directory home, quindi passa al nuovo account utente creato.

adduser seafile
passwd seafile
su - seafile

4. Quindi accedi al database MySQL e crea tre database, uno per ogni componente Seafile Server: ccnet server, seafile server e seahub con un unico utente per tutti i database.

mysql -u root -p

mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'password';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

5. Ora è il momento di scaricare e installare Seafile Server. Vai alla pagina di download ufficiale di Seafile e prendi l'ultima versione dell'archivio Linux .Tar per l'architettura del tuo server utilizzando il comando wget, quindi estrailo nel tuo utente Seafile domestico creato in precedenza e inserisci Seafile directory estratta.

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
tar xfz seafile-server_3.0.4_x86-64.tar.gz
cd seafile-server_3.0.4/

6. Per installare Seafile Server utilizzando il database MySQL, esegui lo script di inizializzazione setup-seafile-mysql.sh e rispondi a tutte le domande utilizzando le seguenti opzioni di configurazione, dopo che lo script ha verificato l'esistenza di tutti i moduli richiesti da Python.

./setup-seafile-mysql.sh
  1. Qual è il nome del tuo server?=scegli un nome descrittivo (non sono ammessi spazi).
  2. Qual è l'IP o il dominio del server?=inserisci l'indirizzo IP del tuo server o il tuo nome di dominio valido.
  3. Quale porta vuoi utilizzare per il server ccnet?=premi [Invio] – lascialo predefinito – 10001.
  4. Dove vuoi inserire i dati del seafile?=premi [Invio] – la posizione predefinita sarà la tua directory $HOME/seafile-data.
  5. Quale porta vuoi utilizzare per il server seafile?=premi [Invio] – lascialo predefinito – 12001.

  1. Quale porta vuoi utilizzare per il server http seafile?=premi [Invio] – lascialo predefinito – 8082.
  2. Scegli un modo per inizializzare i database dei file sea:=scegli 1 e fornisci le credenziali MySQL predefinite: localhost, 3306 e password di root.
  3. Inserisci il nome dell'utente MySQL di seafile:=seafile (se hai creato un altro nome utente, inserisci quel nome utente) e la password dell'utente MySQL di seafile.
  4. Sui database ccnet-server, seafile-server e seahub basta premere il tasto [Invio] – impostazione predefinita.

Una volta installato correttamente Seafile Server, genererà alcune informazioni utili come quali porte devono essere aperte sul firewall per consentire la connessione esterna e quali script gestire per avviare il server.

Passaggio 3: aprire il firewall e creare lo script init Seafile

7. Prima di avviare il server Seafile dallo script locale per un test, torna all'account root e apri la configurazione del file firewall iptables che si trova su /etc/sysconfig/ percorso di sistema e aggiungi le seguenti regole di riga prima della prima riga REJECT, quindi riavvia iptables per applicare le nuove regole.

su - root
nano /etc/sysconfig/iptables

Aggiungi le seguenti regole.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT

Riavvia iptables per applicare le regole utilizzando il seguente comando.

service iptables restart

NOTA: se hai modificato le porte standard Seafile durante il processo di installazione, aggiorna di conseguenza le regole iptables del firewall.

8. Ora è il momento di testare Seafile Server. Passare all'utente Seafile e alla directory seafile-server e avviare il server utilizzando gli script seafile.sh e seahub.sh.

La prima volta che avvii lo script seahub.sh, crea un account amministrativo per Seafile Server utilizzando il tuo indirizzo email e scegli una password complessa per l'account amministratore, soprattutto se stai distribuendo questa configurazione in un ambiente di produzione.

su - seafile
cd seafile-server-latest/
./seafile.sh start
./seahub.sh start

9. Dopo aver avviato correttamente il server, apri un browser e accedi all'indirizzo IP o al nome di dominio del tuo server sulla porta 8000 utilizzando il protocollo HTTP, quindi accedi utilizzando l'account amministratore creato nel passaggio precedente.

http://system_IP:8000

OR 

http://domain_name:8000

10. Dopo i primi test di configurazione, arresta il server Seafile e crea uno script init che ti aiuterà a gestire più facilmente l'intero processo, proprio come qualsiasi altro processo demone del sistema Linux.

./seafile.sh stop
./seahub.sh stop
su - root
nano /etc/init.d/seafile

Aggiungi il seguente contenuto su questo script init – Se Seafile è installato su un altro utente del sistema assicurati di aggiornare utente e percorsi di conseguenza sulle righe su – $USER -c.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
        echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

stop() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}

restart() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"

         echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    restart)
       restart
        ;;
        *)
      echo "Usage: $0 start stop restart"
        ;;
esac

11. Dopo aver creato il file init, assicurati che disponga dei permessi di esecuzione e gestisci il processo utilizzando start, stop e gli interruttori riavvia. Ora puoi aggiungere il servizio Seafile all'avvio del sistema utilizzando il comando chkconfig.

chmod +x /etc/init.d/seafile
service seafile start 
service seafile stop 
service seafile restart
chkconfig seafile on | off
chkconfig --list seafile

12. Per impostazione predefinita il server Seafile utilizza la porta HTTP 8000/TCP per le transazioni web. Se desideri accedere a Seafile Server dal browser sulla porta HTTP standard, utilizza il seguente script init che avvia il server sulla porta 80 (tieni presente che l'avvio di un servizio sulle porte inferiori a < b>1024 richiede i privilegi di root).

nano /etc/init.d/seafile

Aggiungi il seguente contenuto su questo script init per avviare Seafile sulla porta HTTP standard. Se Seafile è installato su un altro utente del sistema, assicurati di aggiornare utente e percorsi di conseguenza sulle righe su – $USER -c e $HOME.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
                echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
                ## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}

stop() {
                echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}

restart() {
      echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
                 echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
     restart)
       restart
        ;;
                *)
        echo "Usage: $0 start stop restart"
        ;;
Esac

13. Se in precedenza hai avviato Seafile sulla porta 8000 assicurati che tutti i processi vengano terminati, avvia il server sulla porta 80.

chmod +x /etc/init.d/seafile
service seafile start | stop | restart

Aprire un browser e indirizzarlo al seguente indirizzo.

http://system_ip 

OR

http://domain_name.tld

14. Puoi anche verificare su quali porte Seafile è in esecuzione utilizzando il comando netstat.

netstat -tlpn

Questo è tutto! Seafile può tranquillamente sostituire altre piattaforme cloud di collaborazione e sincronizzazione di file come Dropbox pubblico, Owncloud, Pydio, OneDrive, ecc. sulla tua organizzazione, essendo progettato per un migliore lavoro di squadra e il pieno controllo del tuo spazio di archiviazione con sicurezza avanzata nello spazio utente.

Nel mio prossimo articolo, tratterò come installare il client Seafile su sistemi Linux e Windows e ti mostrerò anche come connetterti a Seafile Server. Fino ad allora restate sintonizzati su Tecmint e non dimenticate di lasciare i vostri preziosi commenti.