웹사이트 검색

openSUSE Leap 42.1에서 Nginx로 Seafile을 설치하는 방법


이 페이지에서

  1. 1단계 - 호스트 이름 구성\n
  2. 2단계 - 종속성 설치
  3. 3단계 - 데이터베이스 구성
  4. 4단계 - Seafile 설치 및 구성
  5. 5단계 - Nginx 설치 및 구성
  6. 6단계 - Seafile 시작 및 테스트
  7. 참조

Seafile은 자체 서버에 설치할 수 있는 Dropbox 또는 Google Drive와 같은 기능을 갖춘 무료 파일 호스팅 소프트웨어입니다. Seafile은 오픈소스 라이선스에 따라 배포됩니다. 사용자가 서버에서 자신의 데이터를 암호화할 수 있게 해주는 신뢰할 수 있는 파일 공유 소프트웨어인 Seafile로 나만의 보안 파일 동기화 및 공유 서버를 구축할 수 있습니다. Seafile은 C와 Python으로 작성되었습니다.

이 튜토리얼에서는 openSUSE Leap 42.1에서 Seafile로 자신만의 파일 동기화 및 공유 서버를 구축하는 방법을 보여드리겠습니다. Seafile 설치를 안내한 다음 nginx 리버스 프록시 서버 뒤에 있는 https 암호화로 웹 GUI를 구성합니다.

전제 조건

  • OpenSUSE 도약 42.1 - 64비트
  • 루트 권한\n
  • zypper 명령 이해\n

1단계 - 호스트 이름 구성

openSUSE 서버에 로그인합니다.

ssh 

서버에 로그인한 후 vim으로 호스트 파일을 편집합니다.

vim /etc/hosts

구성 붙여넣기(IP 및 호스트 이름을 고유한 값으로 대체):

192.168.1.101   cloud.kuonseafile.co    cloud

저장 및 종료.

메모:

192.168.1.101=내 서버 IP 주소.

클라우드 = 내 서버 호스트 이름.

kuonseafile.co=내 도메인 이름.

호스트 이름 및 FQDN(정규화된 도메인 이름) 확인:

hostname
hostname -f

2단계 - 종속성 설치

Seafile은 파이썬으로 작성되었으므로 설치를 위해 여러 파이썬 라이브러리가 필요합니다. 데이터베이스의 경우 Seafile은 SQLite와 MySQL을 지원합니다. 이 튜토리얼에서는 SQLite보다 더 나은 성능을 제공하는 MySQL 데이터베이스를 사용하겠습니다.

아래 zypper 명령을 사용하여 MySQL/MariaDB 서버를 포함한 모든 패키지를 설치합니다.

zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-client

설치가 완료되면 다음 단계로 넘어갑니다.

3단계 - 데이터베이스 구성

Seafile을 배포할 때 알아야 할 한 가지가 있습니다. Seafile에는 3개의 데이터베이스가 필요합니다:

  1. ccnet 데이터베이스
  2. seafile 데이터베이스
  3. seahub 데이터베이스

2단계에서 MySQL/MariaDB 서버를 성공적으로 설치했습니다. 이제 아래 명령으로 서버를 시작합니다.

rcmysql start

mysqladmin 명령을 사용하여 mysql 루트 사용자의 새 암호를 설정합니다.

/usr/bin/mysqladmin -u root password 'aqwe123'

다음으로 MySQL 셸에 로그인하고 seafile용 데이터베이스 3개와 해당 데이터베이스용 새 사용자 1명을 생성합니다.

MySQL 셸에 로그인합니다.

mysql -u root -p

유형 암호 "aqwe123"

seafile 설치를 위한 3개의 데이터베이스 생성 - ccnet_db, seafile_db 및 seahub_db:

create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';

비밀번호 [email 로 새 사용자 seafilecloud를 만듭니다.

create user ';

이제 seafilecloud 사용자에게 모든 데이터베이스에 대한 액세스 권한을 부여합니다.

grant all privileges on ccnet_db.* to ';
flush privileges;

모든 데이터베이스는 Seafile을 설치할 준비가 되었습니다.

4단계 - Seafile 설치 및 구성

이 단계에서는 Seafile을 설치하고 구성합니다. Seafile 사용자 및 홈 디렉토리 아래에 Seafile을 설치할 것이므로 "seafile"이라는 이름으로 새 Linux 사용자를 생성해야 합니다.

새 사용자 만들기

설치를 위해 이름이 seafile인 새 사용자를 생성합니다:

useradd -m -s /bin/bash seafile

메모:

-m = "/home/" 아래에 사용자를 위한 새 홈 디렉토리를 만듭니다.
-s /bin/bash = 사용자를 위한 셸을 정의합니다.

Seafile 다운로드

아래 su 명령을 사용하여 Seafile 사용자로 전환하십시오.

su - seafile

이제 Seafile 홈 디렉토리에 있습니다. wget 명령으로 Seafile 서버 5를 다운로드하십시오:

wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gz

Seafile 아카이브를 추출하고 이름을 바꿉니다:

tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server

Seafile 5 설치

seafile-server 디렉토리로 이동하여 설정 파일을 실행하여 seafile을 설치합니다:

cd seafile-server/

우리는 MySQL 데이터베이스와 함께 Seafile을 설치할 것이므로 설정 파일 MySQL을 실행합니다:

./setup-seafile-mysql.sh

이제 서버 세부 정보를 묻는 메시지가 나타납니다.

서버 이름 = 서버 호스트 이름을 사용하세요.
서버 IP 또는 도메인 = 내 서버 IP 주소를 사용하세요.
Seafile Data direcoty = 그냥 엔터를 누르세요.
seafile 파일 서버 포트=그냥 엔터를 누르세요.

다음으로 데이터베이스를 구성합니다. 설치를 위해 자체 데이터베이스를 만들었으므로 "2"를 선택하십시오.

이제 데이터베이스 프로필에 대한 질문을 받게 됩니다.

mysql의 호스트 = 기본값은 localhost입니다.
기본 포트 = 3306.
seafile의 MySQL 사용자 = 사용자 weve 사용 3단계에서 생성됨 - "seafilecloud".
MySQL 암호 = seafilecloud 사용자의 암호.
ccnet 데이터베이스 = 데이터베이스 생성 - ccnet_db.< br> seafile 데이터베이스=seafile_db.
seahub 데이터베이스=seahub_db.

오류가 발생하지 않으면 "Enter"를 눌러 설치를 확인할 수 있습니다.

스크립트가 구성 및 데이터베이스를 생성할 때까지 기다립니다.

Seafile 및 Seahub 시작

Seafile이 설치되었습니다. 이제 아래 명령으로 시작할 수 있습니다.

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

Seafile의 관리 사용자를 생성하라는 메시지가 표시되면 관리자 이메일과 비밀번호를 입력하기만 하면 됩니다.

이 단계에서 포트 8000에서 Seafile 웹 GUI에 액세스할 수 있습니다.

5단계 - Nginx 설치 및 구성

Nginx는 메모리 사용량과 CPU 사용량이 적은 경량 웹 서버입니다. 이 단계에서는 nginx를 설치한 다음 Seafile에 대한 역방향 프록시 액세스를 위한 새 가상 호스트를 만듭니다. 서버에서 연결을 위해 https를 활성화할 것입니다.

Nginx 설치

zypper 명령어를 사용하여 nginx 웹 서버를 설치합니다.

zypper in nginx

SSL 인증서 생성

다음으로 nginx 디렉터리로 이동하여 SSL 인증서를 위한 새 디렉터리를 만듭니다. 그런 다음 OpenSSL 명령을 사용하여 인증서 파일을 생성합니다.

mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/

이제 인증서 파일을 생성합니다.

openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

가상 호스트 구성

nginx 디렉터리에서 "vhosts.d"라는 새 디렉터리를 만들어 가상 호스트 파일을 저장합니다. 해당 디렉토리를 만든 다음 vim을 사용하여 새 가상 호스트 파일을 만듭니다.

mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.conf

아래에 가상 호스트 구성을 붙여넣으십시오.

    server {
        listen       80;
        server_name  cloud.kuonseafile.co;    #Domain Name
        rewrite ^ https://$http_host$request_uri? permanent;    # force redirect http to https
    }
    server {
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/ssl/cacert.pem;        # path to your cacert.pem
        ssl_certificate_key /etc/nginx/ssl/privkey.pem;    # path to your privkey.pem
        server_name cloud.kuonseafile.co;                    #Domain Name
        proxy_set_header X-Forwarded-For $remote_addr;

        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
        server_tokens off;

        location / {
            fastcgi_pass    127.0.0.1:8000;
            fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
            fastcgi_param   PATH_INFO           $fastcgi_script_name;

            fastcgi_param   SERVER_PROTOCOL        $server_protocol;
            fastcgi_param   QUERY_STRING        $query_string;
            fastcgi_param   REQUEST_METHOD      $request_method;
            fastcgi_param   CONTENT_TYPE        $content_type;
            fastcgi_param   CONTENT_LENGTH      $content_length;
            fastcgi_param   SERVER_ADDR         $server_addr;
            fastcgi_param   SERVER_PORT         $server_port;
            fastcgi_param   SERVER_NAME         $server_name;
            fastcgi_param   HTTPS               on;
            fastcgi_param   HTTP_SCHEME         https;

            access_log      /var/log/nginx/seahub.access.log;
            error_log       /var/log/nginx/seahub.error.log;
            fastcgi_read_timeout 36000;
        }
        location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            client_max_body_size 0;
            proxy_connect_timeout  36000s;
            proxy_read_timeout  36000s;
            proxy_send_timeout  36000s;
            send_timeout  36000s;
        }
        location /media {
            root /home/seafile/seafile-server/seahub;
        }
    }

server_name을 자신의 도메인 이름(3행 및 11행)으로 바꾸십시오.
미디어 위치 47행의 경우 seafile 설치 경로 - /home/seafile/seafile-server/seahub로 바꾸십시오.

파일을 저장하고 편집기를 종료한 다음 다음 명령을 사용하여 구성을 테스트합니다.

nginx -t

구성에 문제나 오류가 없는지 확인하십시오.

자신의 도메인과 HTTPS를 사용하도록 Seafile 구성

사용자 seafile로 전환하고 구성을 편집합니다. 구성을 편집하기 전에 seafile 및 seahub 서비스를 끄십시오.

su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop

Seafile 사용자 홈 디렉토리로 돌아가서 conf 디렉토리로 이동하여 ccnet.conf 및 seahub_settings.py 파일을 편집합니다.

cd ~/
cd conf/

ccnet.conf 파일 편집:

vim ccnet.conf

5행: SERVICE_URL - 도메인을 자신의 도메인 이름으로 https로 바꿉니다.

SERVICE_URL = https://cloud.kuonseafile.co/

저장 및 종료.

이제 seahub_settings.py를 편집하십시오.

vim seahub_settings.py

아래에 새 줄을 추가하여 파일 서버 루트를 정의합니다.

FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'

저장 및 종료.

6단계 - Seafile 시작 및 테스트

Nginx가 설치되었습니다 - MariaDB/MySQL이 설치되고 Seafile 서버가 설치되었습니다.

부팅 시 Nginx 및 MySQL이 시작되도록 합니다.

systemctl enable nginx
systemctl enable mysql

서비스를 다시 시작합니다.

systemctl restart nginx
systemctl restart mysql

다음으로 seafile 사용자로부터 seafile과 seahub를 시작합니다:

su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgi

모든 서비스가 시작됩니다.

이제 서버의 URL로 Seafile 서버에 액세스할 수 있습니다. 내 것은:

cloud.kuonseafile.co

seafile의 https 연결 로그인 페이지로 리디렉션됩니다.

4단계에서 생성한 관리 사용자 세부 정보를 입력합니다.

이제 Seafile 파일 관리자를 보고 Seafile 서버에 파일을 업로드할 수 있습니다.

참조

  • http://manual.seafile.com/deploy/https_with_nginx.html