아리운 서버에 seafile 전문 버전 구축

23966 단어
공식 원클릭 설치 강좌는 아리운 서버에 설치할 수 없고 수준이 제한되어 해결할 수 없기 때문에 수동 설치를 선택합니다
참고 자료:
1,, 텐센트 클라우드 seafile 서버 구축
2、How to Install Seafile with Nginx on CentOS 7
먼저 방화벽을 닫으세요.
systemctl stop firewalld.service # firewall

하나.배포 환경


클라우드 서버: Ari 클라우드 1vCPU 1GB ecs.xn4.small 100Mbps centos 7.4 64비트
환경 설치:
yum update
yum install -y tree vim 

mysql5.7 배포
mysql 소스 설치 패키지 다운로드
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

mysql 소스 설치
yum localinstall -y mysql57-community-release-el7-8.noarch.rpm

mysql 원본 설치 성공 여부 확인
yum repolist enabled | grep "mysql.*-community.*"

mysql 설치
yum install -y mysql-community-server

mysql 서비스 시작
systemctl start mysqld

전원 켜기 시작 설정
systemctl enable mysqld
systemctl daemon-reload

루트 로컬 로그인 암호 수정
# 루트 기본 암호 보기
grep 'temporary password' /var/log/mysqld.log

# 루트 암호 수정
mysql -uroot -p
set password for 'root'@'localhost'=password(' '); 

주의: mysql5.7 기본적으로 암호 보안 검사 플러그인 (validate_password) 이 설치되어 있습니다. 기본 암호 검사 정책은 암호가 대소문자, 숫자, 특수 기호를 포함해야 하며 길이가 8자리보다 적을 수 없습니다.그렇지 않으면 ERROR 1819(HY000): Your password does not satisfy the current policy requirements 오류가 표시됩니다.
mysql 서비스를 다시 시작하면 설정이 적용됩니다.
systemctl restart mysqld

원격 로그인 열기 및 기본 인코딩 설정utf8
mysql>grant all privileges on *.* to 'root'@'%' identified by ' ' with grant option;
mysql>FLUSH PRIVILEGES;

수정/etc/my.cnf 프로필, [mysqld]에 인코딩 프로필을 추가합니다. 아래와 같습니다.
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

3.nginx 1.12.2 배포
yum install -y openssl-devel pcre-devel epel-release
yum install -y nginx

시작nginx
systemctl start nginx

4.python 관련 패키지 배치
seafile 공식 매뉴얼에 따라 다음과 같이 설치합니다.
1
2
3
4
5
6
# yum -y install epel-release
# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
# yum -y install python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel
# pip install pillow moviepy # , pip,
# yum -y install python-pip # pip install --upgrade pip ,
# pip install setuptools==33.1.1 pillow 。

5. jre 배포
yum install jre

2.seafile 배포


1. 디렉터리 디자인, seafile 전문 설치 패키지를/opt 디렉터리에 다운로드
1
2
3
4
5
mkdir -p /opt/seafile/installed
mv /opt/seafile-pro-server_* /opt/seafile
cd /opt/seafile
tar -xzf seafile-pro-server_*
mv seafile-pro-server_* installed

2. seafile 배포
cd seafile-pro-server-*
./setup-seafile-mysql.sh  # 

매개 변수
작용
설명
seafile server name
seafile 서버의 이름입니다. 현재 이 설정은 더 이상 사용하지 않습니다.
3~15자, 영문자, 숫자, 밑줄 사용 가능
seafile server ip or domain
seafile 서버의 IP 주소 또는 도메인 이름
클라이언트가 이 IP나 주소를 통해 Seafile 서비스에 접근합니다.
seafile data dir
seafile 데이터가 저장된 디렉터리입니다. 위의 예를 들어 기본값은/data/haiwen/seafile-data입니다.
seafile 데이터는 사용에 따라 점차 증가할 것입니다. 충분한 여유 공간이 있는 구역에 놓으십시오
seafile fileserver port
seafile fileserver에서 사용하는 TCP 포트
이 포트는 파일 동기화에 사용됩니다. 기본 8082를 사용하십시오. 변경할 수 없습니다.
여기서 Seafile 데이터베이스를 만드는 방법을 선택해야 합니다.
-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
  • 1을 선택하면 루트 비밀번호를 제공해야 합니다.스크립트 프로그램이 데이터베이스와 사용자를 만듭니다..
  • 만약 2를 선택한다면 ccnet/seafile/seahub 데이터베이스는 이미 당신(또는 다른 사람)이 미리 만들었을 것입니다

  • 3. Seafile 및 Seahub 서비스 구성
    Next, go to the systemd directory and create a seafile.service file with vim:
    cd /etc/systemd/system/
    vim seafile.service
    

    Paste seafile service configuration below:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [Unit]
    Description=Seafile Server
    Before=seahub.service
    After=network.target mariadb.service

    [Service]
    Type=oneshot
    ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
    ExecStop=/opt/seafile/seafile-server-latest/seafile.sh stop
    RemainAfterExit=yes
    User=root
    Group=root

    [Install]
    WantedBy=multi-user.target

    Now create new seahub.service file.
    vim seahub.service
    

    And paste configuration below.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]
    Description=Seafile Hub
    After=network.target seafile.target mariadb.service

    [Service]
    Type=oneshot
    ExecStart=/opt/seafile/seafile-server-latest/seahub.sh start
    ExecStop=/opt/seafile/seafile-server-latest/seahub.sh stop
    RemainAfterExit=yes
    User=root
    Group=root

    [Install]
    WantedBy=multi-user.target

    Reload the systemd service and start seafile and seahub with systemctl.
    systemctl daemon-reload
    systemctl start seafile
    systemctl start seahub
    

    Make sure there is no error and check that the seafile and seahub service is running on port 8082 and 8000.
    netstat -plntu
    

    Start seafile and Seahub service
    4. ssl 인증서 만들기
    Create the ssl directory.
    mkdir -p /etc/nginx/ssl
    cd /etc/nginx/ssl
    

    Generate self signed certificate files and a dhparam file with command below:
    openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
    openssl req -new -x509 -sha256 -days 365 -newkey rsa:2048 -nodes -keyout server.key -out server.crt
    ps: , 
    

    5.Nginx에서 Seahub 구성
    In this step, we will configure Nginx as a reverse proxy for the seafile-server on port 8000 and 8002.
    Go to the nginx configuration directory and create a new virtual host file for seafile.
    cd /etc/nginx/
    

    기존 설정nginx를 백업합니다.conf는nginx입니다.conf.backup
    mv nginx.conf nginx.conf.backup
    vim nginx.conf
    

    편집nginx.conf 내용
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    user nginx nginx;
    worker_processes 4;

    events {
    worker_connections 8096;
    multi_accept on;
    use epoll;
    }

    pid /var/run/nginx.pid;
    worker_rlimit_nofile 40000;

    http {
    server_tok   seafile ens off;
    server_names_hash_bucket_size 128;
    client_max_body_size 50M;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log warn;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    client_body_timeout 12;
    client_header_timeout 12;
    keepalive_timeout 15;
    send_timeout 10;
    # Fully disabled gzip compression to mitigate Django BREACH attack: https://www.djangoproject.com/weblog/2013/aug/06/breach-and-django/
    gzip off;
    #gzip_vary on;
    #gzip_proxied expired no-cache no-store private auth any;
    #gzip_comp_level 9;
    #gzip_min_length 10240;
    #gzip_buffers 16 8k;
    #gzip_http_version 1.1;
    #gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/xml font/woff2;
    #gzip_disable "MSIE [1-6].";
    include /etc/nginx/conf.d/*.conf;
    }
    vim conf.d/seafile.conf
    

    Paste virtual host configuration below:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    server {
    listen 80;
    server_name fz419.cn;
    rewrite ^ https://$http_host$request_uri? permanent; # http https
    server_tokens off;
    }
    server {
    listen 443;
    ssl on;
    ssl_certificate /etc/nginx/ssl/@fz419.cn.pem;
    ssl_certificate_key /etc/nginx/ssl/@fz419.cn.key;
    server_name fz419.cn;
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:5m;

    # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;

    # secure settings (A+ at SSL Labs ssltest at time of writing)
    # see https://wiki.mozilla.org/Security/Server_Side_TLS#Nginx
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-SEED-SHA:DHE-RSA-CAMELLIA128-SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS';
    ssl_prefer_server_ciphers on;

    proxy_set_header X-Forwarded-For $remote_addr;

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

    location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Forwarded-Proto https;

    access_log /var/log/nginx/seahub.access.log;
    error_log /var/log/nginx/seahub.error.log;

    proxy_read_timeout 1200s;

    client_max_body_size 0;
    }

    # fastcgi
    #
    # 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 REMOTE_ADDR $remote_addr;
    # fastcgi_read_timeout 36000;
    #
    # client_max_body_size 0;
    #
    # access_log /var/log/nginx/seahub.access.log;
    # error_log /var/log/nginx/seahub.error.log;
    # }

    location /seafhttp {
    rewrite ^/seafhttp(.*)$ $1 break;
    proxy_pass http://127.0.0.1:8082;
    client_max_body_size 0;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 36000s;
    proxy_read_timeout 36000s;
    proxy_send_timeout 36000s;
    send_timeout 36000s;
    }
    location /media {
    root /opt/seafile/seafile-server-latest/seahub;
    }
    }

    Save and exit.
    I will use use ‘cloud.natsume.co’ as the domain name. Please replace that with your own domain name in the config above.
    Now test the Nginx configuration and make sure that there are no errors.
    nginx -t
    

    Start Nginx with the systemctl command:
    systemctl start nginx
    

    Make sure port 80 and 443 are available in the list that netstat provides:
    netstat -plntu
    

    Check that Nginx is listening on the port 80
    Next, we have to add the domain name to the seafile configuration. Go to the seafile directory and edit the configuration file.
    cd /opt/seafile/
    vim conf/ccnet.conf
    

    Change the service URL to your domain name.
    SERVICE_URL = https://fz419.cn
    

    Save and exit.
    Edit the seahub configuration file.
    vim conf/seahub_settings.py
    

    On the second line, add configuration below:
    HTTP_SERVER_ROOT = 'https://fz419.cn/seafhttp'
    

    Replace the domain name with your domain here again. Save and exit.
    Restart seafile and add all services to start at boot time:
    systemctl restart seafile
    systemctl restart seahub
    
    systemctl enable nginx
    systemctl enable mysqld
    systemctl enable seafile
    systemctl enable seahub
    

    6. 방화벽 구성
    Start firewalld.
    systemctl start firewalld
    systemctl enable firewalld
    

    Add HTTP and HTTPS port to the firewall configuration with the firewall-cmd command below:
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --zone=public --add-port=443/tcp --permanent
    

    Reload the firewall configuration and check the port list.
    firewall-cmd --reload
    firewall-cmd --list-all
    

    TCP의 80 및 443 포트를 열면 됩니다.

    셋.오피스 온라인 미리 보기 기능 설정


    1. Libreoffice/UNO 설치
    sudo yum install libreoffice libreoffice-headless libreoffice-pyuno poppler-utils
    

    2. 글꼴 설치
    sudo yum install wqy-microhei-fonts wqy-zenhei-fonts wqy-unibit-fonts -y
    

    3. 설정 항목 열기
    conf/seafevents를 엽니다.conf, 추가: [OFFICE CONVERTER]
    enabled = true
    

    저장 후 seafevents.conf Seafile 서비스 다시 시작
    ./seafile.sh restart
    

    좋은 웹페이지 즐겨찾기