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


Seafile er en avanceret open source-samarbejdsskyoplagringsapplikation skrevet i Python med understøttelse af fildeling og synkronisering, teamsamarbejde og beskyttelse af privatlivets fred ved hjælp af kryptering på klientsiden. Det er opbygget som en filplatform, der synkroniseres med klienter, der kører på alle større platforme (Linux, Raspberry Pi, Windows, Mac, iPhone og Android) og let kan integreres med lokale tjenester som LDAP og WebDAV eller kan implementeres ved hjælp af avanceret netværkstjenester og databaser som MySQL, SQLite, PostgreSQL, Memcached, Nginx eller Apache Web Server.

Denne vejledning vil guide dig trin for trin Seafile Server installation på RHEL/CentOS/Scientific Linux 7.x/6.x implementeret med MySQL-database med opstart init scripts til at køre serveren på standard Seafile-port (8000/TCP) og standard HTTP-transaktionsport (80/TCP), skal du oprette nødvendige Firewall-regler for at åbne de nødvendige porte.

  1. Minimal CentOS 6.5-installation med statisk IP-adresse.
  2. MySQL/MariaDB-database
  3. Python 2.6.5+ eller 2.7
  4. Python-opsætningsværktøjer
  5. Python-simplejson
  6. Python-billeddannelse
  7. Python-mysqldb

Denne installationsprocedure testet på CentOS 6.4 64-bit system, men kan også bruges på andre Linux-distributioner med den specifikation, at init opstartsskripter adskiller sig fra en distribution til en anden .

Trin 1: Installer Python-moduler

1. Foretag først et system Opdater , og installer derefter alle nødvendige Python-moduler ved hjælp af følgende kommandoer.

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

2. Hvis du bruger en Debian eller Ubuntu -server, skal du installere alle Python-moduler med de næste kommandoer.

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

Trin 2: Installer Seafile Server

3. Når alle Python-moduler er installeret, skal du oprette en ny systembruger med en stærk adgangskode, der vil blive brugt til at være vært for Seafile-serverkonfiguration og alle data i dens hjemmekatalog, og skift derefter til den oprettede ny brugerkonto.

# adduser seafile
# passwd seafile
# su - seafile

4. Log derefter ind på MySQL-databasen, og opret tre databaser, en for hver Seafile Server-komponent: ccnet-server , seafile-server og seahub med en enkelt bruger til 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. Nu er det tid til at downloade og installere Seafile Server . Gå til Seafile officielle download-side, og få fat i den sidste .Tar Linux-arkivudgivelse til din serverarkitektur ved hjælp af wget kommandoen, og træk den derefter ud til dit hjem Seafile-bruger oprettet tidligere og gå ind i Seafile ekstraheret bibliotek.

$ 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 at installere Seafile Server ved hjælp af MySQL-databasen skal du køre setup-seafile-mysql.sh initialiseringsscript og besvare alle spørgsmål ved hjælp af følgende konfigurationsindstillinger, efter at scriptet verificerer eksistensen af alle Python-nødvendige moduler.

$ ./setup-seafile-mysql.sh

  1. Hvad hedder din server? = vælg et beskrivende navn (ingen mellemrum tilladt).
  2. Hvad er serverens IP eller domæne? = indtast din server IP-adresse eller dit gyldige domænenavn .
  3. Hvilken port vil du bruge til ccnet-server? = tryk på [ Enter ] - lad det være standard - 10001 .
  4. Hvor vil du placere havfildata? = hit [ Indtast ] - standardplaceringen vil være din $ HOME/seafile-data -mappe.
  5. Hvilken port vil du bruge til seafile-server? = tryk på [ Enter ] - lad det være standard - 12001 .

  1. Hvilken port vil du bruge til seafile httpserver? = tryk på [ Enter ] - lad det være standard - 8082 .
  2. Vælg en måde at initialisere seafile-databaser på: = vælg 1 og angiv standard MySQL-legitimationsoplysninger: localhost, 3306 og root-adgangskode.
  3. Indtast navnet på MySQL-bruger af seafile: = seafile (hvis du oprettede et andet brugernavn, skal du indtaste det brugernavn ) og seafile MySQL-brugeradgangskode.
  4. På ccnet-server-, seafile-server- og seahub-databaser skal du bare trykke på [ Enter ] -tasten - standard.

Når Seafile Server har installeret med succes, genererer den nogle nyttige oplysninger, såsom hvilke porte der skal være åbne på din Firewall for at tillade ekstern forbindelse og hvilke scripts der skal håndteres for at starte serveren.

Trin 3: Åbn Firewall og Opret Seafile init Script

7. Inden du starter Seafile-server fra det lokale script til en test, skal du skifte tilbage til root konto og åbne iptables firewall-filkonfiguration placeret på /etc/sysconfig/ systemsti og tilføj følgende linieregler før første REJECT linje, genstart derefter iptables for at anvende nye regler.

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

Tilføj 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

Genstart iptables for at anvende regler ved hjælp af følgende kommando.

# service iptables restart

BEMÆRK: Hvis du har ændret Seafile-standardporte under installationsprocessen, skal du opdatere dine Firewall-iptables-regler i overensstemmelse hermed.

8. Nu er det tid til at teste Seafile Server. Skift til Seafile-bruger- og seafile-server -mappen, og start serveren ved hjælp af seafile.sh og seahub.sh -skripter.

Første gang du starter seahub.sh script, skal du oprette en administratorkonto til Seafile Server ved hjælp af din e-mail-adresse og vælge en stærk adgangskode til admin-konto, især hvis du implementerer denne konfiguration i et produktionsmiljø.

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

9. Når serveren er startet korrekt, skal du åbne en browser og navigere til din server IP-adresse eller domænenavn på port 8000 ved hjælp af HTTP-protokol, og derefter logge ind med din admin-konto oprettet på ovenstående trin.

http://system_IP:8000

OR 

http://domain_name:8000

10. Efter første konfigurationstest skal du stoppe Seafile-serveren og oprette et init script, der hjælper dig med lettere at styre hele processen, ligesom alle andre Linux-systemdæmonprocesser.

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

Tilføj følgende indhold i dette init script - Hvis Seafile er installeret på en anden systembruger, skal du sørge for at opdatere bruger og stier i overensstemmelse hermed på su - $ USER -c linjer.

#!/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. Når init -fil er oprettet, skal du sørge for, at den har eksekveringstilladelser, og styre processen ved hjælp af start , stop og genstart afbrydere. Nu kan du tilføje Seafile-service ved systemstart ved hjælp af 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 bruger Seafile-server 8000 / TCP HTTP-port til webtransaktioner. Hvis du vil få adgang til Seafile Server fra browseren på standard HTTP-port, skal du bruge følgende init script, som starter serveren på port 80 (vær opmærksom på, at start af en tjeneste på porte under < b> 1024 kræver rodrettigheder).

# nano /etc/init.d/seafile

Tilføj følgende indhold på dette init script for at starte Seafile på standard HTTP-port. Hvis Seafile er installeret på en anden systembruger, skal du sørge for at opdatere bruger og stier i overensstemmelse hermed på linjerne 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 startede Seafile på port 8000 og sørg for, at alle processer dræbes, skal du starte serveren på port 80.

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

Åbn en browser og diriger den til følgende adresse.

http://system_ip 

OR

http://domain_name.tld

14. Du kan også kontrollere, hvilke porte Seafile kører ved hjælp af kommandoen netstat .

# netstat -tlpn

Det er det! Seafile kan med glæde erstatte andre cloud-samarbejds- og filsynkroniseringsplatforme som offentlige Dropbox , Owncloud , Pydio , OneDrive osv. på din organisation, der er designet til bedre teamwork og fuld kontrol over din lagerplads med avanceret sikkerhed i brugerrummet.

I min kommende artikel vil jeg dække, hvordan du installerer Seafile-klienten på Linux- og Windows-systemer, og viser dig også, hvordan du opretter forbindelse til Seafile Server. Indtil da hold dig opdateret med Tecmint og glem ikke at give dine værdifulde kommentarer.