月度归档:2020年10月

tips|MiniO拓展及安装

启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。

注意

分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。
分布式Minio使用的磁盘里必须是干净的,里面没有数据。
下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。
分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
在Windows下运行分布式Minio处于实验阶段,请悠着点使用。
示例1: 启动分布式Minio实例,8个节点,每节点1块盘,需要在8个节点上都运行下面的命令。

GNU/Linux 和 macOS
Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://192.168.1.11/export1 http://192.168.1.12/export2 \
http://192.168.1.13/export3 http://192.168.1.14/export4 \
http://192.168.1.15/export5 http://192.168.1.16/export6 \
http://192.168.1.17/export7 http://192.168.1.18/export8
Windows
Copyset MINIO_ACCESS_KEY=
set MINIO_SECRET_KEY=
minio.exe server http://192.168.1.11/C:/data http://192.168.1.12/C:/data ^
http://192.168.1.13/C:/data http://192.168.1.14/C:/data ^
http://192.168.1.15/C:/data http://192.168.1.16/C:/data ^
http://192.168.1.17/C:/data http://192.168.1.18/C:/data
分布式Minio,8节点,每个节点一块盘

示例2: 启动分布式Minio实例,4节点,每节点4块盘,需要在4个节点上都运行下面的命令。

GNU/Linux 和 macOS
Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://192.168.1.11/export1 http://192.168.1.11/export2 \
http://192.168.1.11/export3 http://192.168.1.11/export4 \
http://192.168.1.12/export1 http://192.168.1.12/export2 \
http://192.168.1.12/export3 http://192.168.1.12/export4 \
http://192.168.1.13/export1 http://192.168.1.13/export2 \
http://192.168.1.13/export3 http://192.168.1.13/export4 \
http://192.168.1.14/export1 http://192.168.1.14/export2 \
http://192.168.1.14/export3 http://192.168.1.14/export4
Windows
Copyset MINIO_ACCESS_KEY=
set MINIO_SECRET_KEY=
minio.exe server http://192.168.1.11/C:/data1 http://192.168.1.11/C:/data2 ^
http://192.168.1.11/C:/data3 http://192.168.1.11/C:/data4 ^
http://192.168.1.12/C:/data1 http://192.168.1.12/C:/data2 ^
http://192.168.1.12/C:/data3 http://192.168.1.12/C:/data4 ^
http://192.168.1.13/C:/data1 http://192.168.1.13/C:/data2 ^
http://192.168.1.13/C:/data3 http://192.168.1.13/C:/data4 ^
http://192.168.1.14/C:/data1 http://192.168.1.14/C:/data2 ^
http://192.168.1.14/C:/data3 http://192.168.1.14/C:/data4
分布式Minio,4节点,每节点4块盘

扩展现有的分布式集群
例如我们是通过区的方式启动MinIO集群,命令行如下:

Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://host{1…32}/export{1…32}
MinIO支持通过命令,指定新的集群来扩展现有集群(纠删码模式),命令行如下:

Copyexport MINIO_ACCESS_KEY=
export MINIO_SECRET_KEY=
minio server http://host{1…32}/export{1…32} http://host{33…64}/export{1…32}
现在整个集群就扩展了1024个磁盘,总磁盘变为2048个,新的对象上传请求会自动分配到最少使用的集群上。通过以上扩展策略,您就可以按需扩展您的集群。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响。如上命令中,我们可以把原来的集群看做一个区,新增集群看做另一个区,新对象按每个区域中的可用空间比例放置在区域中。在每个区域内,基于确定性哈希算法确定位置。

MC (mc)命令

ls 列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监听文件和对象的事件。
policy 管理访问策略。
session 为cp命令管理保存的会话。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。

http://docs.minio.org.cn/docs/master/distributed-minio-quickstart-guide

前段模板开发笔记

三段式结构,左右两边少用iframe,左边菜单栏目自动生成,且点击项目加上active激活;右边为具体内容。
顶部的信息栏为顶部设置,可以分页分别设计,也可以自动生成,目前自动生成的意愿较大。
按照adminlte的设计来,因为是bootstrap4,与3改动不到,直接按照项目来!

toPDF基于ThinkCMS和libreoffice的在线office转换平台

topdf

github:https://github.com/maysrp/topdf

微信截图_20201016210213.png

准备

office文档在线转换pdf平台
基于ThinkPHP5.1下的ThinkCMS5.1开发,只有word,excel,ppt,txt,文本在线转pdf的功能。

Nginx php>7.1 mysql
libreoffice python3

推荐安装lnmp.org一键安装包,lnmp安装完成后在php中添加fileinfo,之后按照以下命令按照libreoffice和pymysql

apt-get update
apt-get install libreoffice python3-pip
pip3 install pymysql

字体安装

因为libreoffice转码时候需要字体,不然中文会全部乱码
mkdir /usr/share/fonts/Fonts
上传字体到这个目录(/usr/share/fonts/Fonts),字体哪里找?
你的 C:\Windows\Fonts 下面的字体你上传几个就好了,推荐雅黑,宋体,黑体

Nginx

nginx修改fastcgi.conf配置

lnmp下该文件在 /usr/local/nginx/conf/fastcgi.conf

把其中的

#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/";

Nginx 配置
修好你的nginx的网站配置文件
vim /usr/local/nginx/conf/vhost/你的网站.conf

在root那行,最后添加上/public,如下的代码形式,定义web的根目录为public

root /home/wwwroot/www.yunbt.net/public;

安装

网站安装

下载该项目文件pdfgaoji.tgz到你的网站目录上并且解压,给予data目录 和public/upload , public/download , public/plugins , public/themes , 权限为777
转到你网站的根目录中的python目录下,执行python3 install.py按照提示依次输入数据库用户名,数据库名,数据库密码,即可完成网站的安装。

转码服务端安装

修改python目录下的 run.py和screen.py 中13行代码 设置为你的网站的根目录。
webdir="/home/wwwroot/pdf.gaoji.me/"
run.py使用crontab 去每分钟执行一次去处理文档的转码。
screen.py是使用screen来保持进程,可以做到按秒处理。
推荐使用screen
screen -dmS pdf python3 screen.py

大功告成

后台

微信截图_20201016205614.png

微信截图_20201016205630.png

微信截图_20201016205750.png

office文件的PDF转换

使用libreoffice的命令可以将word,excel,ppt转换为PDF,命令也很简单:
libreoffice --convert-to pdf 输入文件 --outdir 输出文件目录
输入文件可以为word,excel ,ppt之类的office文件,顺道用ThinkCMF写了个在线转换
redPDF

问题还是宽带问题,租不起国内的服务器,因为涉及到上传和下载,说以上下宽带都要大,国内20M的镇江电信普遍都要200+每月,因为涉及到上传word子类的office文件,所以至少10M以上,否则上传等待时间过久。