웹사이트 검색

RHEL/CentOS/SL 7.x/6.x에 MySQL 데이터베이스와 함께 Seafile(보안 클라우드 저장소) 설치


Seafile은 클라이언트측 암호화를 사용한 파일 공유 및 동기화 지원, 팀 협업 및 개인 정보 보호 기능을 갖춘 Python으로 작성된 고급 오픈 소스 협업 클라우드 스토리지 애플리케이션입니다. 모든 주요 플랫폼(Linux, Raspberry Pi, Windows, Mac, iPhone 및 Android)에서 실행되는 클라이언트와 동기화되는 다중 플랫폼 파일로 구축되었으며 LDAP 및 WebDAV와 같은 로컬 서비스와 쉽게 통합되거나 고급 기술을 사용하여 배포할 수 있습니다. MySQL, SQLite, PostgreSQL, Memcached, Nginx 또는 Apache Web Server와 같은 네트워크 서비스 및 데이터베이스.

이 튜토리얼은 initMySQL 데이터베이스와 함께 배포된 RHEL/CentOS/Scientific Linux 7.x/6.x에 Seafile 서버 설치를 단계별로 안내합니다. > 기본 Seafile 포트(8000/TCP)와 기본 HTTP 트랜잭션 포트(80/TCP)에서 서버를 실행하기 위한 스크립트, 필요한 포트를 여는 데 필요한 방화벽 규칙을 만듭니다.

요구사항

  1. 고정 IP 주소를 사용한 최소 CentOS 6.5 설치.
  2. MySQL/MariaDB 데이터베이스
  3. 파이썬 2.6.5+ 또는 2.7
  4. Python 설정 도구
  5. Python-simplejson
  6. Python 이미징
  7. Python-mysqldb

이 설치 절차는 CentOS 6.4 64비트 시스템에서 테스트되었지만 init 시작 스크립트가 배포판마다 다르기 때문에 다른 Linux 배포판에서도 사용할 수 있습니다. .

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 서버를 다운로드하고 설치할 차례입니다. Seafile 공식 다운로드 페이지로 이동하여 wget 명령을 사용하여 서버 아키텍처에 대한 마지막 .Tar Linux 아카이브 릴리스를 가져온 다음 이전에 생성한 홈 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. MySQL 데이터베이스를 사용하여 Seafile 서버를 설치하려면 setup-seafile-mysql.sh 초기화 스크립트를 실행하고 스크립트가 존재 여부를 확인한 후 다음 구성 옵션을 사용하여 모든 질문에 답하세요. 모든 Python 필수 모듈.

./setup-seafile-mysql.sh
  1. 서버 이름이 무엇입니까?=설명이 포함된 이름을 선택하세요(공백은 허용되지 않음).
  2. 서버의 IP 또는 도메인은 무엇입니까?=서버 IP 주소 또는 유효한 도메인 이름을 입력하세요.
  3. ccnet 서버에 어떤 포트를 사용하시겠습니까?=[Enter]를 누르세요 – 기본값으로 두세요 – 10001.
  4. Seafile 데이터를 어디에 저장하시겠습니까?=[Enter] 누르기 – 기본 위치는 $HOME/seafile-data 디렉터리입니다.
  5. Seafile 서버에 어떤 포트를 사용하시겠습니까?=[Enter]를 누르세요 – 기본값으로 두세요 – 12001.

  1. Seafile httpserver에 어떤 포트를 사용하시겠습니까?=[Enter]를 누르세요 – 기본값으로 두세요 – 8082.
  2. Seafile 데이터베이스를 초기화하는 방법을 선택하십시오:=1을 선택하고 기본 MySQL 자격 증명(localhost, 3306 및 루트 비밀번호)을 제공하십시오.
  3. Seafile의 MySQL 사용자 이름을 입력하세요:=seafile (다른 사용자 이름을 만든 경우 해당 사용자 이름을 입력하세요) 및 Seafile MySQL 사용자 비밀번호를 입력하세요.
  4. ccnet-server에서 seafile-server와 seahub 데이터베이스는 기본값인 [Enter] 키만 누르면 됩니다.

Seafile 서버가 성공적으로 설치되면 외부 연결을 허용하기 위해 방화벽에서 어떤 포트를 열어야 하는지, 서버를 시작하기 위해 어떤 스크립트를 처리해야 하는지와 같은 몇 가지 유용한 정보를 생성합니다.

3단계: 방화벽을 열고 Seafile 초기화 스크립트 만들기

7. 테스트를 위해 로컬 스크립트에서 Seafile 서버를 시작하기 전에 루트 계정으로 다시 변경하고 에 있는 iptables 방화벽 파일 구성을 엽니다. /etc/sysconfig/ 시스템 경로를 삭제하고 첫 번째 REJECT 줄 앞에 다음 줄 규칙을 추가한 후 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 규칙을 업데이트하세요.

8. 이제 Seafile 서버를 테스트할 차례입니다. Seafile 사용자 및 seafile-server 디렉토리로 전환하고 seafile.shseahub.sh 스크립트를 사용하여 서버를 시작하십시오.

seahub.sh 스크립트를 처음 시작할 때 이메일 주소를 사용하여 Seafile 서버에 대한 관리 계정을 생성하고 관리 계정에 대한 강력한 비밀번호를 선택하십시오. 특히 이 구성을 프로덕션 환경에 배포하는 경우에는 더욱 그렇습니다.

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

9. 서버가 성공적으로 시작된 후 브라우저를 열고 HTTP 프로토콜을 사용하여 서버 IP 주소 또는 포트 8000의 도메인 이름으로 이동한 다음 생성된 관리자 계정을 사용하여 로그인합니다. 위 단계에서.

http://system_IP:8000

OR 

http://domain_name:8000

10. 첫 번째 구성 테스트 후 Seafile 서버를 중지하고 다른 Linux 시스템 데몬 프로세스와 마찬가지로 전체 프로세스를 보다 쉽게 관리하는 데 도움이 되는 init 스크립트를 만듭니다.

./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 및 다시 시작 스위치를 사용하세요. 이제 chkconfig 명령을 사용하여 시스템 시작 시 Seafile 서비스를 추가할 수 있습니다.

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 포트를 사용합니다. 표준 HTTP 포트의 브라우저에서 Seafile 서버에 접근하려면 포트 80에서 서버를 시작하는 다음 init 스크립트를 사용하십시오. (아래 포트에서 서비스를 시작하는 것에 주의하세요. b>1024에는 루트 권한이 필요합니다).

nano /etc/init.d/seafile

표준 HTTP 포트에서 Seafile을 시작하려면 init 스크립트에 다음 내용을 추가하세요. 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. 이전에 포트 8000에서 Seafile을 시작한 경우 모든 프로세스가 종료되었는지 확인하고 포트 80에서 서버를 시작하십시오.

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

브라우저를 열고 다음 주소로 이동하십시오.

http://system_ip 

OR

http://domain_name.tld

14. netstat 명령을 사용하여 Seafile이 실행 중인 포트를 확인할 수도 있습니다.

netstat -tlpn

그게 다야! Seafile은 공개 Dropbox, Owncloud, Pydio, OneDrive 등과 같은 다른 클라우드 협업 및 파일 동기화 플랫폼을 대체할 수 있습니다. 사용자 공간의 고급 보안을 통해 더 나은 팀워크와 스토리지에 대한 완전한 제어를 위해 설계되었습니다.

다음 기사에서는 Linux 및 Windows 시스템에 Seafile 클라이언트를 설치하는 방법과 Seafile 서버에 연결하는 방법을 설명하겠습니다. 그때까지 Tecmint를 계속 지켜봐 주시고 귀중한 의견을 제공하는 것을 잊지 마십시오.