如何安装Seafile与Nginx在openSUSE Leap 42.1

在本教程中,我将向您展示如何在openSUSE Leap 42.1上使用seafile构建您自己的文件同步和共享服务器。 Seafile是一个免费的文件托管...

Seafile是一个免费的文件托管软件,功能类似于Dropbox或Google Drive,可以安装在您自己的服务器上。 Seafile是根据OpenSource许可证发布的。 您可以建立自己的安全文件同步和共享服务器与海底,它是一个可靠的文件共享软件,使用户能够加密其服务器上的数据。 海底是用C和python写的。

在本教程中,我将向您展示如何在openSUSE Leap 42.1上构建自己的文件同步并与seafile共享服务器。 我们将引导您通过安装海底,然后在nginx反向代理服务器后面配置带有https加密功能的Web GUI。

前提条件

  • OpenSUSE Leap 42.1 - 64bit
  • 根权限
  • 了解zypper命令

第1步 - 配置主机名

登录到您的openSUSE服务器:

ssh root@192.168.1.101

登录到服务器后,使用vim编辑hosts文件:

vim /etc/hosts

粘贴配置(用您自己的值替换IP和主机名):

192.168.1.101   cloud.kuonseafile.co    cloud

保存并退出。

注意:

192.168.1.101 =我的服务器IP地址。

Cloud =我的服务器主机名。

kuonseafile.co =我的域名。

验证主机名和FQDN(完全限定域名):

hostname
hostname -f

验证主机名和IP地址。

第2步 - 安装依赖关系

Seafile是用python编写的,所以我们需要几个python库进行安装。 对于数据库,seafile支持SQLite和MySQL,在本教程中,我将使用一个提供比SQLite更好的性能的MySQL数据库。

使用zypper命令安装包含MySQL / MariaDB服务器的所有软件包:

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

安装完成后,转到下一步。

第3步 - 配置数据库

当你想要部署海床时,你应该知道一件事情。 海底需要3个数据库:

  1. ccnet数据库
  2. 海底数据库
  3. seahub数据库

在第2步中,我们已经成功安装了MySQL / MariaDB服务器,现在使用以下命令启动它:

rcmysql start

使用mysqladmin命令为mysql root用户设置新密码:

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

接下来,登录到MySQL shell并为3个数据库创建3个数据库和一个新用户。

登录到MySQL shell:

mysql -u root -p

TYPE PASSWORD“aqwe123”

为海底安装创建三个数据库 - 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';

并创建一个新用户seafilecloud密码'seafilecloud @':

create user seafilecloud@localhost identified by 'seafilecloud@';

现在,将seafilecloud用户的访问权限授予所有数据库:

grant all privileges on ccnet_db.* to seafilecloud@localhost identified by 'seafilecloud@';
grant all privileges on seafile_db.* to seafilecloud@localhost identified by 'seafilecloud@';
grant all privileges on seahub_db.* to seafilecloud@localhost identified by 'seafilecloud@';
flush privileges;

所有数据库都准备好进行海底安装。

为海底创建MySQL数据库。

第4步 - 安装和配置海底

在这一步中,我们将安装和配置海底。 我们将在海底用户和主目录下安装海底,因此我们需要创建一个名为“seafile”的新的Linux用户。

创建新用户

创建一个名为seafile的新用户进行安装:

useradd -m -s /bin/bash seafile

注意:

-m =为“/ home /”下的用户创建新的主目录。
-s / bin / bash =为用户定义shell。

下载Seafile

使用su命令切换到海员用户:

su - seafile

现在你在海底主目录,下载seafile server 5与wget命令:

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

提取海底档案并重命名:

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

现在您将被要求提供服务器详细信息。

server name =使用服务器主机名。
服务器ip或域 =使用我的服务器IP地址。
Seafile Data direcoty =只需按Enter键即可。
Seafile文件服务器端口 =只需按Enter键即可。

海底安装1

接下来,配置数据库。 我们已经创建了我们自己的安装数据库,所以选择号码“2”

现在您将被询问有关数据库配置文件:

主机的mysql =默认是localhost。
默认端口 = 3306。
用于seafile的MySQL用户 =使用我们在第3步中创建的用户 - “seafilecloud”。
MySQL密码 = seafilecloud用户的密码。
ccnet database =我们创建了数据库 - ccnet_db。
seafile database = seafile_db。
seahub database = seahub_db。

海底安装2

如果没有发生错误,可以按“Enter”确认安装。

海底安装3

等待脚本生成配置和数据库。

海底安装4

开始Seafile和Seahub

Seafile已安装,现在可以使用以下命令启动:

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

您将被要求为海底创建管理员用户,只需输入您的管理员电子邮件和密码即可。

开始海底和seahub

在这个阶段,您可以访问端口8000上的海底Web GUI。

第5步 - 安装和配置Nginx

Nginx是一个轻量级的Web服务器,具有低内存使用和CPU消耗。 在这一步中,我们将安装nginx,然后创建一个新的虚拟主机,以便反向代理访问seafile。 我们将为服务器上的连接启用https。

安装Nginx

使用zypper命令安装nginx Web服务器:

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,替换为海底安装路径 - '/ home / seafile / seafile-server / seahub'。

保存文件并退出编辑器,然后使用命令测试配置:

nginx -t

确保配置没有问题或错误。

配置Seafile使用您自己的域和HTTPS

切换到用户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步 - 开始海底和测试

安装了Nginx - 安装了MariaDB / MySQL,并安装了海底服务器。

使Nginx和MySQL从启动开始:

systemctl enable nginx
systemctl enable mysql

重新启动服务:

systemctl restart nginx
systemctl restart mysql

接下来,从海底用户开始海底和seahub:

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

所有服务都启动。

现在您可以使用服务器的URL访问海底服务器。 我的是:

cloud.kuonseafile.co

您将被重定向到seafile的https连接登录页面。

输入我们在第4步中创建的管理员用户详细信息。

海底登录

现在,您可以看到seafile文件管理器,并开始将文件上传到您的海底服务器。

海底文件管理员。

参考