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
- Minimalna instalacja CentOS 6.5 ze statycznym adresem IP.
- Baza danych MySQL/MariaDB
- Python 2.6.5+ lub 2.7
- Narzędzia konfiguracyjne Pythona
- Python-prosty
- Obrazowanie w Pythonie
- 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
- Jak nazywa się twój serwer?=wybierz nazwę opisową (bez spacji).
- Jaki jest adres IP lub domena serwera?=wprowadź adres IP swojego serwera lub prawidłową nazwę domeny.
- Którego portu chcesz używać dla serwera ccnet?=naciśnij [Enter] – pozostaw wartość domyślną – 10001.
- Gdzie chcesz umieścić dane Seafile?=naciśnij [Enter] – domyślną lokalizacją będzie Twój katalog $HOME/seafile-data.
- Którego portu chcesz używać dla serwera Seafile?=naciśnij [Enter] – pozostaw wartość domyślną – 12001.
- Którego portu chcesz używać dla serwera https Seafile?=naciśnij [Enter] – pozostaw wartość domyślną – 8082.
- Proszę wybrać sposób inicjowania baz danych seafile:=wybierz 1 i podaj domyślne dane uwierzytelniające MySQL: localhost, 3306 i hasło roota.
- 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.
- 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.