Website-Suche

Installation von Seafile (Secure Cloud Storage) mit MySQL-Datenbank in RHEL/CentOS/SL 7.x/6.x


Seafile ist eine fortschrittliche, in Python geschriebene, kollaborative Open-Source-Cloud-Speicheranwendung mit Dateifreigabe- und Synchronisierungsunterstützung, Teamzusammenarbeit und Datenschutz durch clientseitige Verschlüsselung. Es ist als plattformübergreifende Dateisynchronisierung mit Clients konzipiert, die auf allen wichtigen Plattformen (Linux, Raspberry Pi, Windows, Mac, iPhone und Android) läuft und problemlos in lokale Dienste wie LDAP und WebDAV integriert oder mit erweiterten Funktionen bereitgestellt werden kann Netzwerkdienste und Datenbanken wie MySQL, SQLite, PostgreSQL, Memcached, Nginx oder Apache Web Server.

Dieses Tutorial führt Sie Schritt für Schritt durch die Installation von Seafile Server unter RHEL/CentOS/Scientific Linux 7.x/6.x, bereitgestellt mit MySQL-Datenbank, mit Start-init Skripte zum Ausführen des Servers auf dem Standard-Seafile-Port (8000/TCP) und dem Standard-HTTP-Transaktionsport (80/TCP), erstellen Sie die erforderlichen Firewall-Regeln, um die erforderlichen Ports zu öffnen.

Anforderungen

  1. Minimale CentOS 6.5-Installation mit statischer IP-Adresse.
  2. MySQL/MariaDB-Datenbank
  3. Python 2.6.5+ oder 2.7
  4. Python-Setuptools
  5. Python-simplejson
  6. Python-Bildgebung
  7. Python-mysqldb

Dieses Installationsverfahren wurde auf dem CentOS 6.4 64-Bit-System getestet, kann aber auch auf anderen Linux-Distributionen verwendet werden, sofern die init-Startskripte von Distribution zu Distribution unterschiedlich sind .

Schritt 1: Python-Module installieren

1. Führen Sie zunächst ein System-Update durch und installieren Sie dann alle erforderlichen Python-Module mit den folgenden Befehlen.

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

2. Wenn Sie einen Debian- oder Ubuntu-Server verwenden, installieren Sie alle Python-Module mit den nächsten Befehlen.

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

Schritt 2: Seafile Server installieren

3. Nachdem alle Python-Module installiert sind, erstellen Sie einen neuen Systembenutzer mit einem sicheren Passwort, der zum Hosten der Seafile-Serverkonfiguration und aller Daten in seinem Home-Verzeichnis verwendet wird, und wechseln Sie dann zum neu erstellten Benutzerkonto.

adduser seafile
passwd seafile
su - seafile

4. Melden Sie sich dann bei der MySQL-Datenbank an und erstellen Sie drei Datenbanken, eine für jede Seafile-Server-Komponente: ccnet-Server, Seafile-Server und Seahub mit einem einzigen Benutzer für alle Datenbanken.

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. Jetzt ist es an der Zeit, Seafile Server herunterzuladen und zu installieren. Gehen Sie zur offiziellen Download-Seite von Seafile und holen Sie sich mit dem Befehl wget die letzte Linux-Archivversion .Tar für Ihre Serverarchitektur. Extrahieren Sie sie dann in Ihren zuvor erstellten Home-Seafile-Benutzer und geben Sie Seafile ein extrahiertes Verzeichnis.

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. Um Seafile Server mithilfe der MySQL-Datenbank zu installieren, führen Sie das Initialisierungsskript setup-seafile-mysql.sh aus und beantworten Sie alle Fragen mit den folgenden Konfigurationsoptionen, nachdem das Skript die Existenz von überprüft hat alle für Python erforderlichen Module.

./setup-seafile-mysql.sh
  1. Wie heißt Ihr Server?=Wählen Sie einen beschreibenden Namen (keine Leerzeichen erlaubt).
  2. Wie lautet die IP oder Domäne des Servers?=Geben Sie die IP-Adresse Ihres Servers oder Ihren gültigen Domänennamen ein.
  3. Welchen Port möchten Sie für den CCNET-Server verwenden?=[Enter] drücken – Standardwert belassen – 10001.
  4. Wo möchten Sie Seafile-Daten ablegen?=drücken Sie die [Eingabetaste] – der Standardspeicherort ist Ihr $HOME/seafile-data-Verzeichnis.
  5. Welchen Port möchten Sie für den Seafile-Server verwenden?=[Enter] drücken – Standardwert belassen – 12001.

  1. Welchen Port möchten Sie für den Seafile-HTTP-Server verwenden?=[Enter] drücken – Standardwert belassen – 8082.
  2. Bitte wählen Sie eine Methode zum Initialisieren von Seafile-Datenbanken:=Wählen Sie 1 und geben Sie die Standard-MySQL-Anmeldeinformationen ein: localhost, 3306 und Root-Passwort.
  3. Geben Sie den Namen für den MySQL-Benutzer von Seafile ein:=Seafile (wenn Sie einen anderen Benutzernamen erstellt haben, geben Sie diesen Benutzernamen ein) und das Seafile-MySQL-Benutzerkennwort.
  4. Bei ccnet-server-, seafile-server- und seahub-Datenbanken drücken Sie einfach die [Enter]-Taste – Standardeinstellung.

Nach der erfolgreichen Installation von Seafile Server werden einige nützliche Informationen generiert, z. B. welche Ports in Ihrer Firewall geöffnet sein müssen, um eine externe Verbindung zu ermöglichen, und welche Skripts verarbeitet werden müssen, um den Server zu starten.

Schritt 3: Öffnen Sie die Firewall und erstellen Sie ein Seafile-Init-Skript

7. Bevor Sie den Seafile-Server für einen Test über ein lokales Skript starten, wechseln Sie zurück zum Root-Konto und öffnen Sie die iptables-Firewall-Dateikonfiguration auf /etc/sysconfig/ Systempfad und fügen Sie die folgenden Zeilenregeln vor der ersten REJECT-Zeile hinzu. Starten Sie dann iptables neu, um die neuen Regeln anzuwenden.

su - root
nano /etc/sysconfig/iptables

Fügen Sie die folgenden Regeln hinzu.

-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

Starten Sie iptables mit dem folgenden Befehl neu, um Regeln anzuwenden.

service iptables restart

HINWEIS: Wenn Sie die Seafile-Standardports während des Installationsprozesses geändert haben, aktualisieren Sie Ihre Firewall-iptables-Regeln entsprechend.

8. Jetzt ist es an der Zeit, Seafile Server zu testen. Wechseln Sie zum Seafile-Benutzer- und seafile-server-Verzeichnis und starten Sie den Server mit den Skripten seafile.sh und seahub.sh.

Wenn Sie das Skript seahub.sh zum ersten Mal starten, erstellen Sie mit Ihrer E-Mail-Adresse ein Administratorkonto für Seafile Server und wählen Sie ein sicheres Passwort für das Administratorkonto, insbesondere wenn Sie diese Konfiguration in einer Produktionsumgebung bereitstellen.

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

9. Nachdem der Server erfolgreich gestartet wurde, öffnen Sie einen Browser und navigieren Sie über das HTTP-Protokoll zu Ihrer Server-IP-Adresse oder Ihrem Domänennamen auf Port 8000. Melden Sie sich dann mit Ihrem erstellten Administratorkonto an auf den obigen Schritt.

http://system_IP:8000

OR 

http://domain_name:8000

10. Stoppen Sie nach den ersten Konfigurationstests den Seafile-Server und erstellen Sie ein init-Skript, das Ihnen dabei hilft, den gesamten Prozess einfacher zu verwalten, genau wie alle anderen Linux-System-Daemon-Prozesse.

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

Fügen Sie diesem init-Skript den folgenden Inhalt hinzu: Wenn Seafile auf einem anderen Systembenutzer installiert ist, stellen Sie sicher, dass Benutzer und Pfade in den Zeilen su – $USER -c entsprechend aktualisiert werden.

#!/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. Nachdem die init-Datei erstellt wurde, stellen Sie sicher, dass sie über Ausführungsberechtigungen verfügt, und verwalten Sie den Prozess mit Start, Stop > und Neustart-Schalter. Jetzt können Sie den Seafile-Dienst beim Systemstart mit dem Befehl chkconfig hinzufügen.

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

12. Standardmäßig verwendet der Seafile-Server den HTTP-Port 8000/TCP für Webtransaktionen. Wenn Sie über einen Browser über einen Standard-HTTP-Port auf den Seafile-Server zugreifen möchten, verwenden Sie das folgende init-Skript, das den Server auf Port 80 startet (beachten Sie, dass das Starten eines Dienstes auf Ports unter < b>1024 erfordert Root-Rechte).

nano /etc/init.d/seafile

Fügen Sie diesem init-Skript den folgenden Inhalt hinzu, um Seafile auf dem Standard-HTTP-Port zu starten. Wenn Seafile auf einem anderen Systembenutzer installiert ist, stellen Sie sicher, dass Benutzer und Pfade in den Zeilen su – $USER -c und $HOME entsprechend aktualisiert werden.

#!/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. Wenn Sie Seafile zuvor auf Port 8000 gestartet haben, stellen Sie sicher, dass alle Prozesse beendet sind, und starten Sie den Server auf Port 80.

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

Öffnen Sie einen Browser und leiten Sie ihn an die folgende Adresse weiter.

http://system_ip 

OR

http://domain_name.tld

14. Sie können auch mit dem Befehl netstat überprüfen, auf welchen Ports Seafile ausgeführt wird.

netstat -tlpn

Das ist es! Seafile kann problemlos andere Cloud-Plattformen für Zusammenarbeit und Dateisynchronisierung wie öffentliche Dropbox, Owncloud, Pydio, OneDrive usw. ersetzen auf Ihre Organisation, konzipiert für bessere Teamarbeit und vollständige Kontrolle über Ihren Speicher mit erweiterter Sicherheit im Benutzerbereich.

In meinem kommenden Artikel werde ich die Installation des Seafile-Clients auf Linux- und Windows-Systemen behandeln und Ihnen auch zeigen, wie Sie eine Verbindung zum Seafile-Server herstellen. Bleiben Sie bis dahin auf dem Laufenden bei Tecmint und vergessen Sie nicht, Ihre wertvollen Kommentare abzugeben.