
开发文档
文章平均质量分 80
美洽技术
分享美洽技术团队的思考与实践。
展开
-
使用Docker搭建poste,自建邮件服务器
自建邮件服务可以不受发件量限制,批量发件成本更低,但部署相对复杂,而且容易进垃圾箱。不过现在越来越多的服务商已经开发好了产品,支持一键部署等方式,极大降低了部署和使用难度。这次给各位小伙伴安利一款开源邮件服务poste.关于posteposte是一款开源邮件服务软件,可以很方便的搭建:SMTP + IMAP + POP3 + 反垃圾邮件 + 防病毒 + Web 管理 + Web 电子邮件,支持以下特性。SPF、DKIM、DMARC、SRS 的原生实现,带有简单的向导 用于检测木马、病毒、恶转载 2021-06-24 17:14:26 · 10935 阅读 · 0 评论 -
Windows Terminal + Alpine Linux + ZSH打造自己的高颜值终端
Windows Terminal是一个面向命令行工具和 shell(如命令提示符、PowerShell 和适用于 Linux 的 Windows 子系统 (WSL))用户的新式终端应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。装好Windows Terminal后,你会发现完全达不到官方演示效果,还是又黑又丑,不过Windows Terminal可实现高度自定义,通过各转载 2021-05-20 17:14:34 · 641 阅读 · 0 评论 -
Nginx自建CDN以及ngx_cache_purge清除缓存
Nginx自建CDN在《智能解析 + Nginx反向代理,自建CDN加速节点》已经介绍过,有兴趣的童鞋可参考,不过可以在这篇文章基础上继续完善,比如添加ngx_cache_purge模块来清除缓存。编译ngx_cache_purge模块清理Nginx缓存需要ngx_cache_purge模块帮助,可输入命令nginx -V查看已经编译的模块,如果没有ngx_cache_purge说明模块没有安装,则需要重新编译一下Nginx模块下载地址为ngx_cache_purge-2.3.tar.g转载 2021-05-12 17:29:49 · 658 阅读 · 0 评论 -
CentOS 7手动安装File Browser文件管理器
File Browser是一款使用Golang开发的文件管理器,跨平台,免费开源,功能强大。这篇文章分享下CentOS 7手动安装File Browser的方法,熟悉下File Browser运作流程,不至于后期出现问题不知所措。下载地址中作者提供了各平台编译好的二进制文件,根据自己的平台下载解压即可,无需自行编译,以CentOS 7为例。#下载File Browserwget https://github.com/filebrowser/filebrowser/releases/do.转载 2021-04-23 16:17:52 · 2055 阅读 · 1 评论 -
为WordPress文章添加分页功能
如果一篇文章较长且图片较多的话不仅影响页面加载速度还影响用户的阅读兴趣,那么我们可以对文章进行分页来解决这个问题,不仅可以防止用户流失且方便阅读,还可以提高页面加载速度。实现方法:在你正在使用的主题目录下找到index.php或single.php等文件,查找:<?php the_content(); ?>,小z博客是在single.php中。找到后将如下代码添加到后面:<!--文章分页效果--><?php wp_link_pages('bef转载 2021-04-22 16:09:06 · 733 阅读 · 0 评论 -
socat与Brook 端口转发非权威对比测试
网上关于端口转发软件的评测非常少,最近正好将socat与Brook都打包为了Docker镜像,今天先用他两来比一比,测一测,看看到底谁的效率更好一些。(非权威测试,结果仅供参考)测试环境已经在目标服务器163.172.35.xxx安装好了WebServer(Nginx),同时在中继服务器137.175.30.xxx上分别部署了socat和brook进行端口转发到目标的80端口上,信息如下。目标服务器:163.172.35.xxx:80 中继服务器:137.175.30.xxx:32771(so转载 2021-04-15 22:00:27 · 990 阅读 · 0 评论 -
Linux安装rinetd实现TCP/UDP端口转发
在Linux系统中大多数情况选择用iptables来实现端口转发,iptables虽然强大,但配置不便,而且新手容易出错。在此分享另一个TCP/UDP端口转发工具rinetd,rinetd体积小巧,配置也很简单。安装rinetd这篇文章以CentOS 7为例,复制下面的命令输入,一行一个:#安装依赖yum -y install gcc gcc-c++ make#下载rinetdwget https://github.com/samhocevar/rinetd/releases/dow转载 2021-04-14 13:50:34 · 568 阅读 · 0 评论 -
使用Shell脚本遍历子目录下所有文件方法
最近博客进行了搬家,CDN源发生改变,想着在CDN上将博客所有图片刷新预热一遍,那么问题来了,刷新预热需要得到所有图片地址,于是直接使用Shell脚本递归遍历wp-content/uploads目录先得到图片文件路径,说干咱就干。创建Shell脚本使用vi编辑器,先创建一个vi traveDir.sh文件,复制下面的脚本代码:#! /bin/bashfunction read_dir(){for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令do if转载 2021-04-13 15:25:33 · 1682 阅读 · 0 评论 -
如何将ImgURL图床集成到您的网站
ImgURL是一款开源图床程序,由xiaoz开发,安装简单、功能强大,非常适合个人自建。如果您还不清楚ImgURL具有哪些功能,可以先了解下《一篇文章了解ImgURL图床特色功能》与此同时xiaoz还编写了相关的js脚本,可以很方便的将ImgURL图床集成到您的网站,实现在当前页面(您的网站)直接上传图片到ImgURL图床。操作方法在您的网页底部</body>之前,添加如下的js代码即可,如果您是自行部署的ImgURL图床,请将imgurl_domain改成您自己的域名:&转载 2021-04-09 16:01:36 · 1716 阅读 · 0 评论 -
Alpine Linux使用入门
Alpine Linux是一种基于musl和BusyBox的Linux 发行版,专为安全性、简单性和资源效率而设计。体积非常小巧,适合用来做Docker镜像。xiaoz最近在为CCAA/Zdir打包容器镜像的时候了解到了Alpine Linux,麻雀虽小但五脏俱全,简直不要太方便。Docker使用Alpine Linux使用命令docker run -it alpine /bin/sh可运行Alpine Linux,由于Alpine Linux没有内置bash,所以这里使用的sh作为伪终端,在为转载 2021-04-08 17:17:16 · 749 阅读 · 0 评论 -
解决WordPress配置百度云CDN,后台无法登录问题
背景博客原本使用阿里云新加坡节点,奈何经常被运营商阻断443端口,导致网站无法访问。正好百度云搞活动,55元购买了500GB流量包,于是给博客套上了百度云CDN(非百度云加速)来解决此问题,一开始缓存规则设置不对,导致WordPress后台无法登录,记录一下WordPress配置百度云CDN的一些注意事项。缓存过期时间配置WordPress后台是动态页面,因此/wp-admin/不需要缓存,.php这样的动态文件也不需要缓存,将过期时间设置为0秒,其它缓存过期时间根据自身情况设置。关转载 2021-04-02 17:44:18 · 1597 阅读 · 0 评论 -
Linux系统如何编写Systemd Service
Systemd 服务是一种以 .service 结尾的单元(unit)配置文件,用于控制由Systemd 控制或监视的进程。简单说,用于后台以守护精灵(daemon)的形式运行程序。Systemd 广泛应用于新版本的RHEL、SUSE Linux Enterprise、CentOS、Fedora和openSUSE中,用于替代旧有的服务管理器service。开始Systemd 服务的内容主要分为三个部分,控制单元(unit)的定义、服务(service)的定义、以及安装部分。服务的路径位于/etc转载 2021-04-01 15:54:01 · 831 阅读 · 0 评论 -
Linux怎么安装Collabora Online让NextCloud支持Office在线编辑
NextCloud可通过插件实现在线编辑Office文档,不过前提是需要依赖于Collabora Online服务,记录一下操作过程。部署Collabora Online服务Collabora Online提供多种平台和多种安装方式,这篇文章使用Linux Docker方式来一键部署。CentOS安装Docker#安装dockeryum -y install docker#运行dockerservice docker start#设置docker开机启动systemctl e转载 2021-03-31 15:40:36 · 5036 阅读 · 0 评论 -
怎么使用WebP Server在不改变URL的情况下将网站图像转换为WebP
WebP Server这是一个基于 Golang 的服务器,允许您动态提供 WebP 图像,在不改变图片URL路径的情况下,自动将JPEG、PNG、BMP、GIF等图像转换为WebP格式,从而减小图片体积,降低流量消耗和提高加载速度。什么是WebP?WebP是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,由Google推出,WEBP的格式压缩率非常高,在同质量的情况下.webp格式的图片体积会小很多。主流的FireFox/Chrome浏览器已经支持webp图像,但目前Safari还转载 2021-03-25 15:59:33 · 914 阅读 · 0 评论 -
如何使用Docker部署OneNav书签管理器
OneNav是一款使用PHP + SQLite 3开发的导航/书签管理器,支持Material Design风格,内置2套模板,界面简洁,使用方便。现已支持Docker方式部署,方法如下。功能特色支持后台管理 支持私有链接 支持多种主题风格(默认内置2套模板) 支持链接信息自动识别 支持API 支持右键菜单管理Docker部署docker run -itd --name="onenav" -p 80:80 \ -e USER='xiaoz' -e PASSWORD='x转载 2021-03-24 16:46:47 · 1236 阅读 · 0 评论 -
Nginx环境下如何在PHP进行安全设置
当下Nginx越发流行,宝塔面板、Oneinstack、LNMP等集成环境大多数都使用Nginx作为WEB服务,Nnginx + PHP情况下使用FPM(FastCGI 进程管理器)来执行PHP,这篇文章抛开PHP程序写法不严谨造成的本身漏洞,单从WEB服务和PHP本身设置来加强PHP程序安全。禁用危险函数PHP提供的system()等函数可以直接执行系统命令,如果程序限制不严谨或写法不规范,被骇客利用是非常危险的,禁用此类较为危险的函数非常有必要。需要修改php.ini,添加如下内容:d翻译 2021-03-23 16:05:20 · 231 阅读 · 0 评论 -
如何用WordPress免插件实现MarkDown语法支持
WordPress默认不支持MarkDown标记(不知道最新版实现没有),虽然提供了很多第三方MarkDown插件,但都无法达到满意的效果。xiaoz一直以来都是用HTML标签来写文章,虽然排版效果好,但是写起来真的很费劲,效率也不高,于是想到一个法子让WordPress更好的支持MarkDown语法,并且不需要安装额外的插件。下载ParsedownParsedown可以将MarkDown内容解析为HTML,如果内容已经是HTML则不进行解析,有了Parsedown的支持,在发表WordPres转载 2021-03-19 15:33:34 · 511 阅读 · 0 评论 -
使用jiacrontab搭建一个可视化的定时任务
如果您使用过Windows计划任务或Linux的crontab,那么对“定时任务”这个名词可能并不陌生。简言之就是在设定好的时间去执行一个任务或者根据条件循环的执行一个或多个任务。Linux下的crontab需要通过命令行操作,有了jiacrontab就可以通过WEB界面来创建计划任务,比直接使用crontab简单很多。jiacrontab主要功能允许设置每个脚本的超时时间,超时操作可选择邮件通知管理者,或强杀脚本进程。 允许设置脚本的最大并发数。 一台server管理多个client。转载 2021-03-18 15:42:53 · 978 阅读 · 0 评论 -
如何用代码方式实现WordPress文章点赞
为了实现更好的互动效果,近期对Msimple主题进行了升级,增加了文章点赞功能,此功能参考了创客云的一篇文章纯代码WordPress文章添加点赞功能,在此记录和分享一下。实现思路通过 ajax 实时显示点赞数量,自定义字段保存赞数量,Cookies 禁止重新点赞。添加代码下方代码添加到主题的functions.php中:add_action('wp_ajax_nopriv_bigfa_like', 'bigfa_like');add_action('wp_ajax_bigfa_l转载 2021-03-17 17:21:53 · 561 阅读 · 0 评论 -
webpack 插件 mp-webpack-plugin
答疑Q:kbone 主要有哪些依赖包?如何安装升级 kbone 依赖?A:kbone 依赖主要包含三个:mp-webpack-plugin、miniprogram-element和miniprogram-render。其中mp-webpack-plugin是一个 webpack 插件,需要安装在项目目录中。miniprogram-element和miniprogram-render则是小程序代码的依赖,需要安装在小程序目录中。默认情况下,使用 webpack 和mp-webpack-pl...转载 2021-03-12 15:11:20 · 602 阅读 · 0 评论 -
入门:微信小程序新框架---Kbone
Kbone 框架前些天在微信上收到了微信开发者公众号的文章推送《揭开微信小程序Kbone的神秘面纱》,心想:微信小程序有新框架了?抱着学习的态度点进去看了一眼,看过之后觉得这框架也太宠开发者了吧,不愧是微信团队出品。原来这个框架早在去年就已经发布了,看完只恨自己没有早点知道消息开始学习这个框架。我写本文的目的也是为了跟个风,想要让更多的人能够知道这个框架,感受它的便利,希望好学的你可以停下脚步看看~Kbone 是什么?看到这里我也不多说了,简单介绍一下 Kbone 是什么。用官方高大上的话来转载 2021-03-11 15:40:37 · 307 阅读 · 0 评论 -
dom/bom 扩展 API
dom/bom 扩展 API为了更好地适配小程序端接口,此方案在原有的 dom 接口之上进行了扩展。window 对象window.$$miniprogram挂在 window 对象下的一个特殊对象,用于对页面作一些初始化工作(主要针对小程序页面路由相关)属性名 类型 描述 window Object 对象所属页面的 window 对象 document Object 对象所属页面的 document 对象 config Object翻译 2021-03-04 15:15:19 · 318 阅读 · 1 评论 -
开发建议与代码优化
开发建议与代码优化代码体积精简使用 webpack 的代码剔除能力可能存在部分逻辑在 web 端和小程序端需要使用不同的实现,该部分代码可以抽离成一个单独的模块或者插件,暴露接口给业务端代码使用。在模块内可以使用上述提到的process.env.isMiniprogram环境变量进行判断区分当前运行环境。比如上述提到的 actionSheet 实现就可以抽离成一个 vue 插件实现。PS:注意这里使用 process.env.isMiniprogram 环境变量时尽量不要加其他动态条件..翻译 2021-03-03 15:28:05 · 167 阅读 · 1 评论 -
美洽客服系统怎么同步顾客身份
同步顾客身份如果你的产品有多种形式(网页、APP),且都使用了美洽,那么可以使用 _MEIQIA('clientId', '顾客的唯一标识') 来同步顾客的身份(包括顾客信息、聊天记录等)。「顾客的唯一标识」来自你自己的用户系统。注意:顾客唯一标识为长度6到32的字符串 本接口不一定要紧跟在美洽的嵌入代码后面,但必须在美洽插件初始化之前使用。示例:<!-- 这是美洽的嵌入代码 --><script type='text/javascript'> .转载 2021-02-25 15:12:10 · 1043 阅读 · 0 评论 -
美洽系统怎么获取未读消息
获取未读消息美洽官方的聊天按钮可以显示未读消息的数量,以及提供最近一条未读消息的预览。如果你设置了无按钮模式,这两个数据也就无法被呈现了。但是通过 _MEIQIA('getUnreadMsg', callback); 接口,你可以从 callback 的参数中得到这些数据,用自己的方式在显示它们。注意:本接口不一定要紧跟在美洽的嵌入代码后面,但必须在美洽插件初始化之前使用。 由于存储未读消息的依赖于浏览器的 localStorage,所以在 IE8 以下的浏览器中,是无法获取未读消息.转载 2021-02-24 15:38:47 · 313 阅读 · 0 评论 -
美洽服务端开发文档
企业顾客数据对接概述美洽顾客中心可以接入企业顾客数据进行更新管理。对接主要通过接口方式,美洽在顾客对话接入的时候,主动去调用企业接口获取顾客信息更新至顾客中心。配置企业需先在美洽工作台->设置->顾客管理->顾客名片API配置进行相关配置才可使用该功能。配置说明 URL: 企业对外的域名url,需要美洽这边可以访问,如:http://meiqia.com AppID: 接口验证提供给美洽的ID AppSecret: 与ID对应的..转载 2021-02-20 16:40:04 · 547 阅读 · 0 评论