0%

Seafile Pro 部署文档

1. 安装环境

1
2
3
4
5
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo yum install java-1.7.0-openjdk poppler-utils python-devel python-setuptools \
python-imaging MySQL-python mariadb-server python-memcached python-ldap \
python-urllib3

sudo pip install boto requests

vim /etc/yum.repos.d/nginx.repo

1
2
3
4
5
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/x86_64/$basearch/
gpgcheck=0
enabled=1

yum install nginx

2. 配置 mariadb

1
2
3
4
5
6
7
8
# 启动 mariadb
systemctl start mariadb

#设置为开机启动
systemctl enable mariadb

# 设置 root 密码
mysqladmin -u root password "newpass"

3. 安装 Seafile Pro

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# 创建程序目录,建议在 home 目录下,方便权限管理.
mkdir -p /home/haiwen

# 将下载获得的压缩包放在 /home/haiwen 目录下
[root@localhost haiwen]# ll
总用量 97492
-rw-r--r-- 1 root root 99831302 11月 19 15:40 seafile-pro-server_6.0.3_x86-64.tar.gz

tar xzf seafile-pro-server_6.0.3_x86-64.tar.gz
cd seafile-pro-server-6.0.3/

./setup-seafile-mysql.sh
Checking python on this machine ...
Checking python module: setuptools ... Done.
Checking python module: python-imaging ... Done.
Checking python module: python-mysqldb ... Done.

Checking for java ...Done.

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

https://github.com/haiwen/seafile/wiki

Press ENTER to continue
-----------------------------------------------------------------


What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] cloud

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] demo.neroxps.cn

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/home/haiwen/seafile-data" ]

Which port do you want to use for the seafile fileserver?
[ default "8082" ]

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 1

What is the host of mysql server?
[ default "localhost" ]

What is the port of mysql server?
[ default "3306" ]

What is the password of the mysql root user?
[ root password ]

verifying password of user root ... done

Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ]

Enter the password for mysql user "seafile":
[ password for seafile ]

Enter the database name for ccnet-server:
[ default "ccnet-db" ]

Enter the database name for seafile-server:
[ default "seafile-db" ]

Enter the database name for seahub:
[ default "seahub-db" ]

---------------------------------
This is your configuration
---------------------------------

server name: cloud
server ip/domain: demo.neroxps.cn

seafile data dir: /home/haiwen/seafile-data
fileserver port: 8082

database: create new
ccnet database: ccnet-db
seafile database: seafile-db
seahub database: seahub-db
database user: seafile



---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Generating ccnet configuration ...

done
Successly create configuration dir /home/haiwen/ccnet.
Generating seafile configuration ...

Done.
done
Generating seahub configuration ...

----------------------------------------
Now creating seahub database tables ...

----------------------------------------

creating seafile-server-latest symbolic link ... done




-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server: ./seafile.sh { start | stop | restart }
run seahub server: ./seahub.sh { start <port> | stop | restart <port> }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver: 8082
port of seahub: 8000

When problems occur, Refer to

https://github.com/haiwen/seafile/wiki

for information.
  • 设置 Seafile 启动脚本为全局可用,方便启动,无需切换到程序目录启动
1
2
ln -s /home/haiwen/seafile-server-latest/seafile.sh /usr/local/bin/seafile
ln -s /home/haiwen/seafile-server-latest/seahub.sh /usr/local/bin/seahub

4. 部署 nginx 反向代理

vim /etc/nginx/conf.d/seafile.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
server {
listen 80;
server_name demo.neroxps.cn;

proxy_set_header X-Forwarded-For $remote_addr;

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

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/haiwen/seafile-server-latest/seahub;
}
}
  • 取消默认配置文件
1
2
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
nginx -s reload
  • 启动 nginx 并设置为开机启动
1
2
systemctl start nginx
systemctl enable nginx
  • 开放防火墙规则
1
2
firewall-cmd --permanent --add-service http
firewall-cmd --reload
  • 启动 Seafile 测试
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
seafile start

# 由于我这个是免费版,所以只支持 3 用户的授权
** Message: seafile-controller.c(1084): loading seafdav config from /home/haiwen/conf/seafdav.conf

License file /home/haiwen/seafile-license.txt does not exist, allow at most 3 trial users
[11/22/16 15:04:50] ../common/session.c(139): using config file /home/haiwen/conf/ccnet.conf
Starting seafile server, please wait ...
** Message: seafile-controller.c(1084): loading seafdav config from /home/haiwen/conf/seafdav.conf

License file /home/haiwen/seafile-license.txt does not exist, allow at most 3 trial users
Seafile server started

Done.

seafile start-fastcgi
# 启动 seahub 时会要求设置管理员账号密码

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub (fastcgi) at 127.0.0.1:8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] neroxps@gmail.com

What is the password for the admin account?
[ admin password ]

Enter the password again:
[ admin password again ]



----------------------------------------
Successfully created seafile admin
----------------------------------------




Seahub is started

Done.

访问 http://demo.neroxps.cn
成功 可以登录 但是无法上传.

打开 http://demo.neroxps.cn/sys/settings/

1
2
SERVICE_URL = http://demo.neroxps.cn
FILE_SERVER_ROOT = http://demo.neroxps.cn/seafhttp

测试 上传成功.

5. 配置 memcached 加速我们的 web 服务

  • 安装 memcached
1
2
3
yum install memcached
systemctl start memcached
systemctl enable memcached
  • 修改 /home/haiwen/conf/seahub_settings.py 加入以下内容
1
2
3
4
5
6
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
  • 删除 seahub_settings.pyc 重启 seahub 使配置生效
    1
    2
    rm /home/haiwen/conf/seahub_settings.pyc -f
    seahub restart-fastcgi

6. 部署 office 预览功能

  • 安装 LibreOffice4.1+ 和 Python-UNO
1
yum install libreoffice libreoffice-headless libreoffice-pyuno # centos7 默认安装 libreoffice-4.3.7.2-5.el7_2.1.x86_64 符合使用要求
  • 安装中文字体
    将 windows 下需要用到的字体拷贝到 Centos 下.
1
2
3
4
5
6
7
8
9
10
11
mkdir /usr/share/fonts/chinese
[root@localhost chinese]# ll
总用量 124316
-rw-r--r-- 1 root root 16217976 7月 17 06:28 Dengb.ttf
-rw-r--r-- 1 root root 15151172 7月 17 06:28 Dengl.ttf
-rw-r--r-- 1 root root 16092228 7月 17 06:28 Deng.ttf
-rw-r--r-- 1 root root 16247072 7月 16 19:42 msyhbd.ttc
-rw-r--r-- 1 root root 12003540 7月 16 19:42 msyhl.ttc
-rw-r--r-- 1 root root 23607740 7月 16 19:42 msyh.ttc
-rw-r--r-- 1 root root 9751720 7月 17 06:28 simhei.ttf
-rw-r--r-- 1 root root 18214356 7月 16 19:42 simsun.ttc
  • 修改文件权限
1
2
cd ..
chmod -R 755 /usr/share/fonts/chinese
  • 安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件
1
2
yum -y install ttmkfdir
ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
  • 修改字体配置文件了,首先通过编辑器打开配置文件
1
2
3
4
5
6
7
8
9
vim /etc/fonts/fonts.conf
--- Font directory list ---

<dir>/usr/share/fonts</dir>
<dir>/usr/share/fonts/chinese</dir> ###加入这行
<dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
--- the following element will be removed in the future ---
<dir>~/.fonts</dir>
  • 刷新字体缓存
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
fc-cache
fc-list
/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/liberation/LiberationSerif-Italic.ttf: Liberation Serif:style=Italic
/usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf: DejaVu Serif:style=Italic
/usr/share/fonts/liberation/LiberationSans-Bold.ttf: Liberation Sans:style=Bold
/usr/share/fonts/liberation/LiberationMono-Bold.ttf: Liberation Mono:style=Bold
/usr/share/fonts/chinese/msyhbd.ttc: Microsoft YaHei UI:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kalın,Krepko,Lodia
/usr/share/fonts/chinese/Deng.ttf: 等线,DengXian:style=Regular
/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf: DejaVu Sans Mono:style=Bold Oblique
/usr/share/fonts/dejavu/DejaVuSansCondensed-Oblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique
/usr/share/fonts/dejavu/DejaVuSansCondensed-Bold.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold,Bold
/usr/share/fonts/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/liberation/LiberationSerif-BoldItalic.ttf: Liberation Serif:style=Bold Italic
/usr/share/fonts/chinese/simsun.ttc: 宋体,SimSun:style=常规,Regular
/usr/share/X11/fonts/Type1/c0611bt_.pfb: Courier 10 Pitch:style=Bold Italic
/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/chinese/msyh.ttc: 微软雅黑,Microsoft YaHei:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/X11/fonts/Type1/UTBI____.pfa: Utopia:style=Bold Italic
/usr/share/fonts/liberation/LiberationSerif-Regular.ttf: Liberation Serif:style=Regular
/usr/share/fonts/liberation/LiberationSerif-Bold.ttf: Liberation Serif:style=Bold
/usr/share/fonts/chinese/simhei.ttf: 黑体,SimHei:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/fonts/chinese/Dengl.ttf: 等线,DengXian,DengXian Light,等线 Light:style=Light,Regular
/usr/share/fonts/chinese/msyh.ttc: Microsoft YaHei UI:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/fonts/liberation/LiberationMono-Italic.ttf: Liberation Mono:style=Italic
/usr/share/fonts/google-crosextra-caladea/Caladea-Bold.ttf: Caladea:style=Bold
/usr/share/X11/fonts/Type1/c0419bt_.pfb: Courier 10 Pitch:style=Regular
/usr/share/fonts/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/google-crosextra-carlito/Carlito-BoldItalic.ttf: Carlito:style=Bold Italic
/usr/share/fonts/chinese/msyhl.ttc: 微软雅黑,Microsoft YaHei,Microsoft YaHei Light,微软雅黑 Light:style=Light,Regular
/usr/share/fonts/chinese/msyhbd.ttc: 微软雅黑,Microsoft YaHei:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kalın,Krepko,Lodia
/usr/share/fonts/liberation/LiberationSans-BoldItalic.ttf: Liberation Sans:style=Bold Italic
/usr/share/fonts/google-crosextra-carlito/Carlito-Regular.ttf: Carlito:style=Regular
/usr/share/fonts/dejavu/DejaVuSerifCondensed-BoldItalic.ttf: DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold Italic,Bold Italic
/usr/share/X11/fonts/Type1/c0648bt_.pfb: Bitstream Charter:style=Regular
/usr/share/fonts/chinese/simsun.ttc: 新宋体,NSimSun:style=常规,Regular
/usr/share/fonts/chinese/msyhl.ttc: Microsoft YaHei UI,Microsoft YaHei UI Light:style=Light,Regular
/usr/share/fonts/dejavu/DejaVuSerifCondensed-Bold.ttf: DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold,Bold
/usr/share/fonts/chinese/Dengb.ttf: 等线,DengXian:style=Bold
/usr/share/fonts/google-crosextra-carlito/Carlito-Italic.ttf: Carlito:style=Italic
/usr/share/fonts/opensymbol/opens___.ttf: OpenSymbol:style=Regular
/usr/share/fonts/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf: DejaVu Sans Mono:style=Oblique
/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/google-crosextra-caladea/Caladea-Regular.ttf: Caladea:style=Regular
/usr/share/X11/fonts/Type1/cursor.pfa: Cursor:style=Regular
/usr/share/fonts/dejavu/DejaVuSerifCondensed.ttf: DejaVu Serif,DejaVu Serif Condensed:style=Condensed,Book
/usr/share/X11/fonts/Type1/UTB_____.pfa: Utopia:style=Bold
/usr/share/fonts/liberation/LiberationMono-Regular.ttf: Liberation Mono:style=Regular
/usr/share/X11/fonts/Type1/c0583bt_.pfb: Courier 10 Pitch:style=Bold
/usr/share/fonts/dejavu/DejaVuSerifCondensed-Italic.ttf: DejaVu Serif,DejaVu Serif Condensed:style=Condensed Italic,Italic
/usr/share/X11/fonts/Type1/UTI_____.pfa: Utopia:style=Italic
/usr/share/fonts/google-crosextra-caladea/Caladea-Italic.ttf: Caladea:style=Italic
/usr/share/fonts/google-crosextra-carlito/Carlito-Bold.ttf: Carlito:style=Bold
/usr/share/fonts/liberation/LiberationSans-Italic.ttf: Liberation Sans:style=Italic
/usr/share/X11/fonts/Type1/c0582bt_.pfb: Courier 10 Pitch:style=Italic
/usr/share/fonts/dejavu/DejaVuSansCondensed.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed,Book
/usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf: DejaVu Serif:style=Bold Italic
/usr/share/fonts/dejavu/DejaVuSans-ExtraLight.ttf: DejaVu Sans,DejaVu Sans Light:style=ExtraLight
/usr/share/fonts/liberation/LiberationMono-BoldItalic.ttf: Liberation Mono:style=Bold Italic
/usr/share/fonts/dejavu/DejaVuSansCondensed-BoldOblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold Oblique,Bold Oblique
/usr/share/X11/fonts/Type1/c0633bt_.pfb: Bitstream Charter:style=Bold Italic
/usr/share/fonts/liberation/LiberationSans-Regular.ttf: Liberation Sans:style=Regular
/usr/share/X11/fonts/Type1/c0649bt_.pfb: Bitstream Charter:style=Italic
/usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf: DejaVu Sans:style=Oblique
/usr/share/X11/fonts/Type1/c0632bt_.pfb: Bitstream Charter:style=Bold
/usr/share/fonts/google-crosextra-caladea/Caladea-BoldItalic.ttf: Caladea:style=Bold Italic,Italic
/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf: DejaVu Sans:style=Bold Oblique
/usr/share/X11/fonts/Type1/UTRG____.pfa: Utopia:style=Regular

看到新添加的字体即可.

测试预览,已正常

7. 部署在线 libreoffice 编辑

  • 给域名申请一个 SSL 证书,这里我已经有,不演示了.
  • 我给 libreoffice 的域名是 test.neroxps.cn 已经申请 letsencrypt 的 SSL 证书.并且放到该目录/etc/ssl/test.neroxps.cn
  • 使用 Nginx 的网上服务collabora,配置文件例如:
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
vim /etc/nginx/conf.d/office.conf
server {
listen 443 ssl;
server_name test.neroxps.cn;

ssl_certificate /etc/ssl/test.neroxps.cn/fullchain1.pem;
ssl_certificate_key /etc/ssl/test.neroxps.cn/privkey1.pem;

# static files
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}

# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}

# websockets, download, presentation and image upload
location ^~ /lool {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
}

# 重置 nginx 配置
nginx -s reload
  • 修改防火墙启用 https 服务
1
2
firewall-cmd --permanent --add-service https
firewall-cmd --reload
  • 安装 docker
1
yum -y install docker

登陆后取得专属加速器地址,类似这样https://xxxxxx.mirror.aliyuncs.com

  • 配置Docker加速器
1
2
3
vim /etc/sysconfig/docker

OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://xxxxxx.mirror.aliyuncs.com' #修改 OPTIONS 这句,添加阿里云加速器
  • 启动 docker 并设置为开机启动
1
2
systemctl start docker
systemctl enable docker
  • 安装/启动 libreoffice 在线服务
1
2
3
4
5
# 下载collabora/code
docker pull collabora/code

# 启动 collabora/code 注意,这里的域名是 seafile 的域名,并不是 office 在线服务的域名
docker run -d -t -p 9980:9980 -e "domain=demo\\.neroxps\\.cn" --restart always --cap-add MKNOD collabora/code
  • 修改 seahub_settings.py 启用在线 office 编辑功能.

vim /home/haiwen/conf/seahub_settings.py
** 注意修改 OFFICE_WEB_APP_BASE_URL 为 上面 nginx 的域名 **

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
# Enable LibreOffice Online
ENABLE_OFFICE_WEB_APP = True

# Url of LibreOffice Online's discovery page
# The discovery page tells Seafile how to interact with LibreOffice Online when view file online
# You should change `https://collabora-online.seafile.com/hosting/discovery` to your actual LibreOffice Online server address
OFFICE_WEB_APP_BASE_URL = 'https://test.neroxps.cn/hosting/discovery'

# Expiration of WOPI access token
# WOPI access token is a string used by Seafile to determine the file's
# identity and permissions when use LibreOffice Online view it online
# And for security reason, this token should expire after a set time period
WOPI_ACCESS_TOKEN_EXPIRATION = 30 * 60 # seconds

# List of file formats that you want to view through LibreOffice Online
# You can change this value according to your preferences
# And of course you should make sure your LibreOffice Online supports to preview
# the files with the specified extensions
OFFICE_WEB_APP_FILE_EXTENSION = ('ods', 'xls', 'xlsb', 'xlsm', 'xlsx','ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')

# Enable edit files through LibreOffice Online
ENABLE_OFFICE_WEB_APP_EDIT = True

# types of files should be editable through LibreOffice Online
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = ('ods', 'xls', 'xlsb', 'xlsm', 'xlsx','ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')
  • 删除 seahub_settings.pyc 文件
    rm seahub_settings.pyc -f

  • 重启 seahub
    seahub restart-fastcgi