快速开始
- 1: 准备工作
- 2: 程序安装步骤
- 3: 绑定域名步骤
- 4: 程序更新步骤
- 5: 程序重启等相关命令
- 6: 修改管理员用户名和密码
- 7: 修改程序的运行端口和目录
- 8: 连接远程Redis和MongoDB数据库
- 9: 迁移程序到新服务器运行
- 10: 修改程序运行的线程数
- 11: 自动转码说明及间隔调整
- 12: 关闭后台不需要的功能导航显示
- 13: 程序链接打不开的解决方法
- 14: 文件夹管理权限修改
1 - 准备工作
转码的大致原理
众所周知,基本上所有转码系统都是使用的ffmpeg
进行转码,也就是用程序加载ffmpeg
进程来进行转码操作,那么我们讨论影响转码的因素其实跟程序关系很小,只跟ffmpeg
的运行效率有关系,并且和影响ffmpeg
运行效率的变量有关系。
影响转码的因素
源视频的时长,音视频编码格式,源视频大小,CPU
单核频率,CPU
核数,转码的音视频编码格式,转码的码率。基本上,所有主要影响ffmpeg
转码效率的因素就在以上所述中。
在源视频和转码参数相同下影响因素:CPU
单核码率 > CPU
核数。也就是说转码单个视频的情况下,单核码率越高越好,核数也有部分影响。转码多个视频的情况下,核数越多越好,单核频率越高越好,两个因素共同影响。
秒切和转码有什么区别?
转码系统的最终目的都是将视频处理成M3U8切片文件,提供给播放器进行播放;这里又细分到秒切和转码的区别,如下:
#转码,也就是先将视频进行相关处理,比如烧录水印、字幕、去除水印,分辨率转换,最后切成M3U8切片文件;转码过程可能会比较长,具体由CPU或GPU决定。
#秒切,无需对视频进行烧录水印等相关处理,直接切成M3U8切片文件,即保留原视频的任何参数,仅仅只是变成切片;秒切过程极快,通常几秒或者十几秒完成。
由于秒切不会对视频进行转码处理,所以对CPU
性能要求可以不用那么高;但不是所有视频都可以秒切,仅符合libx264
和aac
编码的视频文件才支持秒切,也就是在开启秒切后,EFV
转码系统检测到视频符合秒切才给你直接切片,不符合秒切的视频,会先给你转码成符合秒切的视频,再给你切片。
如何选择服务器?
CPU/GPU
选择:如果你短时间急需转码大量的视频,还不在乎成本,则推荐GPU
,否则优先建议使用纯CPU
服务器,再根据秒切或转码,选择合适的CPU
;适合转码的GPU
⇒ 点击查看,CPU
性能排行榜 ⇒ 点击查看。
内存不太要求;硬盘根据你的片源多少选择合适的容量,且IO
尽量高点,如果你的并发比较高,优先推荐SSD
;带宽建议1G
起步,网络质量稍微好点就行。
如果你准备使用云存储或者CDN
,那么对硬盘、带宽的要求可以稍微低点。
通过带宽计算同时在线人数参考,如果你转码到720P
,码率1000
,那么推荐按照码率x1.5
来计算每人需要的带宽,也就是150kb/s
;如果服务器是100m
带宽,再除以8
,实际上就是12.5mb/s
左右,然后除以每人需要的带宽150kb/s
,即0.15mb/s
,结果就是能同时支持83
个人,由于这些人并不是同时请求,会有错开请求的情况,所以实际上是高于83
人的,最终以测试为准,当然计算的时候,还得考虑带宽是独享还是共享,如果是共享1G
,那么实际上就没1G
,具体可咨询服务商。
服务器商家推荐
这里列举一些服务器商家,对于有些不好选择服务器的人可以参考下,也可以自行找其它服务商。
hetzner
服务商:这家带宽为1G
不限流量,硬盘也大,算是性价比极高的服务商;唯一的不方便就是新用户需要验证账户,可以试试,不通过就跳过;高性能配置入口:点击查看,有些带安装费,首次收取,续费不收;常规配置入口 ⇒ 点击查看,常规配置无安装费,相对便宜点。
hostkey
服务商:这家CPU
和GPU
都有,也有大硬盘服务器,比如几十T
,支持支付宝付款,没PayPal
的可以考虑,服务器地址 ⇒ 点击查看。
nocix
服务商:这家带宽为1G
不限流量,硬盘大多4T
上下,且这家服务器只推荐AMD 3/5
系列或低于$40
的E3
系列,其它好像没啥性价比了,服务器地址 ⇒ 点击查看。
ceranetworks
服务商:这家网络很好,但性能一般,算是主打网络,价格有点贵,不缺钱的可以看看,服务器地址 ⇒ 点击查看。
oneprovider
服务商:这家是个比较有名的二道贩子,啥配置的都卖,但网络晚上可能一般,白天还可以,支持微信付款,有些独立服务器价格很低,10
美元左右起步,服务器地址 ⇒ 点击查看,目前有一款CPU E3-1230 v2
、1T
硬盘的服务器性价很高,月付$17.99
,有兴趣可以看看 ⇒ 传送门。
2 - 程序安装步骤
安装说明
目前只提供一键脚本安装,安装期间会自动将所需环境和源码下载并安装到服务器,无需担心不会安装的问题。
当前脚本会默认安装ffmpeg
、Redis v7
、MongoDB v6
、NodeJS v20
运行环境,且后续会微调版本,具体以实际为准。
无GPU
服务器,系统要求:CentOS 8+
,Debian 10+
,Ubuntu 20.04+
,AlmaLinux 8+
,Rocky Linux 8+
。
GPU
服务器,显卡要求 ⇒ 点击查看;系统要求:Ubuntu 20.04
、22.04
或24.04
。
建议使用Ubuntu 20.04
或22.04
系统,且CentOS
官方已停止维护,所以不推荐,习惯CentOS
系统的,可使用AlmaLinux
或Rocky Linux
系统,用法和CentOS
系统差不多。
友情提示
如果你的服务器在中国大陆以外,包括中国香港,中国台湾,建议先安装BBR
,可优化TCP
连接,尽可能让用户流畅的观看视频。
使用SSH
客户端,比如Xshell
软件,登录服务器,再使用命令:
wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
chmod 755 /opt/bbr.sh
/opt/bbr.sh
该脚本会自动给你更换BBR
内核,并开启BBR
,如果第一行命令出现wget: unable to resolve host address
报错,则解决方法 ⇒ 点击查看。
开始安装
使用SSH
客户端,比如Xshell
软件,登录服务器,再使用命令:
#下载脚本,下载前请将后面的yourcode改成你的授权码;如出现404 Not Found,则可能是ip未绑定,或者授权码有误
wget --no-check-certificate -O '/opt/efv.sh' 'https://file.efvcms.com/download/express-ffmpeg-vip.sh?code=yourcode'
#运行脚本,运行前请将后面2个参数修改成自己的,即授权码yourcode,和源码安装路径/home,路径自定义,为绝对路径写法,不存在会自动创建
bash /opt/efv.sh yourcode /home
Enter
运行,直到脚本运行结束,期间会给你安装,并启动所有环境、程序,可直接上手使用。
安装完成后,访问地址就是服务器ip:3000
,接下来要正常使用需要绑定一个域名,继续看左侧文档绑定域名。
最后注意,由于后台功能有点多,很多都用不到,有些强迫症的很想关闭这些,可直接在后台左下角的侧栏开关,自行关闭不需要的功能导航。
3 - 绑定域名步骤
相关说明
这里提供2
种绑定方法,如下:
#第1种,使用EFV自带的网站管理绑定域名;自带的可以自动申请SSL证书,且和Nginx等Web服务不能共存,适用于服务器只运行EFV站点使用。
#第2种,使用宝塔面板安装Nginx后绑定域名;如果你要在切片服务器搭建多个网站,或者习惯使用宝塔面板,那就推荐使用。
我们可以根据自身需求选择其中一种方案,如果你熟练Linux
,也可以使用其它方法绑定域名,也就是配置一下反向代理即可。
特别提示
注意我们绑定域名后,建议换成域名访问前后台,访问信息为:
#脚本安装会提供下面的ip访问信息,以下只是举例,具体登录路径和管理员用户名密码以实际为主
http://127.0.0.1:3000/mklds
adminw
adminq
#绑定xx.com域名后,访问信息就变成下面这些
http://xx.com/mklds
adminw
adminq
也就是ip:3000
和xx.com
域名是等价的,将ip:3000
的任何链接地址的ip:3000
换成xx.com
域名,路径不变,内容都是一样的;所以不管你绑定多少个域名,原有链接地址只需要替换下域名,路径不变,都可以正常使用。
但是你访问后台的话,你用什么地址访问后台,m3u8
、截图地址就会显示什么地址,用ip:3000
访问后台,就显示ip:3000
,用域名访问后台,就显示域名。
为了正常使用,建议只用域名访问前后台,这样m3u8
、截图地址都会显示域名;且用ip:3000
,m3u8
在其它地方会播放不了。
使用EFV的网站管理绑定
先将需要绑定的域名解析到EFV程序
所在的服务器ip
,然后等解析生效,验证解析是否生效,可使用SSH
客户端,使用命令:
#域名自行修改,如果有返回ip,且和服务器ip一样,则解析生效
ping m3u8.efvcms.com
然后点击左侧转码相关 ⇒ 网站管理,点击添加域名,输入相关信息,如图:
基本上只需要填入域名,选择端口,且443
端口会自动申请SSL
证书,再将反向代理打勾,其他默认即可。
相关问题
如果需要更换域名,则可以在网站管理点删除,或者重新编辑修改其它域名。
如果要绑定多个域名,可以添加的时候,将多个域名写到一起,中间使用英文竖线|
分开,或者一个一个多次添加域名。
最后,如果在域名无误、且解析生效的情况下,添加域名后打不开,则可能是服务器端口没打开,可运行以下命令:
#CentOS 7+、AlmaLinux、Rocky Linux系统
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
##Debian、Ubuntu系统
ufw allow 443
ufw allow 80
然后删除添加的域名配置后,重新添加即可。
使用宝塔面板绑定
安装宝塔
这里分别提供宝塔国内和国际2
个版本安装,区别是宝塔国内版需要强制登录宝塔账号,而国际版不需要,可自行选择安装
使用SSH
客户端登录服务器,使用命令:
#CentOS系统,国内版本
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
#CentOS系统,国际版本
yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel
#Debian系统,国内版本
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec
#Debian系统,国际版本
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh aapanel
#Ubuntu系统,国内版本
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
#Ubuntu系统,国际版本
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh aapanel
安装完成后,会给你宝塔登录信息,保存好就行。
安装Nginx
点击宝塔面板左侧 ⇒ 软件商店 ⇒ 找到Nginx
安装即可。
绑定域名
先准备一个域名作为EFV
域名,可以是2
级域名,然后解析域名的A
记录到服务器ip
,然后点击宝塔面板左侧 ⇒ 网站 ⇒ 添加站点,只需要填写域名,其它默认就行,如图:如图:
再点击域名右侧设置按钮,找到SSL
⇒ 选择Let's Encrypt
,勾选域名点击申请,申请成功后,将右上角强制HTTPS
打开即可。
提示:此处为申请SSL证书步骤,如不需要可跳过该步骤,该证书为免费3个月证书,到期会自动给你续期。
接下来继续进入域名设置,找到反向代理 ⇒ 添加反向代理,目标URL
填转码的内网地址127.0.0.1:3000
,如图:
接下来点击配置文件。
添加四行代码:
#该代码为断点续传关键设置,必须加进去。
proxy_cache_convert_head off;
proxy_request_buffering off;
#该代码为程序转码进度条监控必须
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
即全部代码为:
#可以直接复制下面代码进行替换
location /
{
proxy_pass http://127.0.0.1:3000;
proxy_cache off;
proxy_cache_convert_head off;
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 REMOTE-HOST $remote_addr;
proxy_set_header Referer $http_referer;
proxy_request_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
}
点击保存即可,如下图:
最后记得在转码后台,在转码设置和CMS
管理处均设置好域名。
最后点击宝塔面板左侧 ⇒ 软件商店 ⇒ 找到Nginx
,点击右侧设置按钮,找到性能调整,修改client_max_body_size
参数值,如图:
该值也就是最大上传值,可设置为4000M
以上。
当然宝塔有些域名配置文件会自动加上以下代码,可以自己去掉,不然使用可能会有问题,代码如下:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log off;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log off;
}
操作完成后,可以直接通过域名访问EFV
程序了。
4 - 程序更新步骤
更新说明
更新和安装一样,同样提供一键更新脚本,且目前最新版本查看:更新日志,根据时间命名,自行判断是否为最新版本。
开始更新
使用SSH
客户端,比如Xshell
软件,登录服务器,再使用命令:
#下载脚本,下载前请将后面的yourcode改成你的授权码;如出现404 Not Found,则可能是ip未绑定,或者授权码有误
wget --no-check-certificate -O '/tmp/efv-update.sh' 'https://file.efvcms.com/download/express-ffmpeg-vip-update.sh?code=yourcode'
#运行脚本,运行前请将后面2个参数修改成自己的,即授权码yourcode,和源码所在路径/home/express-ffmpeg,路径根据实际情况修改
bash /tmp/efv-update.sh yourcode /home/express-ffmpeg
Enter
运行,直到更新完成即可;且更新后运行端口会自动覆盖,如有修改过端口,请重新修改一下。
5 - 程序重启等相关命令
使用脚本安装后,程序已经启动,并配置好了开机自启,无需再次启动。
启动和重启的区别
启动的前提是需要程序的pm2
进程不存在,可以使用pm2 list
命令查看相关进程,如果有看到name
为efvcms
的,则为进程存在。
如果进程存在则不能使用启动命令,需要使用pm2 reload efvcms
重启命令;或者使用pm2 kill
命令杀掉进程,再使用启动命令运行程序。
启动命令
比如我的程序安装的路径为/home/express-ffmpeg
,相关命令为:
#先进入程序目录,请根据你的安装情况修改目录路径
cd /home/express-ffmpeg
#启动命令,这里会启动EFV相关的所有进程
export PATH=python3/bin:$PATH && pm2 start ecosystem.config.js --env production
重启命令
#重启全部进程,包括EFV程序,网站管理部分、BT管理部分
pm2 reload all
#只重启EFV程序
pm2 reload efvcms
关闭命令
#关闭全部进程
pm2 kill
#关闭EFV程序
pm2 del efvcms
#关闭网站管理功能,如果你不用程序自带的网站管理功能可以关闭
pm2 del caddyserver
#关闭BT下载功能,如果你不用程序自带的BT管理功能可以关闭
pm2 del aria2c
pm2 del aria2server
#关闭FTP功能,如果你不用FTP多用户上传功能可以关闭
pm2 del ftpserver
关闭后再使用pm2 save
命令刷新现有进程。
注意如果关闭后,你想再次启动相关功能,可以先关闭全部进程,然后看上方的启动教程,重新启动全部进程。
查看日志
#查看EFV程序运行日志
pm2 log efvcms
#查看网站管理日志,如果网站管理绑定域名后打不开,可以查看日志报错
pm2 log caddyserver
#查看BT下载日志,如果你想查看BT管理的下载等进程,可以查看
pm2 log aria2c
pm2 log aria2server
#查看FTP功能日志,如果你想查看FTP运行进程,可以查看
pm2 log ftpserver
最后如果上述命令提示-bash: pm2: command not found
,则需要先运行一下source /etc/profile
,然重新运行即可。
6 - 修改管理员用户名和密码
修改步骤
比如我的程序安装的路径为/home/express-ffmpeg
,那么前往该文件夹。
然后编辑源码目录里的config/auth.js
文件,修改如下:
#user和passwd分别为管理员用户名和密码,login为后台登录路径,且不能设置为admin
user: "admin",
password: "admin",
login: "/adminurl",
根据自己的需求进行编辑修改,最后使用命令重启:
pm2 reload efvcms
特别提示
当我们成功登录后台后,会产生一段时间缓存,这时候后台路径会变成/admin
;当缓存失效后,/admin
路径也会失效,此时需要重新使用正确的后台路径登录进后台。
如果你之前将后台账号密码告诉过别人,修改完密码后,还需要清除一下登录缓存,不然之前已经登录过后台的人,还会因为一段时间缓存会正常进入后台。
使用SSH
客户端登录服务器,使用命令:
mongo ffmpeg --eval "db.sessions.drop()"
运行完后,会强制擦除所有已经登录过后台的缓存,这时候需要重新通过正确的后台地址、账户密码才能进入后台了。
7 - 修改程序的运行端口和目录
修改运行端口
比如我EFV
程序路径为/home/express-ffmpeg
,然后进入该文件夹,编辑根目录下的ecosystem.config.js
文件,修改如下:
#将3000修改为你需要的端口
env_production: {
PORT: 3000,
NODE_ENV: "production"
}
然后修改转码进度监控端口,编辑config/auth.js
文件`,修改如下:
#将3000修改为你需要的端口
host: 'http://127.0.0.1:3000',
最后使用命令重启:
#停止程序
pm2 kill
#进入程序目录,请根据你的安装情况修改目录路径
cd /home/express-ffmpeg
export PATH=python3/bin:$PATH && pm2 start ecosystem.config.js --env production
修改端口后,如果你绑定过域名,请同步修改域名的反代配置端口。
修改运行目录
比如我EFV
程序路径为/home/express-ffmpeg
,我想将程序从/home
转移到/opt
目录运行。
使用命令:
#停止程序
pm2 kill
#移动程序目录,/home为当前运行目录,/opt为要转移的目录
mv /home/express-ffmpeg /opt
#进入到程序新路径
cd /opt/express-ffmpeg
#启动程序
export PATH=python3/bin:$PATH && pm2 start ecosystem.config.js --env production
#保存
pm2 save
最后如果能正常访问程序后台,则转移成功。
8 - 连接远程Redis和MongoDB数据库
连接远程Redis
比如我的程序安装的路径为/home/express-ffmpeg
,那么前往该文件夹。
然后编辑源码目录里的config/auth.js
文件,修改如下:
#以下信息分别为远程redis地址,端口及密码
const redisClient = redis.createClient({
host: '127.0.0.1',
port: 6379,
password: 'efvcms'
});
根据自己的需求进行编辑修改,最后使用命令重启:
pm2 reload efvcms
连接远程MongoDB数据库
先再将切片服务器的数据库转移到远程MongoDB
数据库,数据库迁移教程 ⇒ 点击查看。
接下来比如我的程序安装的路径为/home/express-ffmpeg
,那么前往该文件夹。
然后编辑源码目录里的config/auth.js
文件,修改如下:
#以下信息分别为远程MongoDB地址,数据库名、用户名和密码,且端口默认27017
dburl: "127.0.0.1",
db: "ffmpeg",
dbuser: "ffmpeg",
dbpassword: "ffmpeg",
根据自己的需求进行编辑修改,最后使用命令重启:
pm2 reload efvcms
9 - 迁移程序到新服务器运行
一定要根据下面步骤一步一步来,不要漏掉任何一个地方,不然会出问题。
且如果是GPU
服务器,可在迁移之前联系我们协助安装相关显卡驱动。
迁移原服务器数据文件
首先迁移前,先使用SSH
客户端登录到新服务器
,安装一下rsync
:
#CentOS 7+、AlmaLinux、Rocky Linux系统
yum install rsync -y
#Debian、Ubuntu系统
apt install rsync -y
迁移程序源码文件夹
先使用SSH
客户端登录到新服务器
,按要求使用命令:
#迁移命令,且9999为旧服务器端口,自行修改
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/home/express-ffmpeg /home
参数说明:
192.168.0.1为旧服务器ip地址。
/home/express-ffmpeg为旧服务器程序源码绝对路径,该处根据实际情况自行修改。
/home为你要将源码迁移到新服务器的文件夹路径,该处根据实际情况自行修改,也可以默认。
期间会要求你输入旧服务器密码,如果遇到提示yes
/no
,输入yes
即可,由于切片大小、2
台服务器之间连接情况等影响,迁移时间可能会很长,挂机即可,直到结束。
迁移ffmpeg文件夹
先使用SSH
客户端登录到新服务器
,按要求使用命令:
#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认。
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/ffmpeg /usr/local
期间会要求你输入旧服务器密码,如果遇到提示yes
/no
,输入yes
即可。
迁移mongodb文件夹
先使用SSH
客户端登录到新服务器
,按要求使用命令:
#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/mongodb /usr/local
期间会要求你输入旧服务器密码,如果遇到提示yes
/no
,输入yes
即可。
迁移nodejs文件夹
先使用SSH
客户端登录到新服务器
,按要求使用命令:
#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/nodejs /usr/local
期间会要求你输入旧服务器密码,如果遇到提示yes
/no
,输入yes
即可。
迁移redis文件夹
先使用SSH
客户端登录到新服务器
,按要求使用命令:
#迁移命令,且9999为旧服务器SSH端口,后面192.168.0.1为旧服务器ip地址,自行修改;其它可以默认
rsync -avu -e 'ssh -p 9999' root@192.168.0.1:/usr/local/redis /usr/local
期间会要求你输入旧服务器密码,如果遇到提示yes
/no
,输入yes
即可。
在新服务器上还原数据
安装依赖
先使用SSH
客户端登录到新服务器
,根据指定系统依次使用命令:
#CentOS 7系统
yum install epel-release -y
yum -y groupinstall "Development Tools"
yum -y install cairo cairo-devel kernel-headers
#Debian/Ubuntu系统
apt update
apt install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
还原mongodb
先使用SSH
客户端登录到新服务器
,依次使用命令:
useradd -M mongodb
chown -R mongodb:mongodb /usr/local/mongodb
wget --no-check-certificate https://file.efvcms.com/moeapp/migrate/mongod.service -P /etc/systemd/system
systemctl start mongod
systemctl enable mongod
还原redis
先使用SSH
客户端登录到新服务器
,依次使用命令:
useradd -M redis
chown redis:redis -R /usr/local/redis
wget --no-check-certificate https://file.efvcms.com/moeapp/migrate/redis.service -P /etc/systemd/system
systemctl start redis
systemctl enable redis
设置变量
先使用SSH
客户端登录到新服务器
,依次使用命令:
echo "export PATH=/usr/local/redis/bin:/usr/local/mongodb/bin:/usr/local/nodejs/bin:/usr/local/ffmpeg/bin:$PATH">>/etc/profile
source /etc/profile
关闭旧服务器的程序
我们搬完家后,如果你旧服务器的程序还没停止,则登录到旧服务器
,使用命令:
pm2 kill
pm2 unstartup
停止后,再前往授权操作台efvcms.com
登录账号,绑定新服务器ip
。
启动新转移的程序
先使用SSH
客户端登录到新服务器
,按要求使用命令:
#进入到源码目录,本文默认/home/express-ffmpeg,自行根据实际情况修改
cd /home/express-ffmpeg
#启动
export PATH=python3/bin:$PATH && pm2 start ecosystem.config.js --env production
#开机自启
pm2 save
pm2 startup
最后可以检查下程序是否可以打开,如果还不能,可能是数据库损坏没启动成功,接下来运行命令:
mongod --dbpath=/usr/local/mongodb/data --repair
chown -R mongodb:mongodb /usr/local/mongodb
rm -rf /usr/local/mongodb/data/mongod.lock
systemctl restart mongod
pm2 reload all
该命令可以修复数据库,如果还没好,可直接联系我们解决该问题。
10 - 修改程序运行的线程数
比如我的程序安装的路径为/home/express-ffmpeg
,那么前往该文件夹。
然后编辑源码目录里的ecosystem.config.js
文件,修改如下:
#将instances: 2的数字修改为你需要启用的线程数,且0为最大线程数;此处建议设置为系统线程数的一半即可
name: "efvcms",
script: "./bin/www",
instances: 2,
exec_mode : "cluster",
最后使用命令重新启动:
#停止程序
pm2 kill
#进入程序目录,请根据你的安装情况修改目录路径
cd /home/express-ffmpeg
export PATH=python3/bin:$PATH && pm2 start ecosystem.config.js --env production
#保存进程
pm2 save
11 - 自动转码说明及间隔调整
自动转码说明
程序每次启动,会自动开启转码队列,可以通过视频管理中的停止/开启自动转码
按钮,进行关闭和开启。
全自动转码模式下,每30
秒检测一次,每次只会将1
个未转码视频加入到转码进程,最多只会加入你设置的同时转码数。
什么情况下需要调整时间
如果你的机器性能足够好,并且是秒切
,或者是短视频,不到30
秒就转完了;可以通过调低检测间隔时间来加快转码进度。
修改自动检测间隔时间
比如我的程序安装的路径为/home/express-ffmpeg
,那么前往该文件夹。
然后编辑源码目录里的helper/agenda.js
文件,需要修改代码await agenda.every("30 seconds", "auto queue")
,有2
个地方都要改,修改如下:
#分钟单位,比如1分钟;大于1分钟用minutes
1 minute
2 minutes
3 minutes
#秒钟单位,比如20秒
20 seconds
#如果我要修改为20秒,则具体代码
await agenda.every("20 seconds", "auto queue");
尽量不要低于10s
,不然监控可能会抽风,修改后使用pm2 reload efvcms
重启生效。
12 - 关闭后台不需要的功能导航显示
先前往后台左下角,找到侧栏开关
(该功能于2024-02-18
新增),选择你不需要的功能导航,直接关闭提交即可。
最后由于功能之间关联性太大,为了避免出现较大BUG
,暂时只隐藏了导航,并不影响其已经设置好的功能。
13 - 程序链接打不开的解决方法
查看redis和mongodb数据库运行状态
使用SSH
客户端登录服务器,使用命令:
systemctl status mongod redis
该命令分别会输出redis
和mongodb
运行状态,如果有输出信息不是Active: active (running)
,就是自动停止了。
解决方法
查看根目录是否满了
如果你没有乱安装,或者操作一些东西,则大概率就是系统根目录满了,造成运行环境自动关闭,先使用ssh
客户端,运行命令df -h
查看根目录占用情况。
#只需要看Mounted on为/的信息即可,且Use%为使用率,100%则为占满
Size Used Avail Mounted on
912G 248G 619G 29% /
如果确定根目录沾满了,则自行清理一些文件,然后开始下面操作。
当然,如果根目录没有满,也可以通过以下命令恢复。
恢复程序运行
使用ssh
客户端,运行命令:
#启动mongodb数据库
systemctl restart mongod
#启动redis
systemctl restart redis
#重启程序
pm2 reload efvcms
如果重启的时候提示[PM2][ERROR] Process or Namespace efvcms not found
,则使用命令:
#先进入程序目录,请根据你的安装情况修改目录路径
cd /home/express-ffmpeg
#启动命令
export PATH=python3/bin:$PATH && pm2 start ecosystem.config.js --env production
最后可以检查下程序是否可以打开,如果还不能,可能是数据库损坏没启动成功,接下来运行命令:
mongod --dbpath=/usr/local/mongodb/data --repair
chown -R mongodb:mongodb /usr/local/mongodb
rm -rf /usr/local/mongodb/data/mongod.lock
systemctl restart mongod
pm2 reload efvcms
该命令可以修复数据库,如果还没好,可直接联系我们解决该问题。
14 - 文件夹管理权限修改
提示:最新版已移除该设置项,且做了很多细节优化,推荐更新最新版使用。
比如我的程序安装的路径为/home/express-ffmpeg
,那么前往该文件夹。
然后编辑源码目录里的config/auth.js
文件,修改如下:
#该参数为删除权限,false为禁止删除,将false改成true则为开放删除权限,也就是后台文件管理可以对文件进行删除操作
allowDelete: false,
#该参数为文件管理默认的根目录,修改后,只能访问该目录下的文件和子目录
limitPath: '/home/express-ffmpeg/bt/download',
根据自己的需求进行编辑修改,最后使用命令重启:
pm2 reload efvcms