前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Ubuntu 16.04上安装Seafile并配置Nginx

在Ubuntu 16.04上安装Seafile并配置Nginx

作者头像
Techeek
发布于 2018-09-06 01:22:08
发布于 2018-09-06 01:22:08
4.1K0
举报
文章被收录于专栏:云计算云计算

在Ubuntu 16.04上安装Seafile并配置Nginx

Seafile是一个跨平台的文件托管工具,包含了适用于Linux和Windows的服务器应用程序,以及适用于AndroidiOS,Linux,OS X和Windows的GUI客户端。它支持文件版本控制和快照,双重身份验证,WebDAV(Web-based Distributed Authoring and Versioning),并且可以配合Nginx和Apache使用以启用HTTPS。

Seafile有两个版本:免费的开源社区版和付费的专业版。虽然专业版最多可供3位用户免费使用,本教程还是将使用Seafile的社区版本,使用Nginx作为服务器提供HTTPS连接,后端使用MySQL数据库

准备Ubuntu环境

注意

本指南是为非root用户编写的,会在需要提升权限的命令之前加上sudo。如果您不熟悉sudo命令,请参阅Linux用户和用户组指南。

1.升级系统:

代码语言:txt
AI代码解释
复制
apt update && apt upgrade

2.使用root权限创建标准用户账户。本例中,我们将创建一个名为 sfadmin 的用户:

代码语言:txt
AI代码解释
复制
adduser sfadmin
adduser sfadmin sudo

3.注销您已登录Linode的root账户,然后以 sfadmin 的身份重新登录:

代码语言:txt
AI代码解释
复制
exit
ssh sfadmin@<your_linode's_ip>

4.现在您应该已经以 sfadmin 的身份登录到您的Linode服务器。请参考保护您的服务器安全指南以提高SSH访问的安全性。

5.设置UFW防火墙规则。UFW是Ubuntu的防火墙控制器,它让设置防火墙规则变得更加简单。有关UFW的更多信息,请参阅使用UFW配置防火墙指南。使用以下命令允许SSH和HTTP(S)通过防火墙:

代码语言:txt
AI代码解释
复制
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

之后检查防火墙规则的状态,并以标号列表的形式列出:

代码语言:txt
AI代码解释
复制
sudo ufw status numbered

输出应与下面的示例相似:

代码语言:txt
AI代码解释
复制
Status: active

To                         Action      From
--                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere
[ 2] 80                         ALLOW IN    Anywhere
[ 3] 443                        ALLOW IN    Anywhere
[ 4] 22 (v6)                    ALLOW IN    Anywhere (v6)
[ 5] 80 (v6)                    ALLOW IN    Anywhere (v6)
[ 6] 443 (v6)                   ALLOW IN    Anywhere (v6)

注意

如果不希望UFW在22端口上允许来自IPv4与IPv6的SSH连接,您可以删除对应的规则。例如,您可以运行sudo ufw delete 4命令来删除允许来自IPv6的SSH连接通过的规则。

6.设置Linode主机名,这里我们设置为 seafile

代码语言:txt
AI代码解释
复制
sudo hostnamectl set-hostname seafile

7.在/etc/hosts中添加新主机名。该文件的第二行应该类似下面的示例:

代码语言:txt
AI代码解释
复制
127.0.1.1    members.linode.com     seafile

8.首次启动时,您的Linode服务器时区会被设置为UTC(Coordinated Universal Time,世界协调时间)。更改时区是可选项,如果您希望这么做,请运行以下命令:

代码语言:txt
AI代码解释
复制
sudo dpkg-reconfigure tzdata

安装并配置MySQL

1.安装程序将要求您为MySQL的root用户设置密码。请确保您安装的是mysql-server-5.7,而不是mysql-server。这是因为如果您通过mysql-server包安装MySQL,一个来自上游的问题将导致MySQL服务在启动时出现错误。

代码语言:txt
AI代码解释
复制
sudo apt install mysql-server-5.7

2.运行 mysql_secure_installation 脚本:

代码语言:txt
AI代码解释
复制
sudo mysql_secure_installation

有关MySQL的更多信息,请参阅在Ubuntu上安装MySQL指南。

创建可供Nginx使用的TLS证书

如果您还没有SSL/TLS证书,可以现在创建一个。这是一个自签名证书,并让Web浏览器拒绝未经认证的连接。您应该验证浏览器证书的SHA256指纹与服务器证书的SHA256指纹是否相同,并在浏览器中添加例外以永久信任该证书。

1.切换到证书文件存储的路径,并使用密钥创建服务器证书:

代码语言:txt
AI代码解释
复制
cd /etc/ssl
sudo openssl genrsa -out privkey.pem 4096
sudo openssl req -new -x509 -key privkey.pem -out cacert.pem

安装并配置Nginx

1.通过Ubuntu的软件库安装Nginx:

代码语言:txt
AI代码解释
复制
sudo apt install nginx

2.创建站点配置文件。您唯一需要修改的一行是server_name。有关HTTPS的更多配置选项,请参阅Nginx的TLS最佳实践指南。

代码语言:txt
AI代码解释
复制
server{
    listen 80;
    server_name example.com;
    rewrite ^ https://$http_host$request_uri? permanent;
    proxy_set_header X-Forwarded-For $remote_addr;
    }
 server {
    listen 443 ssl http2;
    ssl on;
    ssl_certificate /etc/ssl/cacert.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
    server_name example.com;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    add_header   Strict-Transport-Security "max-age=31536000; includeSubdomains";
    add_header   X-Content-Type-Options nosniff;
    add_header   X-Frame-Options DENY;
    ssl_session_cache shared:SSL:10m;
    ssl_ciphers  "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH !RC4";
    ssl_prefer_server_ciphers   on;

    fastcgi_param   HTTPS               on;
    fastcgi_param   HTTP_SCHEME         https;

  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;
        client_max_body_size 0;
    }

    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;
        proxy_request_buffering off;
    }

    location /media {
        root /home/sfadmin/sfroot/seafile-server-latest/seahub;
    }
    }

3.禁用默认的站点配置并启用刚刚创建的站点配置:

代码语言:txt
AI代码解释
复制
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf

4.运行Nginx配置测试并重启Web服务器。如果测试失败,终端会显示简要的错误描述信息,以便您能借此解决问题。

代码语言:txt
AI代码解释
复制
sudo nginx -t
sudo systemctl restart nginx

安装并配置Seafile

1.Seafile手册建议使用特定的目录结构来简化日后的升级过程。在这里我们也会这样做,只不过我们把在sfadmin家目录下创建的目录命名为sfroot,而不是Seafile手册示例中的haiwen

代码语言:txt
AI代码解释
复制
mkdir ~/sfroot && cd ~/sfroot

2.下载Seafile CE Linux服务端安装文件的64位版本。您需要从Seafile官网获取对应的下载链接。取得下载URL后,使用wget命令将其下载至~/sfadmin/sfroot

代码语言:txt
AI代码解释
复制
wget <link>

3.解压tarball,并将压缩包移动到installed目录:

代码语言:txt
AI代码解释
复制
tar -xzvf seafile-server*.tar.gz
mkdir installed && mv seafile-server*.tar.gz installed

4.安装Seafile的依赖包:

代码语言:txt
AI代码解释
复制
sudo apt install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-mysqldb python-memcache python-urllib3

5.运行安装脚本:

代码语言:txt
AI代码解释
复制
cd seafile-server-* && ./setup-seafile-mysql.sh

6.启动服务端程序。

代码语言:txt
AI代码解释
复制
./seafile.sh start
./seahub.sh start-fastcgi

seahub.sh脚本将创建用于登录Seafile的管理员用户账户。系统会要求您输入登录用的电子邮件账户并创建密码。

7.现在可以通过您Linode服务器的IP地址,或是之前在Nginx的seafile.conf配置文件中设置的server_name,在Web浏览器中访问Seafile。如之前所说,Nginx将重定向至HTTPS连接,由于您创建了自签名证书,因此您的浏览器将警告该HTTPS连接不是私有的。忽略浏览器警告并继续访问该网址,您将看到Seafile的登陆界面。

设置Seafile在服务器启动时自动启动

seafile.shseahub.sh脚本并不会自动在您的Linode服务器重启后运行,需要我们手动进行设置。

1.创建systemd单元文件:

/etc/systemd/system/seafile.service

代码语言:txt
AI代码解释
复制
[Unit]
Description=Seafile Server
After=network.target mysql.service

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

[Install]
WantedBy=multi-user.target

/etc/systemd/system/seahub.service

代码语言:txt
AI代码解释
复制
[Unit]
Description=Seafile Hub
After=network.target seafile.service

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

[Install]
WantedBy=multi-user.target

2.之后启动服务:

代码语言:txt
AI代码解释
复制
sudo systemctl enable seafile
sudo systemctl enable seahub

您可以使用以下命令验证服务是否成功启动:

代码语言:txt
AI代码解释
复制
sudo systemctl status seafile
sudo systemctl status seahub

3.重新启动Linode服务器验证自启动脚本是否生效。服务器启动后,当运行上一步中的验证命令时,Seafile和Seahub都应处于活跃状态。同样的,此时您应该也可以在浏览器中访问Seafile服务。

升级Seafile

有多种方法可供您升级Seafile。请参阅Seafile手册以了解最适合您需求的升级说明。

更多信息

要想获取该主题的其他信息,你可能需要参考以下资源。虽然我们出于帮助您的目的提供了这些资料,但请注意我们无法保证这些站外资源的准确性与时效性。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何使用 Seafile 搭建个人网盘
Seafile 是一款安全、高性能的开源网盘(云存储)软件。Seafile 提供了主流网盘(云盘)产品所具有的功能,包括文件同步、文件共享等。在此基础上,Seafile 还提供了高级的安全保护功能以及群组协作功能。由于 Seafile 是开源的,你可以把它部署在私有云的环境中,作为私有的企业网盘。Seafile 支持 Mac、Linux、Windows 三个桌面平台,支持 Android 和 iOS 两个移动平台。
硬盘侠
2018/10/22
21.7K2
如何使用 Seafile 搭建个人网盘
18.04 Seafile-Sever 7.1.5 安装
曾经安装过很多次Seafile,现在又要重新开始部署了;今天简要记录一下,作为以后的参考;
西湖醋鱼
2021/02/01
8260
一键配置 Seafile 云盘并开启 https 访问
前些日子终于受够了臃肿的 Nextcloud ,将其完全卸载,寻觅已久之后选择了 Seafile 云盘。之所以放弃 Nextcloud,大致有以下原因:
宋天伦
2020/07/16
4.5K0
搭建一个属于自己 可多平台同步的私有云盘 —— Seafile
前段时间,各个网盘纷纷下线,导致目前能用的大网盘,也就几个,还都限速… 然后很早的时候就有人想让我写个 自建私有云盘(网盘)的教程了,我以前用过 owncloud,但是这个玩意,安装后进去一看,一堆报错的,看着就头大,然后网上查了查,也有人安利,最终我选择了 Seafile,我对这类程序也不了解,就先写个Seafile教程好了。 Seafile 简介 Seafile 是一个开源的文件云存储平台,解决文件集中存储、同步、多平台访问的问题,注重安全和性能。 Seafile 通过“资料库”来分类管理文件,每个资料
Zip
2018/07/20
5.2K0
Ubuntu 搭建 Seafile
本文档用来说明通过预编译好的安装包来安装并运行基于 MySQL/MariaDB 的 Seafile 服务器。(MariaDB 是 MySQL 的分支)
木制robot
2018/10/09
3.6K0
使用Seafile搭建个人专属私有云盘
Seafile是一款强大优秀的云同步软件,拥有跨平台文件同步、移动端文件访问、挂载盘、文件共享和权限控制、文件锁定、文件版本管理和资料库镜像、在线编辑和协同编辑、审计日志等功能。下面演示一下该软件安装步骤。
兔云小新LM
2021/01/04
9.8K0
使用Seafile搭建个人专属私有云盘
Seafile 私有云盘的简单使用 – 支持 Windows、移动端和 Mac 客户端
上周安装了 Seafile 私有云盘,整体过程还是蛮快的,十分钟就可以搞定一个私有云盘了。这种私有云盘一般都是多人协作或者分享内容使用的,或者你个人有文件需要到处使用的情况都是很方便的。今天我们在 windows 系统中使用Seafile 客户端链接体验一下Seafile 私有云盘使用。 1、需要注意的是 Seafile 程序在 Centos6 环境下会报错不能用。这个需要 CentOS7 系统和 python2.7 以上版本才能正常运行。 2、为了以后使用方便,先把 Seafile 设置为开机启动,否则重
魏艾斯博客www.vpsss.net
2018/06/01
6.5K0
[seafile]seafile迁移和onlyoffice整合
要点是数据库同步,我使用mysql,所以先导入mysql数据库再执行seafile安装脚本即可。基本步骤分三部:
用户9314062
2022/05/20
1.4K0
NextCloud私有云盘安装部署记录
描述:由于个人家里的NAS以及公司团队对私有网盘的进行日常工作文件同步以及协同办公的需求,所以有了这篇文章,讲解记录从选项到安装以及同步使用等相关操作;
全栈工程师修炼指南
2022/09/29
25K0
NextCloud私有云盘安装部署记录
centos搭建个人网盘
参考:腾讯云手动实验https://cloud.tencent.com/developer/labs/lab/10093 安装Seafile 安装依赖环境 [root@localhost ~]# yum -y install python python-setuptools python-imaging python-ldap \ python-memcached MySQL-python mariadb mariadb-server 启动mariadb服务 [root@localhost ~]# syst
互联网-小阿宇
2022/11/21
2.9K0
centos搭建个人网盘
自建 seafile pro 网盘
Seafile 是国产开源的一个自建网盘,作为网盘十分优越,客户端支持多平台,支持团队协作,可以在线编辑Office文件,最重要的是支持自行部署。
鹏程
2023/07/24
9320
自建 seafile pro 网盘
seafile配置全文搜索
可以在 seafevents.conf 中设置 [INDEX FILES] 选项来控制文件搜索的行为。你需要重新启动 seafile 和 seahub 使它们生效。
鹏程
2023/07/24
9020
CENTOS安装seafile专业版
seafile是个很好的开源云盘系统,服务端和客户端都支持WINDOWS、linux、苹果等系统,客户端也支持安卓手机系统。在国内各大云盘厂商集体“跑路”货服务缩水的的情况下,自建一个云盘是个不错的选择。之前360关闭云盘后,我买了百度云盘一年。但是百度云盘后来的文件“历史版本”功能严重缩水,只支持.txt后缀的文本文件,而以前是所有文件都可以有“历史版本”。所以就果断停止续费了。 回来说正题,seafile服务器端有社区版和专业版。其中专业版可以免费使用3个用户。我是自用,3个用户足够用, 所以首选安装专
用户2135432
2018/06/04
5K0
CentOS 6下安装Seafile 2
1. 环境准备 1.1 centos6.4_64 最小化安装 yum -y install httpd  ##部署在apache之后,参考https://github.com/haiwen/seafile/wiki/Deploy-Seafile-with-apache yum -y install install Python python-setuptools python-simplejson python-imaging sqlite3  ##系统默认是python2.6 yum -y install  apr apr-devel httpd-devel libtool  ##安装fastcgi需要用到 yum update -y chkconfig postfix off /etc/ini t.d/postfix stop  ##关闭邮件服务 reboot
星哥玩云
2022/07/03
3090
centos搭建个人网盘
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101910.html原文链接:
全栈程序员站长
2021/06/08
3.1K0
centos搭建个人网盘
如何在Ubuntu 16.04上安装和配置GitLab
GitLab CE或Community Edition是一个开源应用程序,主要用于托管Git存储库,还有其他与开发相关的功能,如问题跟踪。它旨在使用你自己的基础架构进行托管,并且可以灵活地部署为开发团队的内部存储库,公开作为与用户交互的方式,甚至可以作为贡献者托管自己项目的方式。
楠宝宝
2018/08/03
2.1K0
如何在Ubuntu 16.04上安装和配置GitLab
带你认识 flask linux 部署
当提到“传统托管”时,意思是应用是手动或通过原始服务器机器上的脚本安装部署的。该过程涉及安装应用程序、其依赖项和生产规模的Web服务器,并配置系统以确保其安全。
公众号---人生代码
2019/11/27
1.3K0
如何在Ubuntu 16.04中安装Linux,Nginx,MySQL,PHP(LNMP堆栈)
LNMP软件堆栈是一组可用于为动态网页和Web应用程序提供服务的软件。它是一个描述带有Nginx Web服务器的Linux操作系统的首字母缩写词。其后端数据存储在MySQL数据库中,动态处理由PHP处理。
乌鸦
2018/08/10
2.1K0
Phabricator安装和配置过程记录
Phabricator的安装过程比较繁琐,为了保证得到可靠的过程,步骤在以下公有云平台:
音视频_李超
2020/04/03
4.5K0
解决Seafile局域网访问失败
在折腾安装完Seafile后,发现局域网无法访问树莓派上的Seafile,只能通过树莓派本机127.0.0.2:8000访问
SAnBlog
2020/08/18
3.3K0
相关推荐
如何使用 Seafile 搭建个人网盘
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档