Recherche de site Web

Installation de Seafile (Secure Cloud Storage) avec la base de données MySQL dans RHEL/CentOS/SL 7.x/6.x


Seafile est une application avancée de stockage cloud collaboratif Open Source écrite en Python avec prise en charge du partage et de la synchronisation de fichiers, collaboration en équipe et protection de la confidentialité grâce au cryptage côté client. Il est construit comme une synchronisation de fichiers multiplateforme avec des clients qui s'exécute sur toutes les principales plates-formes (Linux, Raspberry Pi, Windows, Mac, iPhone et Android) et peut être facilement intégré à des services locaux tels que LDAP et WebDAV ou peut être déployé à l'aide d'outils avancés. des services réseau et des bases de données comme MySQL, SQLite, PostgreSQL, Memcached, Nginx ou Apache Web Server.

Ce tutoriel vous guidera pas à pas dans l'installation du Seafile Server sur RHEL/CentOS/Scientific Linux 7.x/6.x déployé avec la base de données MySQL, avec démarrage init Les scripts pour exécuter le serveur sur le port Seafile par défaut (8000/TCP) et le port de transaction HTTP par défaut (80/TCP), créent les règles de pare-feu nécessaires pour ouvrir les ports requis.

Exigences

  1. Installation minimale de CentOS 6.5 avec adresse IP statique.
  2. Base de données MySQL/MariaDB
  3. Python 2.6.5+ ou 2.7
  4. Outils de configuration Python
  5. Python-simplejson
  6. Imagerie Python
  7. Python-mysqldb

Cette procédure d'installation a été testée sur le système CentOS 6.4 64 bits, mais peut également être utilisée sur d'autres distributions Linux avec la spécification que les scripts de démarrage init diffèrent d'une distribution à l'autre. .

Étape 1 : Installer les modules Python

1. Effectuez d'abord une mise à jour du système, puis installez tous les modules Python requis à l'aide des commandes suivantes.

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

2. Si vous utilisez un serveur Debian ou Ubuntu, installez tous les modules Python avec les commandes suivantes.

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

Étape 2 : Installer le serveur Seafile

3. Une fois tous les modules Python installés, créez un nouvel utilisateur système avec un mot de passe fort qui sera utilisé pour héberger la configuration du serveur Seafile et toutes les données de son répertoire personnel, puis passez au compte d'utilisateur nouvellement créé.

adduser seafile
passwd seafile
su - seafile

4. Connectez-vous ensuite à la base de données MySQL et créez trois bases de données, une pour chaque composant du serveur Seafile : serveur ccnet, serveur seafile et seahub avec un seul utilisateur pour toutes les bases de données.

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. Il est maintenant temps de télécharger et d'installer Seafile Server. Accédez à la page de téléchargement officielle de Seafile et récupérez la dernière version de l'archive Linux .Tar pour votre architecture de serveur à l'aide de la commande wget, puis extrayez-la dans votre utilisateur Seafile personnel créé précédemment et entrez Seafile. répertoire extrait.

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. Pour installer Seafile Server à l'aide de la base de données MySQL, exécutez le script d'initialisation setup-seafile-mysql.sh et répondez à toutes les questions en utilisant les options de configuration suivantes, après que le script ait vérifié l'existence de tous les modules requis par Python.

./setup-seafile-mysql.sh
  1. Quel est le nom de votre serveur ?=choisissez un nom descriptif (aucun espace autorisé).
  2. Quelle est l'IP ou le domaine du serveur ?=entrez l'adresse IP de votre serveur ou votre nom de domaine valide.
  3. Quel port souhaitez-vous utiliser pour le serveur ccnet ?=appuyez sur [Entrée] – laissez la valeur par défaut – 10001.
  4. Où souhaitez-vous placer les données du fichier marin ?=appuyez sur [Entrée] – l'emplacement par défaut sera votre répertoire $HOME/seafile-data.
  5. Quel port souhaitez-vous utiliser pour le serveur Seafile ?=appuyez sur [Entrée] – laissez la valeur par défaut – 12001.

  1. Quel port souhaitez-vous utiliser pour le serveur http seafile ?=appuyez sur [Entrée] – laissez la valeur par défaut – 8082.
  2. Veuillez choisir une manière d'initialiser les bases de données Seafile :=choisissez 1 et fournissez les informations d'identification MySQL par défaut : localhost, 3306 et mot de passe root.
  3. Entrez le nom de l'utilisateur MySQL de seafile :=seafile (si vous avez créé un autre nom d'utilisateur, entrez ce nom d'utilisateur) et le mot de passe de l'utilisateur MySQL seafile.
  4. Sur les bases de données ccnet-server, seafile-server et seahub, appuyez simplement sur la touche [Entrée] – par défaut.

Une fois l'installation réussie de Seafile Server, il générera des informations utiles telles que les ports qui doivent être ouverts sur votre pare-feu pour autoriser une connexion externe et les scripts à gérer pour démarrer le serveur.

Étape 3 : Ouvrez le pare-feu et créez un script d'initialisation Seafile

7. Avant de démarrer le serveur Seafile à partir d'un script local pour un test, revenez au compte root et ouvrez la configuration du fichier de pare-feu iptables situé sur /etc/sysconfig/ chemin système et ajoutez les règles de ligne suivantes avant la première ligne REJECT, puis redémarrez iptables pour appliquer les nouvelles règles.

su - root
nano /etc/sysconfig/iptables

Joindre les règles suivantes.

-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

Redémarrez iptables pour appliquer les règles à l'aide de la commande suivante.

service iptables restart

REMARQUE : Si vous avez modifié les ports standard de Seafile lors du processus d'installation, mettez à jour les règles iptables de votre pare-feu en conséquence.

8. Il est maintenant temps de tester Seafile Server. Basculez vers l'utilisateur Seafile et le répertoire seafile-server et démarrez le serveur à l'aide des scripts seafile.sh et seahub.sh.

La première fois que vous démarrez le script seahub.sh, créez un compte administratif pour Seafile Server en utilisant votre adresse e-mail et choisissez un mot de passe fort pour le compte administrateur, surtout si vous déployez cette configuration dans un environnement de production.

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

9. Une fois le serveur démarré avec succès, ouvrez un navigateur et accédez à l'adresse IP ou au nom de domaine de votre serveur sur le port 8000 à l'aide du protocole HTTP, puis connectez-vous à l'aide du compte administrateur créé. à l'étape ci-dessus.

http://system_IP:8000

OR 

http://domain_name:8000

10. Après les premiers tests de configuration, arrêtez le serveur Seafile et créez un script init qui vous aidera à gérer plus facilement l'ensemble du processus, comme n'importe quel autre processus démon du système Linux.

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

Ajoutez le contenu suivant sur ce script init – Si Seafile est installé sur un autre utilisateur du système, assurez-vous de mettre à jour l'utilisateur et les chemins en conséquence sur les lignes 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. Une fois le fichier init créé, assurez-vous qu'il dispose des autorisations d'exécution et gérez le processus en utilisant start, stop et redémarrer. Vous pouvez maintenant ajouter le service Seafile au démarrage du système à l'aide de la commande chkconfig.

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

12. Par défaut, le serveur Seafile utilise le port HTTP 8000/TCP pour les transactions Web. Si vous souhaitez accéder au serveur Seafile depuis un navigateur sur le port HTTP standard, utilisez le script init suivant qui démarre le serveur sur le port 80 (sachez que démarrer un service sur les ports ci-dessous < b>1024 nécessite les privilèges root).

nano /etc/init.d/seafile

Ajoutez le contenu suivant sur ce script init pour démarrer Seafile sur le port HTTP standard. Si Seafile est installé sur un autre utilisateur du système, assurez-vous de mettre à jour l'utilisateur et les chemins en conséquence sur les lignes su – $USER -c et $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 vous avez déjà démarré Seafile sur le port 8000, assurez-vous que tous les processus sont arrêtés, démarrez le serveur sur le port 80.

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

Ouvrez un navigateur et dirigez-le vers l'adresse suivante.

http://system_ip 

OR

http://domain_name.tld

14. Vous pouvez également vérifier sur quels ports Seafile s'exécute à l'aide de la commande netstat.

netstat -tlpn

C'est ça! Seafile peut heureusement remplacer d'autres plates-formes de collaboration et de synchronisation de fichiers dans le cloud telles que Dropbox publique, Owncloud, Pydio, OneDrive, etc. sur votre organisation, conçu pour un meilleur travail d'équipe et un contrôle total sur votre stockage avec une sécurité avancée dans l'espace utilisateur.

Dans mon prochain article, j'expliquerai comment installer le client Seafile sur les systèmes Linux et Windows et je vous montrerai également comment vous connecter au serveur Seafile. D'ici là, restez à l'écoute de Tecmint et n'oubliez pas de donner vos précieux commentaires.