前言:
如今同学们对“ubuntu中v脚本怎么运行”都比较珍视,姐妹们都需要分析一些“ubuntu中v脚本怎么运行”的相关资讯。那么小编同时在网上汇集了一些对于“ubuntu中v脚本怎么运行””的相关知识,希望看官们能喜欢,同学们一起来了解一下吧!准备环境
操作系统:Ubuntu server 20.04
应用服务器:Seafile v8.0
安装方式:VM下脚本安装,网络配置为NAT模式
安装说明:一键安装脚本可以快速在Ubuntu 18.04/20.04系统上安装和部署Seafile服务器,并配置好MariaDB、Memcached、WebDAV、Ngnix和开机自动启动脚本。
注意事项:Seafile server分为社区版和专业版,社区版存在很多限制,建议安装专业版;
下载脚本和安装包
1、下载Seafile server安装脚本
下载脚本:# wget
Github脚本下载:
注意!下载非常慢,多试几次就行;或使用网页打开直接复制脚本代码,保存为install.sh文件;
2、下载专业版Seafile Pro Server安装包
官方下载Seafile_pro系列版本列表:
官方下载Seafile各种类型的版本(包括APP):
注意!此页面若为中文界面,则不提供专业版下载链接;可以在此页面上修改为英文界面,在最下面提供专业版下载链接;
3、下载LibreOffice软件包
官方下载链接:
注意!尽量选择LibreOffice稳定版本;
基础环境安装
注意!在2022年7月15日,由python3安装依赖时,ubuntu官方现在并没有适配ubuntu22.04的依赖,如果想用ubuntu22.04只能手动找那些依赖去装。因此建议使用ubuntu20.04,会减少很多麻烦。
配置软件源:建议使用华为、阿里、清华软件库
安装基础工具:# sudo apt install sudo curl vim wget -y
更新和升级软件库:# sudo apt update && sudo apt upgrade -y
检查升级的软件包:# sudo apt list --upgradable
安装openssh server:# sudo apt-get install openssh-server
配置openssh server:# vi etc/ssh/ssh_config
启用SSH服务:# sudo systemctl enable --now ssh
启用SSH跟随系统启动:# sudo systemctl enable ssh
检查SSH服务运行状态:# sudo systemctl status ssh
停止SSH服务:# sudo systemctl stop ssh
启动SSH服务:# sudo systemctl start ssh
允许SSH通过防火墙:# sudo ufw allow ssh
查看旧libreoffice安装包和版本:# dpkg -l |grep -i “libreoffice”
卸载随机安装的LibreOffice旧版本:# sudo apt-get remove --purge libreoffice*
安装字体文件:# sudo apt install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy -y
部署Python3支持工具包
# apt-get update
# apt-get install python3 python3-setuptools python3-pip python3-ldap libmysqlclient-dev -y
# pip3 install --timeout=3600 django==2.2.* future mysqlclient pymysql Pillow pylibmc captcha markupsafe==2.0.1 jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django-simple-captcha
部署Seafile
将脚本和安装包接放在/opt下,并修改安装包名称,运行如下命令行:
# mv /tmp/seafile-pro-server_8.0.14_x86-64_CentOS.tar /opt/seafile-pro-server_8.0.0_x86-64.tar.gz
# cp seafile-8.0_ubuntu install.sh
# bash install.sh 8.0.14
注意!
1)基于ubuntu使用脚本安装seafile server,会因为bash install.sh脚本语法错误而失败。为避免bash install.sh脚本执行失败,可以编辑脚本文件# vim install.sh,在编辑模式下执行“: set ff=unix”,将文件设置为unix格式,然后保存“:wq!”;
2)执行脚本安装前,需要修改安装包名称seafile-pro-server_8.0.14_x86-64_CentOS.tar改名为:seafile-pro-server_8.0.14_x86-64.tar.gz;
3)脚本会让您选择要安装的版本, 按照提示进行选择“2”(专业版)即可;
2)无论安装开源版(社区版)或专业版,均需要把安装包seafile-pro-server_8.0.0_x86-64.tar.gz 放到 /opt/ 目录下;
安装Office
安装LibreOffice:# tar zxvf LibreOffice_7.1.8_Linux_x86-64_deb.tar.gz
安装主程序的所有deb包:# sudo dpkg -i ./LibreOffice_X.Y.Z_Linux_x86_deb/DEBS/*.deb
打开 conf/seafevents.conf,添加:
[OFFICE CONVERTER]
enabled = true
host = 127.0.0.1
port = 6000
outputdir = /tmp/
max-pages = 800 #默认最大允许预览50页,可以自行修改
max-size = 2 #默认文件超过2m就不可以被预览,可以自行修改
打开conf/seahub_settings.py,添加:
OFFICE_CONVERTOR_ROOT = ';
与seafevents.conf中的host和port保持一致,保存seafevents.conf与seahub_settings.py后,重启Seafile/seahub服务;
管理Seafile
1、管理员和数据库密码获取
脚本运行完后,会在命令行中打印配置信息和管理员账号密码,请仔细阅读;也可以查看安装日志/opt/seafile/aio_seafile-server.log。
MySQL 的 root 用户密码存储在 /root/.my.cnf 中;
MySQL 的 seafile 用户密码存储在 /opt/seafile.my.cnf 中;
2、启动Seafile服务
在seafile-pro-server-8.0.14目录下,运行如下命令(运行之前需要切换seafile账户):
切换seafile用户:# su seafile
启动或暂停Seafile服务:# ./seafile.sh start/stop
启动或暂停Seahub网站 :# ./seahub.sh start/stop
查看seafile服务:# ps -ef | grep seafile
检查seafile进程是否在运行:# pgrep -f seafile-controller
检查seahub进程是否在运行:# pgrep -f "seahub"
注意!
1)第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号;
2)7.0.x 版本之后,8000端口默认监听在127.0.0.1地址上,这意味着您无法直接通过8000端口访问Seafile服务。建议配置nginx反向代理(在下面)。
3、初始化服务器
安装完成后,需要通过Web UI模式进行基本的配置,以便能正常的从网页端进行文件的上传和下载。在浏览器中输入服务器的地址,并用管理员账号和初始密码登录,打开System Admin---Settings配置URL,填写正确的服务器对外域名或IP地址,如下:
SERVICE_URL:http://你的seafile服务器的IP地址:8000/
FILE_SERVER_ROOT:http://你的seafile服务器的IP地址/seafhttp
注意!
1)SERVICE_URL和FILE_SERVER_ROOT设置为VM的IP地址,仅本地主机能够上传和下载;
2)若要LAN中其它主机能够上传和下载,请在VMware上设置转发端口,并在本地主机的防火墙上打开转发的端口,然后在Seafile的URL中修改为本地主机IP地址,这样其它主机就能够上传和下载了。
4、修改seahub默认端口
注意!6.3.0版本之后的使用这种方法;
修改/opt/seafile/conf/gunicorn.conf.py中的端口,来指定seahub启动端口;
# vi /opt/seafile/conf/gunicorn.conf.py
import os
daemon = True
workers = 5
# default localhost:8000
bind = "127.0.0.1:8000" #修改此端口来指定seahub启动端口
# Pid
pids_dir = '/opt/seafile/pids'
pidfile = os.path.join(pids_dir, 'seahub.pid')
# for file upload, we need a longer timeout value (default is only 30s, too short)
timeout = 1200
limit_request_line = 8190
3)重启seafile服务器
重启/关闭seafile和seahub服务
# cd /opt/seafile/seafile-pro-server-8.0.14
# su seafile
# ./seafile.sh restart
# ./seahub.sh restart
5、java占满内存优化
1)因为elasticsearch的原因,默认会给jvm配置较大缓存,如果没有使用到elasticsearch,可以设置较大的内存或关闭设置项;
2)修改/opt/seafile/seafile-server-latest/pro/elasticsearch/config/jvm.options 第22行:-Xms1g 改成-Xms512m或者-Xms128m,这个是限制jvm启动时所占用的内存大小的(可以根据自己的设备性能进行调整)。
6、调整seafile缓存
# vi /etc/memcached.conf
# memory
#-m 64
-m 128
7、删除和重建elasticsearch索引
# ./pro/pro.py search --clear
# ./pro/pro.py search --update
8、配置上传、下载
# vi /opt/seafile/conf/seafile.conf
[fileserver]
#允许所有文件上传、下载 token 被多次访问。
# 默认下载的 token 不允许多次访问,这造成了对一些移动端浏览器的不兼容。
web_token_reusable = false
# 上传文件最大限制为200M,若设置为5000M,则限制最多上传文件数量为1000个。默认是无限制,因此可以不设置此项;
max_upload_size=200
max_download_dir_size=200
9、web文件断点续传(没有就添加)
#vi seahub_settings.py
ENABLE_RESUMABLE_FILEUPLOAD = True
10、配置反向代理
# vi /etc/nginx/sites-available/seafile.conf #没有,就新建一个配置文件
log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';
server {
listen 80;
server_name seafile.example.com;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1200s;
# used for view/edit office file via Office Online Server
client_max_body_size 0;
access_log /var/log/nginx/seahub.access.log seafileformat;
error_log /var/log/nginx/seahub.error.log;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass ;
client_max_body_size 0;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
access_log /var/log/nginx/seafhttp.access.log seafileformat;
error_log /var/log/nginx/seafhttp.error.log;
}
location /media {
root /opt/seafile/seafile-server-latest/seahub;
}
location /seafdav {
proxy_pass ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1200s;
client_max_body_size 0;
access_log /var/log/nginx/seafdav.access.log seafileformat;
error_log /var/log/nginx/seafdav.error.log;
}
}