Wyszukiwanie w witrynie

Instalowanie Seafile (Secure Cloud Storage) z bazą danych MySQL w RHEL/CentOS/SL 7.x/6.x


Seafile to zaawansowana aplikacja do wspólnego przechowywania w chmurze typu open source, napisana w języku Python, obsługująca udostępnianie i synchronizację plików, współpracę zespołową i ochronę prywatności przy użyciu szyfrowania po stronie klienta. Jest zbudowany jako wieloplatformowy plik synchronizujący się z klientami, działający na wszystkich głównych platformach (Linux, Raspberry Pi, Windows, Mac, iPhone i Android) i można go łatwo zintegrować z usługami lokalnymi, takimi jak LDAP i WebDAV lub można go wdrożyć przy użyciu zaawansowanych usługi sieciowe i bazy danych, takie jak MySQL, SQLite, PostgreSQL, Memcached, Nginx lub Apache Web Server.

Ten samouczek poprowadzi Cię krok po kroku przez instalację Seafile Server na RHEL/CentOS/Scientific Linux 7.x/6.x wdrożonym z bazą danych MySQL, z uruchomieniem init skrypty uruchamiające serwer na domyślnym porcie Seafile (8000/TCP) i domyślnym porcie transakcyjnym HTTP (80/TCP), utwórz niezbędne reguły Firewalla, aby otworzyć wymagane porty.

Wymagania

  1. Minimalna instalacja CentOS 6.5 ze statycznym adresem IP.
  2. Baza danych MySQL/MariaDB
  3. Python 2.6.5+ lub 2.7
  4. Narzędzia konfiguracyjne Pythona
  5. Python-prosty
  6. Obrazowanie w Pythonie
  7. Python-mysqldb

Ta procedura instalacji została przetestowana na systemie CentOS 6.4 64-bit, ale można jej również użyć w innych dystrybucjach Linuksa, pod warunkiem, że skrypty startowe init różnią się w zależności od dystrybucji .

Krok 1: Zainstaluj moduły Pythona

1. Najpierw wykonaj aktualizację systemu, a następnie zainstaluj wszystkie wymagane moduły Pythona, używając poniższych poleceń.

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

2. Jeśli używasz serwera Debian lub Ubuntu, zainstaluj wszystkie moduły Pythona za pomocą kolejnych poleceń.

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

Krok 2: Zainstaluj serwer Seafile

3. Po zainstalowaniu wszystkich modułów Pythona utwórz nowego użytkownika systemu z silnym hasłem, które będzie używane do hostowania konfiguracji serwera Seafile i wszystkich danych w jego katalogu domowym, a następnie przełącz się na nowo utworzone konto użytkownika.

adduser seafile
passwd seafile
su - seafile

4. Następnie zaloguj się do bazy danych MySQL i utwórz trzy bazy danych, po jednej dla każdego komponentu Seafile Server: serwer ccnet, serwer seafile i seahub z jednym użytkownikiem dla wszystkich baz danych.

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. Teraz czas pobrać i zainstalować Seafile Server. Przejdź do oficjalnej strony pobierania Seafile i pobierz ostatnią wersję archiwum .Tar Linux dla swojej architektury serwera za pomocą polecenia wget, a następnie rozpakuj ją do utworzonego wcześniej domowego użytkownika Seafile i wejdź do Seafile wyodrębniony katalog.

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. Aby zainstalować Seafile Server przy użyciu bazy danych MySQL, uruchom skrypt inicjujący setup-seafile-mysql.sh i odpowiedz na wszystkie pytania, korzystając z poniższych opcji konfiguracyjnych, po tym jak skrypt zweryfikuje istnienie wszystkie wymagane moduły Pythona.

./setup-seafile-mysql.sh
  1. Jak nazywa się twój serwer?=wybierz nazwę opisową (bez spacji).
  2. Jaki jest adres IP lub domena serwera?=wprowadź adres IP swojego serwera lub prawidłową nazwę domeny.
  3. Którego portu chcesz używać dla serwera ccnet?=naciśnij [Enter] – pozostaw wartość domyślną – 10001.
  4. Gdzie chcesz umieścić dane Seafile?=naciśnij [Enter] – domyślną lokalizacją będzie Twój katalog $HOME/seafile-data.
  5. Którego portu chcesz używać dla serwera Seafile?=naciśnij [Enter] – pozostaw wartość domyślną – 12001.

  1. Którego portu chcesz używać dla serwera https Seafile?=naciśnij [Enter] – pozostaw wartość domyślną – 8082.
  2. Proszę wybrać sposób inicjowania baz danych seafile:=wybierz 1 i podaj domyślne dane uwierzytelniające MySQL: localhost, 3306 i hasło roota.
  3. Wprowadź nazwę użytkownika MySQL dla seafile:=seafile (jeśli utworzyłeś inną nazwę użytkownika, wprowadź tę nazwę użytkownika) i hasło użytkownika Seafile MySQL.
  4. W bazach danych ccnet-server, seafile-server i seahub po prostu naciśnij klawisz [Enter] – ustawienie domyślne.

Po pomyślnej instalacji Seafile Server wygeneruje przydatne informacje, takie jak jakie porty muszą być otwarte w zaporze sieciowej, aby umożliwić połączenie zewnętrzne i jakie skrypty należy obsłużyć, aby uruchomić serwer.

Krok 3: Otwórz zaporę sieciową i utwórz skrypt inicjujący Seafile

7. Przed uruchomieniem serwera Seafile z lokalnego skryptu w celu testu, wróć do konta root i otwórz plik konfiguracyjny zapory iptables znajdujący się na /etc/sysconfig/ ścieżkę systemową i dodaj następujące reguły linii przed pierwszą linią REJECT, a następnie uruchom ponownie iptables, aby zastosować nowe reguły.

su - root
nano /etc/sysconfig/iptables

Dołącz poniższe zasady.

-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

Uruchom ponownie iptables, aby zastosować reguły, używając następującego polecenia.

service iptables restart

UWAGA: Jeśli podczas instalacji zmieniłeś standardowe porty Seafile, zaktualizuj odpowiednio reguły iptables zapory sieciowej.

8. Teraz czas przetestować serwer Seafile. Przejdź do katalogu użytkownika Seafile i seafile-server i uruchom serwer za pomocą skryptów seafile.sh i seahub.sh.

Przy pierwszym uruchomieniu skryptu seahub.sh utwórz konto administracyjne dla serwera Seafile przy użyciu swojego adresu e-mail i wybierz silne hasło dla konta administratora, szczególnie jeśli wdrażasz tę konfigurację w środowisku produkcyjnym.

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

9. Po pomyślnym uruchomieniu serwera otwórz przeglądarkę i przejdź do adresu IP serwera lub nazwy domeny na porcie 8000 przy użyciu protokołu HTTP, a następnie zaloguj się przy użyciu utworzonego konta administratora na powyższym etapie.

http://system_IP:8000

OR 

http://domain_name:8000

10. Po pierwszych testach konfiguracji zatrzymaj serwer Seafile i utwórz skrypt init, który pomoże Ci łatwiej zarządzać całym procesem, tak jak każdym innym procesem demona systemu Linux.

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

Dodaj następującą treść do tego skryptu init – Jeśli Seafile jest zainstalowany na innym użytkowniku systemu, pamiętaj o odpowiedniej aktualizacji użytkownika i ścieżek w liniach 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. Po utworzeniu pliku init upewnij się, że ma on uprawnienia do wykonywania i zarządzaj procesem za pomocą start, stop i uruchom ponownie. Teraz możesz dodać usługę Seafile podczas uruchamiania systemu za pomocą polecenia chkconfig.

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

12. Domyślnie serwer Seafile używa portu HTTP 8000/TCP do transakcji internetowych. Jeśli chcesz uzyskać dostęp do serwera Seafile Server z przeglądarki na standardowym porcie HTTP, użyj następującego skryptu init, który uruchamia serwer na porcie 80 (pamiętaj, że uruchomienie usługi na portach poniżej < b>1024 wymaga uprawnień roota).

nano /etc/init.d/seafile

Dodaj następującą treść do tego skryptu init, aby uruchomić Seafile na standardowym porcie HTTP. Jeśli Seafile jest zainstalowany na innym użytkowniku systemu, pamiętaj o odpowiedniej aktualizacji użytkownika i ścieżek w liniach 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. Jeśli wcześniej uruchamiałeś Seafile na porcie 8000, upewnij się, że wszystkie procesy zostały zakończone, uruchom serwer na porcie 80.

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

Otwórz przeglądarkę i skieruj ją na następujący adres.

http://system_ip 

OR

http://domain_name.tld

14. Możesz także sprawdzić, na jakich portach działa Seafile, używając polecenia netstat.

netstat -tlpn

Otóż to! Seafile może z powodzeniem zastąpić inne platformy do współpracy i synchronizacji plików w chmurze, takie jak publiczne Dropbox, Owncloud, Pydio, OneDrive itp. w Twojej organizacji, zaprojektowane z myślą o lepszej pracy zespołowej i pełnej kontroli nad pamięcią masową dzięki zaawansowanym zabezpieczeniom w przestrzeni użytkownika.

W moim nadchodzącym artykule omówię, jak zainstalować klienta Seafile w systemach Linux i Windows, a także pokażę, jak połączyć się z serwerem Seafile. Do tego czasu bądź na bieżąco z Tecmintem i nie zapomnij podzielić się swoimi cennymi komentarzami.