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
第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个数据库:
- ccnet数据库
- 海底数据库
- 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;
所有数据库都准备好进行海底安装。
第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键即可。
接下来,配置数据库。 我们已经创建了我们自己的安装数据库,所以选择号码“2” 。
现在您将被询问有关数据库配置文件:
主机的mysql =默认是localhost。
默认端口 = 3306。
用于seafile的MySQL用户 =使用我们在第3步中创建的用户 - “seafilecloud”。
MySQL密码 = seafilecloud用户的密码。
ccnet database =我们创建了数据库 - ccnet_db。
seafile database = seafile_db。
seahub database = seahub_db。
如果没有发生错误,可以按“Enter”确认安装。
等待脚本生成配置和数据库。
开始Seafile和Seahub
Seafile已安装,现在可以使用以下命令启动:
./seafile.sh start
./seahub.sh start
您将被要求为海底创建管理员用户,只需输入您的管理员电子邮件和密码即可。
在这个阶段,您可以访问端口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访问海底服务器。 我的是:
您将被重定向到seafile的https连接登录页面。
输入我们在第4步中创建的管理员用户详细信息。
现在,您可以看到seafile文件管理器,并开始将文件上传到您的海底服务器。