Installere Seafile (Secure Cloud Storage) med MySQL-database i RHEL/CentOS/SL 7.x/6.x


Seafile er en avansert åpen kildekode-samarbeidsapplikasjon for skylagring skrevet i Python med støtte for fildeling og synkronisering, teamsamarbeid og personvern ved bruk av kryptering på klientsiden. Den er bygget som en filsynkronisering med flere plattformer med klienter som kjører på alle større plattformer (Linux, Raspberry Pi, Windows, Mac, iPhone og Android) og kan enkelt integreres med lokale tjenester som LDAP og WebDAV eller kan distribueres ved hjelp av avansert nettverkstjenester og databaser som MySQL, SQLite, PostgreSQL, Memcached, Nginx eller Apache Web Server.

Denne veiledningen vil veilede deg om en trinnvis installasjon av Seafile Server på RHEL/CentOS/Scientific Linux 7.x/6.x distribuert med MySQL-database, med oppstart init skript for å kjøre serveren på standard Seafile-port (8000/TCP) og standard HTTP-transaksjonsport (80/TCP), oppretter nødvendige brannmurregler for å åpne nødvendige porter.

  1. Minimal CentOS 6.5-installasjon med statisk IP-adresse.
  2. MySQL/MariaDB-database
  3. Python 2.6.5+ eller 2.7
  4. Python-oppsettverktøy
  5. Python-simplejson
  6. Python-avbildning
  7. Python-mysqldb

Denne installasjonsprosedyren testet på CentOS 6.4 64-bits-system, men kan også brukes på andre Linux-distribusjoner med spesifikasjonen at init oppstartsskript er forskjellige fra en distribusjon til en annen .

Trinn 1: Installer Python-moduler

1. Gjør først en system-oppdatering, og installer deretter alle nødvendige Python-moduler ved å bruke følgende kommandoer.

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

2. Hvis du bruker en Debian- eller Ubuntu-server, installer alle Python-moduler med de neste kommandoene.

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

Trinn 2: Installer Seafile Server

3. Etter at alle Python-modulene er installert, oppretter du en ny systembruker med et sterkt passord som skal brukes til å være vert for Seafile-serverkonfigurasjonen og alle data i hjemmekatalogen, og bytt deretter til den nylig opprettede brukerkontoen.

# adduser seafile
# passwd seafile
# su - seafile

4. Logg deretter på MySQL-databasen og lag tre databaser, én for hver Seafile Server-komponent: ccnet-server, seafile-server og seahub med en enkelt bruker for alle databaser.

$ 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. Nå er det på tide å laste ned og installere Seafile Server. Gå til Seafiles offisielle nedlastingsside og hent den siste .Tar Linux-arkivutgaven for serverarkitekturen din ved å bruke wget-kommandoen, trekk den ut til hjemmebrukeren din som Seafile-brukeren opprettet tidligere, og skriv inn Seafile uttrukket katalog.

$ 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. For å installere Seafile Server ved hjelp av MySQL-databasen, kjør setup-seafile-mysql.sh initialiseringsskript og svar på alle spørsmål ved å bruke følgende konfigurasjonsalternativer, etter at skriptet har bekreftet eksistensen av alle Python-påkrevde moduler.

$ ./setup-seafile-mysql.sh

  1. Hva er navnet på serveren din? = velg et beskrivende navn (ingen mellomrom tillatt).
  2. Hva er IP-en eller domenet til serveren? = skriv inn serverens IP-adresse eller ditt gyldige domenenavn.
  3. Hvilken port vil du bruke for ccnet-serveren? = trykk [Enter] – la det stå som standard – 10001.
  4. Hvor vil du plassere sjøfildata? = trykk [Enter] – standardplasseringen vil være $HOME/seafile-data-katalogen din.
  5. Hvilken port vil du bruke for sjøfilserver? = trykk [Enter] – la den stå som standard – 12001.

  1. Hvilken port vil du bruke for sjøfil httpserver? = trykk [Enter] – la den stå som standard – 8082.
  2. Vennligst velg en måte å initialisere sjøfildatabaser på: = velg 1 og oppgi standard MySQL-legitimasjon: localhost, 3306 og root-passord.
  3. Skriv inn navnet for MySQL-bruker av seafile: = seafile (hvis du opprettet et annet brukernavn, skriv inn det brukernavnet) og seafile MySQL-brukerpassordet.
  4. På ccnet-server, seafile-server og seahub-databaser trykker du bare på [Enter]-tasten – standard.

Etter at Seafile Server er installert, vil den generere noe nyttig informasjon, for eksempel hvilke porter som må være åpne på brannmuren for å tillate ekstern tilkobling og hvilke skript som skal håndteres for å starte serveren.

Trinn 3: Åpne brannmur og lag Seafile init-skript

7. Før du starter Seafile-serveren fra lokalt skript for en test, bytt tilbake til root-konto og åpne iptables-brannmurfilkonfigurasjonen som ligger på /etc/sysconfig/ systembane og legg til følgende linjeregler før første REJECT-linje, start deretter iptables på nytt for å bruke nye regler.

$ su - root
# nano /etc/sysconfig/iptables

Legg til følgende regler.

-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

Start iptables på nytt for å bruke regler ved å bruke følgende kommando.

# service iptables restart

MERK: Hvis du endret Seafile-standardporter under installasjonsprosessen, oppdater brannmurens iptables-regler tilsvarende.

8. Nå er det på tide å teste Seafile Server. Bytt til Seafile-bruker- og seafile-server-katalogen og start serveren ved å bruke skriptene seafile.sh og seahub.sh.

Første gang du starter seahub.sh-skriptet, oppretter du en administrativ konto for Seafile Server ved å bruke e-postadressen din og velger et sterkt passord for admin-kontoen, spesielt hvis du distribuerer denne konfigurasjonen i et produksjonsmiljø.

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

9. Etter at serveren er startet, åpner du en nettleser og navigerer til serverens IP-adresse eller domenenavn på port 8000 ved hjelp av HTTP-protokollen, og deretter logger du på med administratorkontoen du opprettet i trinnet ovenfor.

http://system_IP:8000

OR 

http://domain_name:8000

10. Etter de første konfigurasjonstestene, stopp Seafile-serveren og lag et init-skript som vil hjelpe deg å administrere hele prosessen enklere, akkurat som alle andre Linux-systemdemonprosesser.

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

Legg til følgende innhold på dette init-skriptet – Hvis Seafile er installert på andre systembrukere, sørg for å oppdatere bruker og stier tilsvarende på linjene 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. Etter at init-filen er opprettet, sørg for at den har kjøringstillatelser og administrer prosessen ved å bruke start, stopp og start på nytt brytere. Nå kan du legge til Seafile-tjenesten ved systemoppstart ved å bruke kommandoen chkconfig.

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

12. Som standard bruker Seafile-serveren 8000/TCP HTTP-port for netttransaksjoner. Hvis du ønsker å få tilgang til Seafile Server fra nettleseren på standard HTTP-port, bruk følgende init-skript som starter serveren på port 80 (vær oppmerksom på at å starte en tjeneste på porter under < b>1024 krever root-privilegier).

# nano /etc/init.d/seafile

Legg til følgende innhold på dette init-skriptet for å starte Seafile på standard HTTP-port. Hvis Seafile er installert på andre systembrukere, sørg for å oppdatere bruker og stier tilsvarende på linjene su – $USER -c og $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. Hvis du tidligere startet Seafile på port 8000, sørg for at alle prosesser er drept, start serveren på port 80.

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

Åpne en nettleser og send den til følgende adresse.

http://system_ip 

OR

http://domain_name.tld

14. Du kan også verifisere på hvilke porter Seafile kjører ved å bruke kommandoen netstat.

# netstat -tlpn

Det er det! Seafile kan gjerne erstatte andre skysamarbeids- og filsynkroniseringsplattformer som offentlig Dropbox, Owncloud, Pydio, OneDrive osv. på organisasjonen din, designet for bedre teamarbeid og full kontroll over lagringen din med avansert sikkerhet i brukerområdet.

I min kommende artikkel vil jeg dekke hvordan du installerer Seafile-klient på Linux- og Windows-systemer og også vise deg hvordan du kobler til Seafile Server. Inntil da følg med på Tecmint og ikke glem å gi dine verdifulle kommentarer.