Namestitev Seafile (varno shranjevanje v oblaku) z bazo podatkov MySQL v RHEL/CentOS/SL 7.x/6.x


Seafile je napredna odprtokodna aplikacija za skupno shranjevanje v oblaku, napisana v Pythonu, s podporo za skupno rabo in sinhronizacijo, skupinsko sodelovanje in zaščito zasebnosti s šifriranjem na strani odjemalca. Zgrajena je kot datoteka z več platformami, ki se sinhronizira z odjemalci in deluje na vseh večjih platformah (Linux, Raspberry Pi, Windows, Mac, iPhone in Android) in jo je mogoče enostavno integrirati z lokalnimi storitvami, kot sta LDAP in WebDAV, ali pa jo je mogoče uporabiti z uporabo naprednih omrežne storitve in podatkovne baze, kot so MySQL, SQLite, PostgreSQL, Memcached, Nginx ali Apache Web Server.

Ta vadnica vas bo vodila po korakih namestitve Seafile Server namestitve na RHEL/CentOS/Scientific Linux 7.x/6.x, razporejeni z bazo podatkov MySQL, z zagonskim init skripte za zagon strežnika na privzetih vratih Seafile (8000/TCP) in privzetih vratih transakcij HTTP (80/TCP), ustvarite potrebna pravila požarnega zidu, da odprete potrebna vrata.

  1. Minimalna namestitev CentOS 6.5 s statičnim naslovom IP.
  2. Baza podatkov MySQL/MariaDB
  3. Python 2.6.5+ ali 2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Python-imaging
  7. Python-mysqldb

Ta namestitveni postopek je bil preizkušen na sistemu CentOS 6.4 64-bit , vendar se lahko uporablja tudi v drugih distribucijah Linuxa s specifikacijo, da se init zagonski skripti razlikujejo od ene distribucije do druge. .

1. korak: Namestite Python module

1. Najprej izvedite posodobitev sistema, nato pa z naslednjimi ukazi namestite vse zahtevane module Python.

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

2. Če uporabljate strežnik Debian ali Ubuntu , namestite vse module Python z naslednjimi ukazi.

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

2. korak: Namestite strežnik Seafile

3. Po namestitvi vseh modulov Python ustvarite novega sistemskega uporabnika z močnim geslom, ki bo uporabljeno za gostovanje konfiguracije strežnika Seafile in vseh podatkov v domačem imeniku, nato preklopite na nov ustvarjen uporabniški račun.

# adduser seafile
# passwd seafile
# su - seafile

4. Nato se prijavite v bazo podatkov MySQL in ustvarite tri zbirke podatkov, po eno za vse komponente strežnika Seafile: strežnik ccnet , strežnik seafile in seahub z enim samim uporabnik za vse zbirke podatkov.

$ 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. Zdaj je čas za prenos in namestitev Seafile Server . Pojdite na uradno stran za prenos Seafile in z ukazom wget vzemite zadnjo izdajo .Tar Linuksa v arhivu za vašo strežniško arhitekturo, nato pa jo izvlecite domačemu uporabniku Seafile, ki ste ga ustvarili prej, in vnesite Seafile izvlečeni imenik.

$ 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. Za namestitev strežnika Seafile z bazo podatkov MySQL zaženite setup-seafile-mysql.sh inicializacijski skript in odgovorite na vsa vprašanja z naslednjimi konfiguracijskimi možnostmi, potem ko skript preveri obstoj vseh potrebnih modulov Python.

$ ./setup-seafile-mysql.sh

  1. Kako se imenuje vaš strežnik? = izberite opisno ime (presledki niso dovoljeni).
  2. Kakšen je IP ali domena strežnika? = vnesite naslov IP strežnika ali veljavno ime domene .
  3. Katera vrata želite uporabiti za strežnik ccnet? = pritisnite [ Enter ] - pustite privzeto - 10001 .
  4. Kam želite shraniti podatke o morskih datotekah? = zadeti [ Enter ] - privzeto mesto bo vaš imenik $HOME/seafile-data .
  5. Katera vrata želite uporabiti za strežnik seafile? = pritisnite [ Enter ] - pustite privzeto - 12001 .

  1. Katera vrata želite uporabiti za strežnik http morskih datotek? = pritisnite [ Enter ] - pustite privzeto - 8082 .
  2. Izberite način za inicializacijo zbirk podatkov morskih datotek: = izberite 1 in navedite privzete poverilnice MySQL: localhost, 3306 in root geslo.
  3. Vnesite ime za MySQL uporabnika seafile: = seafile (če ste ustvarili drugo uporabniško ime, vnesite to uporabniško ime ) in uporabniško geslo seafile MySQL.
  4. V podatkovnih bazah ccnet-server, seafile-server in seahub samo pritisnite tipko [ Enter ] - privzeto.

Po uspešni namestitvi strežnika Seafile bo ustvaril nekaj koristnih informacij, na primer o tem, katera vrata morajo biti odprta na požarnem zidu, da se omogoči zunanja povezava, in katere skripte je treba obdelati za zagon strežnika.

3. korak: Odprite požarni zid in ustvarite skript init Seafile

7. Preden zaženete strežnik Seafile iz lokalnega skripta za preizkus, se vrnite na root račun in odprite konfiguracijo datoteke požarnega zidu iptables , ki se nahaja na /etc/sysconfig/ sistemsko pot in dodajte naslednja pravila vrstice pred prvo vrstico REJECT , nato znova zaženite iptables, da uporabite nova pravila.

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

Priložite naslednja pravila.

-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

Znova zaženite iptables za uporabo pravil z naslednjim ukazom.

# service iptables restart

OPOMBA: Če ste v namestitvenem procesu spremenili standardna vrata Seafile, ustrezno posodobite pravila iptables požarnega zidu.

8. Zdaj je čas, da preizkusite Seafile Server. Preklopite na uporabnika Seafile in imenik seafile-server in zaženite strežnik s skriptama seafile.sh in seahub.sh .

Ko prvič zaženete skript seahub.sh , s svojim e-poštnim naslovom ustvarite skrbniški račun za strežnik Seafile in izberite močno geslo za skrbniški račun, še posebej, če to konfiguracijo uvajate v produkcijsko okolje.

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

9. Po uspešnem zagonu strežnika odprite brskalnik in po protokolu HTTP pojdite do naslova IP ali imena domene strežnika na vratih 8000 , nato se prijavite s svojim skrbniškim računom, ustvarjenim v zgornjem koraku.

http://system_IP:8000

OR 

http://domain_name:8000

10. Po prvih preizkusih konfiguracije ustavite strežnik Seafile in ustvarite skript init , ki vam bo pomagal lažje upravljati celoten postopek, tako kot kateri koli drugi sistemski demon sistemski proces.

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

V to skriptu init dodajte naslednjo vsebino - če je Seafile nameščen pri drugem uporabniku sistema, poskrbite, da ustrezno posodobite uporabnika in poti v vrsticah 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. Ko je datoteka init ustvarjena, se prepričajte, da ima dovoljenja za izvajanje, in upravljajte postopek s pomočjo start , stop in znova zaženite stikala. Zdaj lahko dodate storitev Seafile ob zagonu sistema z ukazom chkconfig .

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

12. Strežnik Seafile privzeto uporablja vrata HTTP 8000 / TCP za spletne transakcije. Če želite do strežnika Seafile dostopati iz brskalnika na standardnih vratih HTTP, uporabite ta skript init , ki zažene strežnik na vratih 80 (upoštevajte, da zagon storitve na vratih spodaj < b> 1024 zahteva korenske privilegije).

# nano /etc/init.d/seafile

V ta skript init dodajte naslednjo vsebino, da zaženete Seafile na standardnih vratih HTTP. Če je Seafile nameščen na drugih uporabnikih sistema, poskrbite, da ustrezno posodobite uporabnika in poti v vrsticah su - $USER -c in $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. Če ste Seafile že zagnali na vratih 8000 , se prepričajte, da so vsi procesi ubiti, zaženite strežnik na vratih 80.

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

Odprite brskalnik in ga usmerite na naslednji naslov.

http://system_ip 

OR

http://domain_name.tld

14. Z ukazom netstat lahko preverite tudi, na katerih vratih se izvaja Seafile.

# netstat -tlpn

To je to! Seafile lahko z veseljem nadomesti druge platforme za sodelovanje v oblaku in sinhronizacijo datotek, kot so javni Dropbox , Owncloud , Pydio , OneDrive itd. na vaši organizaciji, ki je zasnovan za boljše timsko delo in popoln nadzor nad vašo shrambo z napredno varnostjo v uporabniškem prostoru.

V naslednjem članku bom opisal, kako namestiti odjemalca Seafile v sisteme Linux in Windows, in vam pokazal, kako vzpostaviti povezavo s strežnikom Seafile. Do takrat spremljajte Tecmint in ne pozabite dati svojih dragocenih komentarjev.