GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser ISPConfig et Seafile sans modifications manuelles des fichiers

Tutoriel Seafile ISPConfig Seafile est un système de stockage de fichiers open source basé sur le cloud similaire à Dropbox &Box. La différence est que Seafile peut être déployé sur le propre système d'un client. Cela offre un plus grand facteur de sécurité car les mots de passe ne sont échangés qu'entre le client qui configure le système et ses propres utilisateurs plutôt qu'une société d'hébergement cloud d'entreprise.

Il existe quelques didacticiels de configuration du serveur Seafile pour ISPConfig, mais aucun qui n'a pas nécessité une bonne majorité d'édition des fichiers qui devraient vraiment être laissés seuls selon les recommandations du développeur ISPConfig. Bien que cette configuration soit écrite pour Ubuntu 14.04 LTS et ISPConfig 3, elle peut être suivie pour d'autres distributions. Cette solution fonctionne pour moi, mais aucune garantie n'est exprimée ou implicite.

Il est supposé que le lecteur souhaite déployer Seafile en utilisant MySQL et Apache (également https). Il est également supposé que vous pouvez utiliser ISPConfig de manière fonctionnelle, car il ne s'agit pas d'un didacticiel ISPConfig.

1 site Web de configuration

Ouvrez votre panneau de configuration d'hébergement ISPConfig, cliquez sur l'onglet Sites et créez un nouveau site Web. Bien que vous puissiez techniquement utiliser un site Web existant, la création d'un nouveau fonctionne mieux car cela nous permet de conserver tous les fichiers cloud séparés des autres sites. Cela est également nécessaire pour utiliser le panneau ISPConfig pour les modifications de configuration.

Dans le panneau de configuration du site Web, cliquez sur l'onglet Options et insérez ce qui suit dans la section Directives Apache :
Alias /media /var/www/seafile.myseafile.com/private/seafile/seafile-server-latest/seahub/media

RewriteEngine On

<Location /media>
Require all granted
</Location>

# seafile httpserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub
#
RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Vous devez également créer un utilisateur shell pour ce site car cela sera bientôt nécessaire.


2 Créer des bases de données

Dans le panneau Sites d'ISPConfig, sélectionnez Utilisateur de la base de données et Ajouter un nouvel utilisateur.Créez un seul utilisateur par client qui gérera les bases de données seafile de ce client.



 Une fois l'utilisateur de la base de données créé, cliquez sur Bases de données et Ajouter une nouvelle base de données. Vous devrez ajouter trois bases de données distinctes : ccnetdb, seafiledb, seahubdb




3 Téléchargez et installez le logiciel Seafile

Il y a des packages requis que nous devons installer. Connectez-vous en SSH à votre site Web et exécutez les commandes suivantes :

apt-get install python2.7 python-setuptoolspython-simplejson python-imaging python-mysqldb python-flup

Je préfère que tous mes serveurs s'exécutent dans le répertoire privé plutôt que dans le répertoire Web, nous allons donc configurer en tant que tel.

cd privé
mkdir seafile
cd seafile

wgethttps://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_x86-64.tar.gz
    ou pour 32 bits
wgethttps://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_i386.tar.gz

tar zxvf seafile-server_3.1.6_x86- 64.tar.gz
mkdir installé
mv seafile-server_* installé

cd seafile-server-*
./setup_seafile_mysql.sh

À ce stade, vous devrez répondre aux questions posées car elles se rapportent à votre système et à votre installation. Lorsque vous accédez à la section intitulée Veuillez choisir un moyen d'initialiser les bases de données seafile, vous devez sélectionner 2et saisir les informations de base de données à partir de votre configuration ISPConfig.

4 Exécution initiale

Il est temps de démarrer seafile et de vous assurer que la configuration initiale fonctionne.

./seafile.sh start
./seahub.sh start

Après avoir démarré les services, ouvrez votre navigateur Web et accédez à l'adresse du site Web que vous avez créée ci-dessus avec le port 8000.

http://192.168.1.111:8000/

5 Configuration d'Apache

La majeure partie de notre configuration pour Apache est en fait effectuée dans la configuration du site Web ci-dessus. Cependant, nous devons ajouter une ligne à apache.conf pour que tout fonctionne correctement. Malheureusement, je n'ai pas trouvé de moyen d'ajouter ceci sans modifier ce fichier unique.

sudo echo "## Seafile External Server">>/etc/apache2/apache.conf
sudo echo "FastCGIExternalServer/var/www/seafile.myDomainHere.com/web/seahub.fcgi -host127.0.0.1 :8000">> /etc/apache2/apache.conf

Modifiez maintenant SERVICE_URL dans /path/to/seafile-server/ccnet/ccnet.conf
SERVICE_URL = http://www.myseafile.com
Nous devrons également modifier le FILE_SERVER_ROOT dans /path/to/seafile-server/seahub_settings.py

FILE_SERVER_ROOT ='http://www.myseafile.com/seafhttp'

Redémarrez Apache.
sudo service apache2 restart
Redémarrez les services Seafile.

./seafile.sh start
./seahub.sh start-fastcgi

6 Activer HTTPS

La seule chose à faire est de générer une clé SSL à partir de l'onglet Sites d'ISPConfig. En raison de la façon dont ISPConfig est installé et fonctionne, tout le reste devrait déjà être configuré. Cependant, vous devrez peut-être vous assurer qu'Apache est redémarré.

7 Démarrer les services automatiquement 

Étant donné que l'objectif ici est de tout conserver avec ISPConfig, plutôt que de créer un service de démarrage, nous allons ajouter le seafilescript aux tâches cron des utilisateurs. Naturellement, vous devrez vous assurer que le client a la possibilité d'ajouter des tâches cron complètes. Assurez-vous d'ajouter deux tâches cron différentes ; un pour seafile et un pour seahub.Insérez ce qui suit dans la section Command to Run :

/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seahub. shstart-fastcgi
et
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seafile_start


MISE À JOUR (23 novembre 2014) :Étant donné que les serveurs seafile et seahub mettent un certain temps à démarrer, il y a eu des occasions où le deuxième script s'exécutait avant la fin du script précédent. Ainsi, le serveur ne démarre pas. J'ai mis à jour le script de démarrage originalseafile pour qu'il fonctionne correctement avec ISPConfig. J'en ai probablement trop fait sur les commandes d'attente, mais le script fonctionne bien en les utilisant. Assurez-vous d'être connecté en tant qu'utilisateur de fichier avant d'exécuter les commandes suivantes.

Créez un fichier de démarrage :

cd ~/private/seafile
appuyez sur startSeafile.sh
chmod +x startSeafile.sh

Collez le code suivant dans le script startSeafile.sh :

#!/bin/bash

# Remplacez la valeur de "seafile_dir" par votre chemin d'installation de seafile
seafile_dir=/var/www/clients/client1/web42/private/seafile
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

# Changez la valeur de fastcgi en true si fastcgi doit être utilisé
fastcgi=true
# Définissez le port de fastcgi, la valeur par défaut est 8000. Changez-le si vous avez besoin d'être différent.
fastcgi_port=8000

## La commande sleep est nécessaire pour éviter les erreurs MYSQL si
## ce script s'exécute avant que MYSQL ne soit pleinement opérationnel
sleep 60 &
attendre %1

case "$1" dans
        start)
               ${script_path}/seafile.sh start>> ${seafile_init_log} &
               attendre %1
              if [  $fastcgi =true ] ;
              alors
                      ${script_path}/seahub.sh start-fastcgi ${fastcgi_port}>>${seahub_init_ log} &
attendre% 1
else
$ {script_path} /seahub.sh start>> $ {seahub_init_log} &
attendre% 1
fi
       ;;
        redémarrer)
               ${script_path}/seafile.sh redémarrer>> ${seafile_init_log} &
               attendre %1
               si [  $fastcgi =true ] ;
Puis
$ {script_path} /seahub.sh restart-fastcgi $ {fastcgi_port}>> $ {Seahub_init_log} &
attendez% 1
else
$ {script_path} / seahub.sh redémarrer>> ${seahub_init_log} &
                      attendre $1
               fi
       ;;
         arrêter)
               ${script_path}/seafile.sh $1>> {seafile_init_log}
               ${script_path}/seahub.sh $1>> ${seahub_init_log}
       ;;
        *)
               echo "Utilisation :/etc/init.d/seafile{démarrer|arrêter|redémarrer}"
               sortie 1
       ;;
esac


Maintenant, vous n'aurez plus qu'à ajouter l'unique tâche startServer.shcron dans la section Commandes à exécuter d'ISPConfig :

/var/www/clients/client1/web42/private/seafile/startSeafile. shstart




C'est tout !


Linux
  1. Comment utiliser Awk et des expressions régulières pour filtrer du texte ou une chaîne dans des fichiers

  2. Comment masquer des fichiers et des dossiers dans le gestionnaire de fichiers sans les renommer

  3. Comment installer et utiliser Pycharm sans avoir à utiliser un terminal ?

  4. Qu'est-ce qu'un fichier u-Boot dtb et comment l'utiliser (BeagleBoard xM) ?

  5. Comment supprimer un fichier sans utiliser rm ?

Qu'est-ce qu'EFS (Elastic File System) dans AWS et comment l'utiliser

Fichier hôte Linux :comment le modifier et l'utiliser ?

Comment installer et utiliser BleachBit 1.12 sur Ubuntu 16.04

Comment créer et utiliser un fichier d'échange sous Linux

Comment utiliser gzip sous Linux ?

Comment utiliser Sed pour rechercher et remplacer une chaîne dans un fichier