如何安装Seafile在Ubuntu 16.04(Xenial Xerus)

Seafile是一个私有云,如Dropbox,mega.co.nz等。 Seafile基于python ,它是开源的 ,因此您可以创建自己的私有云,并且将更加安全。

Seafile支持加密库,使您的数据更安全。 要加密库中的文件,您需要在创建库时设置密码。 密码不会存储在Seafile云端。 因此,即使是服务器的管理员也无法在没有密码的情况下查看加密的数据。

本教程显示了在Ubuntu 16.04上安装Seafile。

先决条件

  • 具有2GB RAM的服务器
  • Ubuntu 16.04 64位

安装海底

第1步 - 安装必要的依赖关系

为了执行安装,海底需要一些依赖:

  • openjdk-8jre
  • LibreOffice
  • Popler-utils
  • mysql-server
  • Python-pip等。
apt-get install openjdk-8-jre poppler-utils libreoffice libreoffice-script-provider-python libpython2.7 python-pip mysql-server python-setuptools python-imaging python-mysqldb python-memcache ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy python-pip

安装boto与pip:

pip install boto

如果您有关于区域设置的错误,请运行以下所有命令:

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

第2步 - 创建一个新的“seafile”用户

在此步骤中,我们将为海底安装创建一个新用户。 我们将以此用户身份运行海底服务器。

为安装创建新的“seafile”用户。

useradd -m -s /bin/bash seafile
passwd seafile

第3步 - 下载并提取海底档案

海底可以从官方网站下载,请根据您的需要下载。 这里我使用Ubuntu 15.04 64位。

用wget下载Seafile存档:

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

提取seafile-server_5.1.4_x86-64.tar.gz并将目录重命名为'seafile-server'

tar -xzf seafile-server_5.1.4_x86-64.tar.gz
mv seafile-server-5.1.4/ seafile-server/

因此,海底安装的目录位于海员用户主目录中。

第4步 - 创建数据库

Seafile需要3个数据库:

  1. ccnet服务器
  2. 海底服务器
  3. seahub

现在用“退出”返回到root用户,然后登录到你的mysql服务器。

使用一个用户创建3个数据库,并将用户授予所有数据库。

#Login to mysql
mysql -u root -p
    
#Create database
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';

#Create user
create user seacloud@localhost identified by 'yourpassword';

#Grant user to the databases
grant all privileges on ccnet_db.* to seacloud@localhost identified by 'yourpassword';
grant all privileges on seafile_db.* to seacloud@localhost identified by 'yourpassword';
grant all privileges on seahub_db.* to seacloud@localhost identified by 'yourpassword';
flush privileges;

第5步 - 安装海底

登录到'seafile'用户,并转到安装目录'seafile-server /',运行setup-seafile-mysql.sh文件。

su - seafile
cd seafile-server/
./setup-seafile-mysql.sh

只需按Enter键即可。

  • 服务器名称 - 我们将使用seafile-server
  • 域/ IP - cloud.mydomain.co
  • Seafile数据目录 - 默认数据目录
  • Seafile服务器端口配置。

然后,您将被要求进行数据库设置。 您可以选择数字2 ,因为在第4步中创建了所有数据库。

Seafile Database Configuration

安装了Seafile。 开始seafile和seahub服务器:

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

您将被询问有关管理电子邮件和密码的管理电子邮件和密码。

Configure seafile admin

如果管理员用户已创建。 现在停止海水,接下来我们将为海底服务器创建一个服务文件:

./seafile.sh stop
./seahub.sh stop

第6步 - 配置Seafile和Seahub服务文件

接下来,我们将配置seafile和seahub服务。 我们将为海底和seahub服务器创建新的服务文件。

作为root用户,转到'/ lib / systemd / system /'目录,并使用vim编辑器创建一个新的seafile-server.service文件:

cd /lib/systemd/system/
vim seafile.service

粘贴海底服务配置如下:

[Unit]
Description=Seafile Server
After=network.target mariadb.service

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

[Install]
WantedBy=multi-user.target

保存并退出。

现在创建新的seahub服务文件seahub.service

vim seahub.service

粘贴配置如下:

[Unit]
Description=Seafile Hub
After=network.target seafile.target

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

[Install]
WantedBy=multi-user.target

保存并退出。

重新加载systemd服务并开始seafile和seahub:

systemctl daemon-reload
systemctl start seafile
systemctl start seahub

确保没有错误,通过检查服务端口检查seafile和seahub服务器是否正在运行。

netstat -plntu

Seafile and seahub started

您将看到80%的海底端口和seahub端口8000

第7步 - 安装和配置Nginx作为反向代理

在此步骤中,我们将从Ubuntu存储库安装nginx,然后将其配置为8000端口和8002端口上的seafile-server的反向代理服务器。

使用apt-get命令安装nginx:

apt-get install nginx -y

安装完成后,转到nginx虚拟主机目录,并使用vim创建一个新的虚拟主机文件cloud.mydomain.conf

cd /etc/nginx/sites-available/
vim cloud.mydomain.conf

粘贴虚拟主机配置如下:

server {
    listen 80;
    server_name cloud.mydomain.co;

    proxy_set_header X-Forwarded-For $remote_addr;
    # Reverse proxy for seafile
    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;

        access_log      /var/log/nginx/seahub.access.log;
        error_log       /var/log/nginx/seahub.error.log;
        fastcgi_read_timeout 36000;
    }
    # Reverse Proxy for seahub
    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;
    }
    #CHANGE THIS PATH WITH YOUR OWN DIRECTORY
    location /media {
        root /home/seafile/seafile-server/seahub;
    }
}

保存并退出。

我将使用'cloud.mydomain.co'作为域名。

接下来,通过创建指向“sites-enabled”目录的链接启用新的虚拟主机并重新启动nginx。

启用新的虚拟主机:

ln -s /etc/nginx/sites-available/cloud.mydomain.co

测试并重新启动nginx Web服务器。

nginx -t
systemctl restart nginx

第8步 - 使用Web浏览器进行测试

打开浏览器cloud.mydomain.co ,并尝试使用您的管理员帐户登录。

Login to seafile server

Seafile管理仪表板:

seafile under nginx webserver

结论

随着云应用的广泛应用,Seafile是一种私有云解决方案,在当天很有用 。 使用库/文件夹中的加密功能 ,可以使数据更加安全。 并且还可以轻松配置它 ,使其易于在您的服务器中实现。

链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏