Instal·lació de Seafile (emmagatzematge al núvol segur) amb la base de dades MySQL a RHEL/CentOS/SL 7.x/6.x


Seafile és una aplicació avançada d'emmagatzematge en núvol col·laboratiu de codi obert escrit en Python amb suport per compartir i sincronitzar fitxers, col·laboració en equip i protecció de privadesa mitjançant xifratge del client. Es construeix com un fitxer multiplataforma sincronitzat amb clients que s'executa a totes les plataformes principals (Linux, Raspberry Pi, Windows, Mac, iPhone i Android) i es pot integrar fàcilment amb serveis locals com LDAP i WebDAV o es pot implementar mitjançant avançats. serveis de xarxa i bases de dades com MySQL, SQLite, PostgreSQL, Memcached, Nginx o Apache Web Server.

Aquest tutorial us guiarà en la instal·lació pas a pas del Seafile Server a RHEL/CentOS/Scientific Linux 7.x/6.x desplegat amb la base de dades MySQL, amb l'inici init scripts per executar el servidor al port Seafile predeterminat (8000/TCP) i al port de transacció HTTP predeterminat (80/TCP), creen les regles de tallafoc necessàries per obrir els ports necessaris.

  1. Instal·lació mínima de CentOS 6.5 amb adreça IP estàtica.
  2. Base de dades MySQL/MariaDB
  3. Python 2.6.5+ o 2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Imatge de Python
  7. Python-mysqldb

Aquest procediment d'instal·lació s'ha provat al sistema CentOS 6.4 de 64 bits, però també es pot utilitzar en altres distribucions de Linux amb l'especificació que els scripts d'inici init difereixen d'una distribució a una altra. .

Pas 1: instal·leu els mòduls de Python

1. Primer feu una Actualització del sistema i, a continuació, instal·leu tots els mòduls de Python necessaris mitjançant les ordres següents.

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

2. Si utilitzeu un servidor Debian o Ubuntu instal·leu tots els mòduls de Python amb les ordres següents.

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

Pas 2: instal·leu Seafile Server

3. Després d'instal·lar tots els mòduls de Python, creeu un nou usuari del sistema amb una contrasenya segura que s'utilitzarà per allotjar la configuració del servidor Seafile i totes les dades del seu directori d'inici i, a continuació, canvieu al nou compte d'usuari creat.

# adduser seafile
# passwd seafile
# su - seafile

4. A continuació, inicieu la sessió a la base de dades MySQL i creeu tres bases de dades, una per a cada components del servidor Seafile: servidor ccnet, servidor seafile i seahub amb un únic usuari per a totes les bases de dades.

$ 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. Ara és el moment de baixar i instal·lar Seafile Server. Aneu a la pàgina oficial de descàrrega de Seafile i agafeu l'última versió de l'arxiu de Linux .Tar per a l'arquitectura del vostre servidor mitjançant l'ordre wget, després extreu-la al vostre usuari de Seafile domèstic creat anteriorment i introduïu Seafile directori extret.

$ 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. Per instal·lar el Seafile Server mitjançant la base de dades MySQL, executeu l'script d'inicialització setup-seafile-mysql.sh i responeu totes les preguntes mitjançant les opcions de configuració següents, després que l'script verifiqui l'existència de tots els mòduls necessaris de Python.

$ ./setup-seafile-mysql.sh

  1. Quin és el nom del vostre servidor? = trieu un nom descriptiu (no es permeten espais).
  2. Quina és la IP o el domini del servidor? = introduïu l'adreça IP del vostre servidor o el vostre nom de domini vàlid.
  3. Quin port voleu utilitzar per al servidor ccnet? = premeu [Retorn] – deixeu-ho per defecte – 10001.
  4. On voleu posar les dades dels fitxers marítims? = premeu [Enter]: la ubicació predeterminada serà el vostre directori $HOME/seafile-data.
  5. Quin port voleu utilitzar per al servidor de fitxers marítims? = premeu [Retorn] – deixeu-lo per defecte – 12001.

  1. Quin port voleu utilitzar per a l'httpserver de fitxers marítims? = premeu [Retorn] – deixeu-ho per defecte – 8082.
  2. Escolliu una manera d'inicialitzar les bases de dades de fitxers marítims: = trieu 1 i proporcioneu les credencials MySQL predeterminades: localhost, 3306 i contrasenya root.
  3. Introduïu el nom de l'usuari de MySQL de seafile: = seafile (si heu creat un altre nom d'usuari, introduïu aquest nom d'usuari) i la contrasenya d'usuari de seafile MySQL.
  4. A les bases de dades ccnet-server, seafile-server i seahub només cal que premeu la tecla [Enter], per defecte.

Després que Seafile Server s'instal·li correctament, generarà informació útil, com ara quins ports s'han d'obrir al vostre tallafoc per permetre la connexió externa i quins scripts s'han de gestionar per iniciar el servidor.

Pas 3: obriu el tallafoc i creeu un script d'inici de Seafile

7. Abans d'iniciar el servidor Seafile des de l'script local per a una prova, torneu al compte root i obriu la configuració del fitxer del tallafocs iptables que es troba a /etc/sysconfig/ ruta del sistema i afegiu les regles de línia següents abans de la primera línia REBUT, després reinicieu iptables per aplicar regles noves.

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

Afegiu les regles següents.

-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

Reinicieu iptables per aplicar regles mitjançant l'ordre següent.

# service iptables restart

NOTA: Si heu canviat els ports estàndard de Seafile durant el procés d'instal·lació, actualitzeu les regles d'iptables del tallafoc en conseqüència.

8. Ara és el moment de provar Seafile Server. Canvieu al directori d'usuaris de Seafile i seafile-server i inicieu el servidor mitjançant scripts seafile.sh i seahub.sh.

La primera vegada que inicieu l'script seahub.sh, creeu un compte d'administrador per al Seafile Server amb la vostra adreça de correu electrònic i trieu una contrasenya segura per al compte d'administrador, especialment si esteu implementant aquesta configuració en un entorn de producció.

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

9. Un cop el servidor s'hagi iniciat correctament, obriu un navegador i navegueu fins a l'adreça IP o el nom de domini del vostre servidor al port 8000 mitjançant el protocol HTTP i, a continuació, inicieu la sessió amb el vostre compte d'administrador creat al pas anterior.

http://system_IP:8000

OR 

http://domain_name:8000

10. Després de les primeres proves de configuració, atureu el servidor Seafile i creeu un script init que us ajudarà a gestionar més fàcilment tot el procés, igual que qualsevol altre procés de dimoni del sistema Linux.

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

Afegiu el contingut següent a aquest script init: si Seafile està instal·lat en un altre usuari del sistema, assegureu-vos d'actualitzar l'usuari i els camins en conseqüència a les línies 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. Després de crear el fitxer init, assegureu-vos que tingui permisos d'execució i gestioneu el procés mitjançant inici, stop i reiniciar interruptors. Ara podeu afegir el servei Seafile a l'inici del sistema mitjançant l'ordre chkconfig.

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

12. Per defecte, el servidor Seafile utilitza el port HTTP 8000/TCP per a les transaccions web. Si voleu accedir al servidor de Seafile des del navegador al port HTTP estàndard, utilitzeu l'script init següent, que inicia el servidor al port 80 (tingueu en compte que inicieu un servei als ports inferiors a b>1024 requereix privilegis de root).

# nano /etc/init.d/seafile

Afegiu el contingut següent en aquest script init per iniciar Seafile al port HTTP estàndard. Si Seafile està instal·lat en un altre usuari del sistema, assegureu-vos d'actualitzar l'usuari i els camins en conseqüència a les línies su – $USER -c i $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. Si prèviament heu iniciat el Seafile al port 8000, assegureu-vos que tots els processos s'han acabat, inicieu el servidor al port 80.

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

Obriu un navegador i dirigiu-lo a l'adreça següent.

http://system_ip 

OR

http://domain_name.tld

14. També podeu verificar en quins ports s'està executant Seafile utilitzant l'ordre netstat.

# netstat -tlpn

Això és! Seafile pot substituir amb alegria altres plataformes col·laboratives i de sincronització de fitxers al núvol com ara Dropbox, Owncloud, Pydio, OneDrive, etc. a la vostra organització, dissenyat per a un millor treball en equip i un control total sobre el vostre emmagatzematge amb seguretat avançada a l'espai d'usuari.

En el meu proper article, explicaré com instal·lar el client Seafile als sistemes Linux i Windows i també us mostraré com connectar-vos al servidor Seafile. Fins aleshores estigueu atents a Tecmint i no us oblideu de fer els vostres valuosos comentaris.