openSUSE Leap 42.1에서 Nginx로 Seafile을 설치하는 방법
이 페이지에서
- 1단계 - 호스트 이름 구성\n
- 2단계 - 종속성 설치
- 3단계 - 데이터베이스 구성
- 4단계 - Seafile 설치 및 구성
- 5단계 - Nginx 설치 및 구성
- 6단계 - Seafile 시작 및 테스트
- 참조
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개의 데이터베이스가 필요합니다:
- ccnet 데이터베이스
- seafile 데이터베이스
- 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