Εγκατάσταση Seafile (Secure Cloud Storage) με βάση δεδομένων MySQL σε RHEL/CentOS/SL 7.x/6.x


Το Seafile είναι μια προηγμένη συλλογική εφαρμογή αποθήκευσης cloud ανοιχτού κώδικα γραμμένη σε Python με υποστήριξη κοινής χρήσης και συγχρονισμού αρχείων, ομαδική συνεργασία και προστασία απορρήτου χρησιμοποιώντας κρυπτογράφηση από την πλευρά του πελάτη. Είναι κατασκευασμένο ως αρχείο πολλαπλών πλατφορμών που συγχρονίζεται με πελάτες που εκτελείται σε όλες τις μεγάλες πλατφόρμες (Linux, Raspberry Pi, Windows, Mac, iPhone και Android) και μπορεί εύκολα να ενσωματωθεί με τοπικές υπηρεσίες όπως LDAP και WebDAV ή μπορεί να αναπτυχθεί χρησιμοποιώντας προηγμένες υπηρεσίες δικτύου και βάσεις δεδομένων όπως MySQL, SQLite, PostgreSQL, Memcached, Nginx ή Apache Web Server.

Αυτό το σεμινάριο θα σας καθοδηγήσει σε μια βήμα προς βήμα εγκατάσταση Seafile Server σε RHEL/CentOS/Scientific Linux 7.x/6.x που αναπτύσσεται με βάση δεδομένων MySQL, με την εκκίνηση init Τα σενάρια για την εκτέλεση του διακομιστή στην προεπιλεγμένη θύρα Seafile (8000/TCP) και την προεπιλεγμένη θύρα συναλλαγών HTTP (80/TCP), δημιουργούν τους απαραίτητους κανόνες τείχους προστασίας για το άνοιγμα των απαιτούμενων θυρών.

Απαιτήσεις

  1. Ελάχιστη εγκατάσταση CentOS 6.5 με στατική διεύθυνση IP.
  2. Βάση δεδομένων MySQL/MariaDB
  3. Python 2.6.5+ ή 2.7
  4. Python-setuptools
  5. Python-simplejson
  6. Python-απεικόνιση
  7. Python-mysqldb

Αυτή η διαδικασία εγκατάστασης δοκιμάστηκε σε σύστημα CentOS 6.4 64-bit, αλλά μπορεί επίσης να χρησιμοποιηθεί σε άλλες διανομές Linux με την προδιαγραφή ότι τα σενάρια εκκίνησης init διαφέρουν από τη μία διανομή στην άλλη .

Βήμα 1: Εγκατάσταση λειτουργικών μονάδων Python

1. Πρώτα κάντε μια Ενημέρωση συστήματος και, στη συνέχεια, εγκαταστήστε όλες τις απαιτούμενες λειτουργικές μονάδες Python χρησιμοποιώντας τις ακόλουθες εντολές.

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

2. Εάν χρησιμοποιείτε διακομιστή Debian ή Ubuntu, εγκαταστήστε όλες τις λειτουργικές μονάδες Python με τις επόμενες εντολές.

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

Βήμα 2: Εγκαταστήστε το διακομιστή Seafile

3. Αφού εγκατασταθούν όλες οι λειτουργικές μονάδες Python, δημιουργήστε έναν νέο χρήστη συστήματος με ισχυρό κωδικό πρόσβασης που θα χρησιμοποιηθεί για να φιλοξενήσει τη διαμόρφωση του διακομιστή Seafile και όλα τα δεδομένα στον αρχικό κατάλογο και, στη συνέχεια, μεταβείτε στον νέο λογαριασμό χρήστη που δημιουργήθηκε.

adduser seafile
passwd seafile
su - seafile

4. Στη συνέχεια, συνδεθείτε στη βάση δεδομένων MySQL και δημιουργήστε τρεις βάσεις δεδομένων, μία για κάθε στοιχείο του διακομιστή Seafile: διακομιστής ccnet, διακομιστής seafile και seahub με έναν μόνο χρήστη για όλες τις βάσεις δεδομένων.

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. Τώρα είναι ώρα για λήψη και εγκατάσταση του Seafile Server. Μεταβείτε στην επίσημη σελίδα λήψης του Seafile και πάρτε την τελευταία έκδοση αρχείου .Tar Linux για την αρχιτεκτονική του διακομιστή σας χρησιμοποιώντας την εντολή wget και, στη συνέχεια, εξαγάξτε την στον αρχικό χρήστη Seafile που δημιούργησε νωρίτερα και εισαγάγετε το Seafile εξαγωγή καταλόγου.

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. Για να εγκαταστήσετε το Seafile Server χρησιμοποιώντας τη βάση δεδομένων MySQL, εκτελέστε το σενάριο προετοιμασίας setup-seafile-mysql.sh και απαντήστε σε όλες τις ερωτήσεις χρησιμοποιώντας τις ακόλουθες επιλογές διαμόρφωσης, αφού το σενάριο επαληθεύσει την ύπαρξη όλες οι απαιτούμενες ενότητες της Python.

./setup-seafile-mysql.sh
  1. Ποιο είναι το όνομα του διακομιστή σας;=επιλέξτε ένα περιγραφικό όνομα (δεν επιτρέπονται κενά).
  2. Τι είναι η IP ή ο τομέας του διακομιστή;=εισαγάγετε τη διεύθυνση IP του διακομιστή σας ή το έγκυρο όνομα τομέα σας.
  3. Ποια θύρα θέλετε να χρησιμοποιήσετε για διακομιστή ccnet;=πατήστε [Enter] – αφήστε το ως προεπιλογή – 10001.
  4. Πού θέλετε να τοποθετήσετε τα δεδομένα θαλάσσιων αρχείων;=πατήστε [Enter] – η προεπιλεγμένη τοποθεσία θα είναι ο κατάλογός σας $HOME/seafile-data.
  5. Ποια θύρα θέλετε να χρησιμοποιήσετε για διακομιστή seafil;=πατήστε [Enter] – αφήστε το ως προεπιλογή – 12001.

  1. Ποια θύρα θέλετε να χρησιμοποιήσετε για τον httpsserver της θάλασσας;=πατήστε [Enter] – αφήστε το ως προεπιλογή – 8082.
  2. Επιλέξτε έναν τρόπο για να αρχικοποιήσετε τις βάσεις δεδομένων seafile:=επιλέξτε 1 και παρέχετε προεπιλεγμένα διαπιστευτήρια MySQL: localhost, 3306 και κωδικό πρόσβασης root.
  3. Εισαγάγετε το όνομα για τον χρήστη MySQL του seafile:=seafile (εάν δημιουργήσατε άλλο όνομα χρήστη, εισαγάγετε αυτό το όνομα χρήστη) και τον κωδικό πρόσβασης χρήστη του seafile MySQL.
  4. Στις βάσεις δεδομένων ccnet-server, seafile-server και seahub πατήστε το πλήκτρο [Enter] – προεπιλογή.

Μετά την επιτυχή εγκατάσταση του Seafile Server, θα δημιουργήσει ορισμένες χρήσιμες πληροφορίες, όπως ποιες θύρες πρέπει να είναι ανοιχτές στο τείχος προστασίας σας για να επιτρέπεται η εξωτερική σύνδεση και ποια σενάρια πρέπει να χειρίζονται για την εκκίνηση του διακομιστή.

Βήμα 3: Ανοίξτε το Firewall και δημιουργήστε Seafile init Script

7. Πριν ξεκινήσετε τον διακομιστή Seafile από την τοπική δέσμη ενεργειών για μια δοκιμή, επιστρέψτε στον λογαριασμό root και ανοίξτε τη διαμόρφωση αρχείου τείχους προστασίας iptables που βρίσκεται στο Διαδρομή συστήματος /etc/sysconfig/ και προσθέστε τους ακόλουθους κανόνες γραμμής πριν από την πρώτη γραμμή ΑΠΟΡΡΙΨΗ και, στη συνέχεια, επανεκκινήστε τα iptables για να εφαρμόσετε νέους κανόνες.

su - root
nano /etc/sysconfig/iptables

Προσθέστε τους ακόλουθους κανόνες.

-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

Επανεκκινήστε το iptables για να εφαρμόσετε κανόνες χρησιμοποιώντας την ακόλουθη εντολή.

service iptables restart

ΣΗΜΕΙΩΣΗ: Εάν αλλάξατε τυπικές θύρες Seafile κατά τη διαδικασία εγκατάστασης, ενημερώστε τους κανόνες iptables του Firewall ανάλογα.

8. Τώρα ήρθε η ώρα να δοκιμάσετε τον διακομιστή Seafile. Μεταβείτε στον κατάλογο χρήστη Seafile και seafile-server και ξεκινήστε τον διακομιστή χρησιμοποιώντας τα σενάρια seafile.sh και seahub.sh.

Την πρώτη φορά που ξεκινάτε το σενάριο seahub.sh, δημιουργήστε έναν λογαριασμό διαχείρισης για τον Seafile Server χρησιμοποιώντας τη διεύθυνση email σας και επιλέξτε έναν ισχυρό κωδικό πρόσβασης για τον λογαριασμό διαχειριστή, ειδικά εάν αναπτύσσετε αυτήν τη διαμόρφωση σε περιβάλλον παραγωγής.

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

9. Μετά την επιτυχή εκκίνηση του διακομιστή, ανοίξτε ένα πρόγραμμα περιήγησης και πλοηγηθείτε στη διεύθυνση IP του διακομιστή σας ή στο όνομα τομέα στη θύρα 8000 χρησιμοποιώντας το πρωτόκολλο HTTP και, στη συνέχεια, συνδεθείτε χρησιμοποιώντας τον λογαριασμό διαχειριστή που δημιουργήσατε στο παραπάνω βήμα.

http://system_IP:8000

OR 

http://domain_name:8000

10. Μετά τις πρώτες δοκιμές διαμόρφωσης, σταματήστε τον διακομιστή Seafile και δημιουργήστε ένα σενάριο init που θα σας βοηθήσει να διαχειριστείτε πιο εύκολα ολόκληρη τη διαδικασία, όπως και κάθε άλλη διαδικασία δαίμονα συστήματος Linux.

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

Προσθέστε το ακόλουθο περιεχόμενο σε αυτό το σενάριο init – Εάν το Seafile είναι εγκατεστημένο σε άλλο χρήστη του συστήματος, φροντίστε να ενημερώσετε τον χρήστη και τις διαδρομές ανάλογα στις γραμμές 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. Αφού δημιουργηθεί το αρχείο init, βεβαιωθείτε ότι έχει δικαιώματα εκτέλεσης και διαχειριστείτε τη διαδικασία χρησιμοποιώντας start, stop και επανεκκίνηση διακόπτες. Τώρα μπορείτε να προσθέσετε την υπηρεσία Seafile κατά την εκκίνηση του συστήματος χρησιμοποιώντας την εντολή chkconfig.

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

12. Από προεπιλογή ο διακομιστής Seafile χρησιμοποιεί 8000/TCP θύρα HTTP για συναλλαγές ιστού. Εάν θέλετε να αποκτήσετε πρόσβαση στον διακομιστή Seafile από το πρόγραμμα περιήγησης σε τυπική θύρα HTTP, χρησιμοποιήστε την ακόλουθη δέσμη ενεργειών init που εκκινεί τον διακομιστή στη θύρα 80 (να γνωρίζετε ότι η εκκίνηση μιας υπηρεσίας σε θύρες παρακάτω init Το b>1024 απαιτεί δικαιώματα root).

nano /etc/init.d/seafile

Προσθέστε το ακόλουθο περιεχόμενο σε αυτό το σενάριο init για να ξεκινήσετε το Seafile σε τυπική θύρα HTTP. Εάν το Seafile είναι εγκατεστημένο σε άλλο χρήστη του συστήματος, φροντίστε να ενημερώσετε τον χρήστη και τις διαδρομές ανάλογα στις γραμμές su – $USER -c και $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. Εάν ξεκινήσατε προηγουμένως το Seafile στη θύρα 8000, βεβαιωθείτε ότι όλες οι διεργασίες έχουν ολοκληρωθεί, ξεκινήστε τον διακομιστή στη θύρα 80.

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

Ανοίξτε ένα πρόγραμμα περιήγησης και κατευθύνετέ το στην παρακάτω διεύθυνση.

http://system_ip 

OR

http://domain_name.tld

14. Μπορείτε επίσης να επαληθεύσετε σε ποιες θύρες εκτελεί το Seafile χρησιμοποιώντας την εντολή netstat.

netstat -tlpn

Αυτό είναι! Το Seafile μπορεί ευχαρίστως να αντικαταστήσει άλλες πλατφόρμες συνεργασίας cloud και συγχρονισμού αρχείων, όπως δημόσια Dropbox, Owncloud, Pydio, OneDrive κ.λπ. στον οργανισμό σας, που έχει σχεδιαστεί για καλύτερη ομαδική εργασία και πλήρη έλεγχο του αποθηκευτικού χώρου σας με προηγμένη ασφάλεια στο χώρο χρήστη.

Στο επόμενο άρθρο μου, θα καλύψω τον τρόπο εγκατάστασης του προγράμματος-πελάτη Seafile σε συστήματα Linux και Windows και επίσης θα σας δείξω πώς να συνδεθείτε στον διακομιστή Seafile. Μέχρι τότε, μείνετε συντονισμένοι στο Tecmint και μην ξεχάσετε να δώσετε τα πολύτιμα σχόλιά σας.