Zoeken op website

Seafile (veilige cloudopslag) installeren met MySQL-database in RHEL/CentOS/SL 7.x/6.x


Seafile is een geavanceerde open source samenwerkingsapplicatie voor cloudopslag geschreven in Python met ondersteuning voor het delen en synchroniseren van bestanden, teamsamenwerking en privacybescherming met behulp van encryptie aan de clientzijde. Het is gebouwd als een multi-platform bestandssynchronisatie met clients die op alle grote platforms draait (Linux, Raspberry Pi, Windows, Mac, iPhone en Android) en kan eenvoudig worden geïntegreerd met lokale services zoals LDAP en WebDAV of kan worden geïmplementeerd met behulp van geavanceerde netwerkdiensten en databases zoals MySQL, SQLite, PostgreSQL, Memcached, Nginx of Apache Web Server.

Deze tutorial begeleidt u bij een stapsgewijze Seafile Server-installatie op RHEL/CentOS/Scientific Linux 7.x/6.x geïmplementeerd met MySQL-database, met opstarten init > scripts voor het uitvoeren van de server op de standaard Seafile-poort (8000/TCP) en de standaard HTTP-transactiepoort (80/TCP), creëer de nodige firewallregels om de vereiste poorten te openen.

Vereisten

  1. Minimale CentOS 6.5-installatie met statisch IP-adres.
  2. MySQL/MariaDB-database
  3. Python 2.6.5+ of 2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Python-imaging
  7. Python-mysqldb

Deze installatieprocedure is getest op het CentOS 6.4 64-bit systeem, maar kan ook worden gebruikt op andere Linux-distributies met de specificatie dat init opstartscripts verschillen van de ene distributie tot de andere .

Stap 1: Installeer Python-modules

1. Voer eerst een systeem-update uit en installeer vervolgens alle vereiste Python-modules met behulp van de volgende opdrachten.

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

2. Als u een Debian- of Ubuntu-server gebruikt, installeer dan alle Python-modules met de volgende opdrachten.

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

Stap 2: Installeer Seafile Server

3. Nadat alle Python-modules zijn geïnstalleerd, maakt u een nieuwe systeemgebruiker aan met een sterk wachtwoord dat zal worden gebruikt om de Seafile-serverconfiguratie en alle gegevens in de thuismap te hosten, en schakelt u vervolgens over naar het nieuw aangemaakte gebruikersaccount.

adduser seafile
passwd seafile
su - seafile

4. Log vervolgens in op de MySQL-database en maak drie databases, één voor elke Seafile Server-component: ccnet-server, seafile-server en seahub met één gebruiker voor alle databases.

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 is het tijd om Seafile Server te downloaden en te installeren. Ga naar de officiële downloadpagina van Seafile en pak de laatste .Tar Linux-archiefversie voor uw serverarchitectuur met de opdracht wget, pak het vervolgens uit naar uw eerder aangemaakte Seafile-gebruiker thuis en voer Seafile in uitgepakte map.

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. Om Seafile Server te installeren met behulp van de MySQL-database, voert u het initialisatiescript setup-seafile-mysql.sh uit en beantwoordt u alle vragen met behulp van de volgende configuratieopties, nadat het script het bestaan van alle door Python vereiste modules.

./setup-seafile-mysql.sh
  1. Wat is de naam van uw server?=kies een beschrijvende naam (geen spaties toegestaan).
  2. Wat is het IP-adres of domein van de server?=voer uw server-IP-adres of uw geldige domeinnaam in.
  3. Welke poort wilt u gebruiken voor de ccnet-server?=druk op [Enter] – laat het standaard staan – 10001.
  4. Waar wilt u zeebestandsgegevens plaatsen?=druk op [Enter] – de standaardlocatie zal uw map $HOME/seafile-data zijn.
  5. Welke poort wilt u gebruiken voor de seafile-server?=druk op [Enter] – laat het standaard staan – 12001.

  1. Welke poort wilt u gebruiken voor seafile httpserver?=druk op [Enter] – laat het standaard staan – 8082.
  2. Kies een manier om seafile-databases te initialiseren:=kies 1 en geef standaard MySQL-inloggegevens op: localhost, 3306 en root-wachtwoord.
  3. Voer de naam in voor de MySQL-gebruiker van seafile:=seafile (als u een andere gebruikersnaam heeft aangemaakt, voer dan die gebruikersnaam in) en het Seafile MySQL-gebruikerswachtwoord.
  4. Op ccnet-server-, seafile-server- en seahub-databases drukt u gewoon op de [Enter]-toets – standaard.

Nadat Seafile Server succesvol is geïnstalleerd, zal het nuttige informatie genereren, zoals welke poorten open moeten zijn op uw firewall om een externe verbinding mogelijk te maken en welke scripts moeten worden verwerkt om de server te starten.

Stap 3: Open Firewall en maak een Seafile init-script

7. Voordat u de Seafile-server voor een test start vanuit een lokaal script, gaat u terug naar het root-account en opent u de iptables firewallbestandsconfiguratie op /etc/sysconfig/ systeempad en voeg de volgende regelregels toe vóór de eerste REJECT regel, start vervolgens iptables opnieuw om de nieuwe regels toe te passen.

su - root
nano /etc/sysconfig/iptables

Voeg de volgende regels toe.

-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 opnieuw om regels toe te passen met behulp van de volgende opdracht.

service iptables restart

OPMERKING: als u de standaardpoorten van Seafile tijdens het installatieproces hebt gewijzigd, update dan de iptables-regels van uw Firewall dienovereenkomstig.

8. Nu is het tijd om Seafile Server te testen. Schakel over naar Seafile-gebruiker en seafile-server map en start de server met behulp van seafile.sh en seahub.sh scripts.

De eerste keer dat u het seahub.sh-script start, maakt u een beheerdersaccount voor Seafile Server met uw e-mailadres en kiest u een sterk wachtwoord voor het beheerdersaccount, vooral als u deze configuratie in een productieomgeving implementeert.

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

9. Nadat de server succesvol is gestart, opent u een browser en navigeert u naar het IP-adres of de domeinnaam van uw server op poort 8000 met behulp van het HTTP-protocol. Log vervolgens in met uw aangemaakte beheerdersaccount op de bovenstaande stap.

http://system_IP:8000

OR 

http://domain_name:8000

10. Na de eerste configuratietests stopt u de Seafile-server en maakt u een init-script waarmee u het hele proces eenvoudiger kunt beheren, net als alle andere Linux-systeemdaemon-processen.

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

Voeg de volgende inhoud toe aan dit init-script – Als Seafile op een andere systeemgebruiker is geïnstalleerd, zorg er dan voor dat u de gebruiker en paden dienovereenkomstig bijwerkt op su – $USER -c regels.

#!/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. Nadat het init bestand is aangemaakt, zorg ervoor dat het uitvoeringsrechten heeft en beheer het proces met start, stop > en herstart schakelaars. Nu kunt u de Seafile-service toevoegen bij het opstarten van het systeem met de opdracht chkconfig.

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

12. De Seafile-server gebruikt standaard de 8000/TCP HTTP-poort voor webtransacties. Als u toegang wilt krijgen tot Seafile Server vanuit een browser op de standaard HTTP-poort, gebruikt u het volgende init-script dat de server start op poort 80 (houd er rekening mee dat het starten van een service op poorten onder < b>1024 vereist rootrechten).

nano /etc/init.d/seafile

Voeg de volgende inhoud toe aan dit init-script om Seafile op de standaard HTTP-poort te starten. Als Seafile op een andere systeemgebruiker is geïnstalleerd, zorg er dan voor dat u de gebruiker en paden dienovereenkomstig bijwerkt op de regels su – $USER -c en $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. Als u Seafile eerder op poort 8000 hebt gestart, zorg er dan voor dat alle processen zijn afgesloten en start de server op poort 80.

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

Open een browser en stuur deze naar het volgende adres.

http://system_ip 

OR

http://domain_name.tld

14. U kunt ook verifiëren op welke poorten Seafile actief is met de opdracht netstat.

netstat -tlpn

Dat is het! Seafile kan met plezier andere samenwerkings- en bestandssynchronisatieplatforms in de cloud vervangen, zoals openbare Dropbox, Owncloud, Pydio, OneDrive, enz. voor uw organisatie, ontworpen voor beter teamwerk en volledige controle over uw opslag met geavanceerde beveiliging in de gebruikersruimte.

In mijn komende artikel zal ik bespreken hoe je de Seafile-client op Linux- en Windows-systemen kunt installeren en ook laten zien hoe je verbinding kunt maken met Seafile Server. Blijf tot die tijd op de hoogte van Tecmint en vergeet niet uw waardevolle opmerkingen te geven.