自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 安装confluence(docker-compose)

Confluence是一个专业的企业知识管理与协同软件,功能强大。本人特意编排了Confluence的docker-compose.yml文件,下面说下使用方法github地址:docker-compose up -d访问ip:8090双击confluence_keygen.jar(在上面的github中opt/app/confluence/confluence/lib,需要安装java)将Server ID填入,并点击“.gen”按钮和.patch!”按钮并选择atlassian-ext

2021-03-19 19:24:35 384

原创 golang编码转换

golang编码转换,支持多种数据结构package toolsimport ( "bytes" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" "io/ioutil")type EncodeConversion struct {}func (e EncodeConversion) Conversion(data interface{}, t transfor

2021-02-24 21:27:31 644

原创 docker-compose搭建gitlab并配置邮箱

自己搭个gitlab玩玩,需提前安装好docker和docker-compose1、设置gitlab目录环境变量export GITLAB_HOME=/srv/gitlab2、创建docker-compose.yml文件services: gitlab: image: 'gitlab/gitlab-ce:11.9.6-ce.0' restart: always hostname: 'docker.zy.com' environment: - TZ=A

2020-06-26 17:42:20 1454

原创 guzzle请求重试

Guzzle是一个PHP的HTTP客户端,可以发送同步或异步的请求,中间件系统允许你创建构成客户端行为。在网络不稳定或者其他一些原因导致会偶现请求失败的情况,所以就需要根据一定规则进行请求重试而本文中请求重试就是利用中间件系统实现的。使用php的trait特性use GuzzleHttp\Client;use GuzzleHttp\Psr7\Request;use GuzzleHttp...

2020-04-25 14:28:59 2295 3

原创 js实现点击查看大图功能

使用layui的弹窗实现点击查看大图功能function getImage(url, callback){ let img = new Image(); img.src = url; if(img.complete){ callback(img.width, img.height); }else{ img.onload = func...

2020-04-19 15:48:07 5025 1

原创 滑动窗口实现访问频率限制

滑动窗口实现访问频率限制使用redis的有序集合实现滑动窗口,从而实现对访问频率的限制思路一思路二使用redis的有序集合实现滑动窗口,从而实现对访问频率的限制主要思路有两个思路一以时间戳为有序集合的成员每次请求,先使用ZREMRANGEBYLEX命令移除窗口外的成员使用ZRANGE命令获取有序集合的成员和相应权重使用ZINCRBY命令对相应的成员的权重加一使用EXPIRE命令重...

2020-04-18 18:14:37 1108 4

原创 在Linux上安装go

这里介绍两种方法,一种是下载下来直接使用,还有一种是编译安装方法一(下载直接使用):1、配置环境变量打开$HOME/.bashrc(有可能是$HOME/.profile)vim $HOME/.bashrc#写入export GOROOT=$HOME/goexport PATH=$PATH:$GOROOT/binexport GOPATH=$HOME/Applications/Go...

2019-11-11 18:12:32 863

原创 Nexus3.x 的私有仓库安装及配置docker仓库

1、安装Nexusdocker run -d --name nexus3 --restart=always \ -p 8081:8081 \ -p 5000:5000 \ --mount src=nexus-data,target=/nexus-data \ sonatype/nexus3注:8081端口是开放给后台使用的,5000端口是开放给仓库使用的,换成别的端...

2019-11-10 17:03:56 905

原创 Docker安装教程(centos)

1、配置docker yum源yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repoyum makecache fast2、安装Dock...

2019-11-10 15:15:59 608

原创 Phalcon搭建多模块框架九:增加自定义验证器

phalcon提供的验证规则可能满足不了我们的需求,这时候我们可以增加验证规则。 下面我们开始添加一个18位居民身份证的验证器。 1、在library/validators下创建IDNumber.php文件<?php/** * @desc 中华人民共和国居民身份证(18位)校验 * @author zhaoyang * @date 2018年5月13日 下午7:27...

2019-11-10 14:25:28 830 2

原创 关于htmlspecialchars抛出warning解决方案,phpoffice/phpspreadsheet导出xlsx提示格式不正确

最近项目中要导出excel,于是使用了phpoffice/phpspreadsheet,但当导出xlsx格式时抛出warning:PHP Warning: htmlentities(): charset `gbk' not supported, assuming utf-8 in ...导致导出的xlsx无法打开,提示格式不正确,因为这些warning随着ob缓冲区写入了文件。虽然项目是...

2019-07-10 16:25:12 868

原创 解决虚拟机curl请求慢的问题

不管是代码里发起的请求还是通过curl命令请求都很慢,比如运行time curl http://www.baidu.com时间大概是5秒多,非常慢,这是因为ipv4和ipv6冲突了,解决办法如下:vim /etc/resolv.conf#写入options single-request-reopen再次发起请求,时间大概是0.1s...

2019-06-18 18:49:35 5470

原创 centos安装ftp,并指定访问多个目录

1、安装yum install -y vsftpd2、可以运行这一步启动服务,然后使用匿名账户测试(非必须)systemctl start vsftpd.service3、加入开机自启systemctl enable vsftpd.service4、修改配置文件vim /etc/vsftpd/vsftpd.conf做以下修改:#修改配置anonymous_enable=...

2019-06-17 18:40:33 4171

原创 php hash碰撞攻击与防御

一、前言hash碰撞攻击就是构造恶意的数据是hash表退化为链表,每次插入数据都会遍历链表,消耗大量服务器资源,从而达到攻击目的。php的数组就是利用hash表实现的,对于碰撞的数据,php采用双向链表解决方案,所以可以利用PHP的数组进行hash碰撞攻击。二、模拟攻击很多接口都采用json数据格式来传输,通常php都会使用php:input获得数据流,然后使用json_decode解析js...

2018-12-01 17:56:49 1284

原创 短信防刷机制设计

短信验证码可以验证手机号的有效性,短信验证应用的地方越来越多,写这篇博文的原因是因为最近我司最近弄了个H5活动,有个发送短信验证码的功能由于java组没做防刷机制导致短信被刷。而他们的解决办法令我匪夷所思,因为根本起不到作用。所以想写一篇关于防刷的博文。短信被刷也算网络攻击的一种,网络攻防一直是相爱相杀的存在。没有绝对的防御,只有不断增强防御,提高攻击者的攻击成本,使其攻击成本高于收益,从而放弃...

2018-11-24 17:03:29 2854 2

原创 MySQL5.7数据库优化之表设计

一个数据库、表设计的优劣会影响到数据库的性能,所以合理的设计数据库是非常重要的。最近看了MySQL5.7手册,手册第八章就是关于优化的,第十一章详细的介绍了各个字段。如果你有兴趣可以去看看,相信会收获颇丰。下面根据手册及结合平时开发经验还有大学学的数据库原理来谈谈一些自己的见解。由于水平有限,难免会有错误及疏漏的地方,欢迎指正。一、数据库的创建创建数据库非常简单,只不过,建议给数据库指定默认...

2018-11-18 17:01:15 915

原创 phalconcms使用教程七:表单模型的使用

表单模型主要有两个作用:第一个作用:创建前端所需要的数据,比如banner之类的。第二个作用:就是前端表单提交,比如调查问卷之类的。首先介绍第一种,就以banner图举例。1、创建banner表单模型1、创建模型会自动创建一个id自增主键字段2、内容排序默认是id降序,即id DESC,也可以使用自己创建的字段排序这样就创建一个表单模型了接下来给模型添加字段2、点击字段管理=...

2018-10-14 01:50:57 493 1

原创 phalconcms使用教程六:扩展模型的使用

有的栏目字段可能不满足需求,需要增加字段,扩展模型就是为其而生的。1、创建扩展模型此时在列表页就可以看到创建好的模型了这个时候点“字段管理”就可以管理该模型的字段了,需要什么字段就可以添加什么字段2、添加字段点击添加字段可以看到如下图:字段类型支持九种,能基本满足常规需求。字段属性支持五种,会根据字段类型推荐使用属性。varchar可以填写字符串int只能填写整数date...

2018-10-10 23:38:34 269

原创 phalconcms使用教程五:单页面栏目的使用

之前在后台添加了一个单页面栏目,如下图在首页调用栏目时可以看到访问这个单页面栏目就能获取单页面的内容分页数取决于内容中的[page]标签在单页面模板中可以使用如下变量快速获取信息:导航:{% for value in nav %}<a href="{{ url('category/' ~ value['urlname']) }}" target="_blank">...

2018-10-09 22:47:09 180

原创 phalconcms使用教程四:新闻栏目的使用

在 phalconcms使用教程三中介绍了栏目的调用,下面详细介绍新闻栏目的使用。一、创作内容新闻栏目主要是发布文章用的,所以需要先在内容管理中添加文章。点击添加内容后就可以编辑文章了此页面共分为3个模块,分别是基本内容、高级信息和扩展信息。1)标题可以选择颜色和是否加粗2)可以选择推荐位,只需在扩展管理的推荐位模块中添加推荐位即可,比如“火热”3)内容同样支持分页4)提取描述...

2018-10-08 22:39:56 233

原创 phalconcms使用教程三:栏目的使用

一、栏目模型介绍本系统支持三种栏目模型,分别是新闻栏目、页面栏目和跳转栏目。1、新闻栏目又分为频道栏目和列表栏目,频道栏目不能发布内容,列表栏目可以发布文章、新闻等。2、页面栏目可以用来发布单个页面内容,例如公司简介、联系我们等。3、跳转栏目可以实现跳转站内或站外地址。二、栏目的使用1、新闻栏目1)支持批量添加,当不填写url名称时会自动生成url名称,主要用于前台访问。当然也可...

2018-10-07 23:04:33 279

原创 phalconcms使用教程二:模板和配置的使用

一、phalconcms共支持三种模板,分别是volt、smarty和php。以.volt为后缀的模板文件使用volt语法以.phtml为后缀的模板文件使用原生PHP语法以.html为后缀的模板文件使用smarty语法当然,volt和smarty也支持原生PHP语法。调用模板时不能指定模板后缀,只能指定模板名称,系统会自动匹配相应模板。匹配的优先级依次是.volt>.phtml&gt...

2018-10-07 18:01:58 516 2

原创 phalconcms使用教程一:安装配置phalconcms

欢迎使用phalconcmsphalconcms使用phalcon(V 3.*)框架,有以下特色功能:丰富完善的权限管理机制支持多国语言支持栏目扩展支持移动版和指定模板主题支持模型缓存、模板缓存、页面缓存支持批量上传、缩略图、水印等支持内容审核机制自动生成表单功能支持自定义变量、内容替换、tag、推荐位等支持智能翻译、翻译纠正等支持的模板引擎有phalcon自带的volt...

2018-10-06 20:12:01 728 7

原创 Redis配置主从复制,实现读写分离

前言:由于redis的高性能,在应用中对其依赖很高,有时候一台redis服务器性能不够,需要配置redis集群。最简单的就是一台用来读,一台用来写。一般对读的需求比较大,所以可以配置一主(读)多从(写)。 本次是在本地搭建两台虚拟机分别做一主一从。 ip为192.168.2.100为主服务器 ip为192.168.2.101为从服务器一、安装redis首先...

2018-09-04 22:27:59 10253 7

原创 封装php分页类

最近在用phalcon写一个支持多国语言的cms,不太喜欢phalcon的分页,所以自己写了个分页工具类。 该分页类支持自动获取解析url,还支持高度自定义 例如:自定义分页参数名自定义选中页、禁用页的class值自定义首页、上一页、左边页、当前页、右边页、下一页、后缀自定义各按钮位置自定义左边或右边显示按钮个数自定义替换规则自定义是否显示无效按钮(首页、上一页、下一页、尾页...

2018-07-21 23:53:25 4077 1

原创 安装php的redis扩展

安装PHP的redis扩展会用到一些编译工具,我在安装lnmp的时候就安装好了,这里不再安装,直接俺咋混个redis。一、安装1、下载redis[root@localhost ~]# cd /var/local[root@localhost local]# wget http://pecl.php.net/get/redis-4.1.0RC3.tgz2、解压及安装...

2018-07-03 23:38:46 390

原创 CentOS7下安装redis

项目中常常会用到redis和MongoDB,有时候甚至会用到redis集群,不过通常项目不需要使用到集群。 在安装redis之前需要先安装tcl依赖,redis-4.0.10需要tcl-8.5及以上版本一、安装tcl8.6.11、将下载wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz[root@localhos...

2018-07-03 01:10:37 529

原创 安装lnmp(CentOS7、PHP7.1、MySQL5.7、nginx1.14)

一、安装CentOS Linux 7 1、不用检测,直接选择install回车 2、选择中文版 3、系统配置,如果不需要手动分区,则不用设置分区 4、点击网络与主机配置网络,打开网络 5、点击配置(如果不需要配置静态ip则跳过本步骤) 6、点击开始安装 7、这个时候可以创建ROOT密码和创建一个普通账户(设置完成后就等待安装完成) 8、重启 9、重...

2018-06-23 22:36:04 3842 2

原创 Phalcon搭建多模块框架三十三:创建smarty模板引擎适配器并注册smarty引擎服务

在前面我们有提到phalcon可以整合第三方视图模板引擎,例如smarty。虽然phalcon提供了强大的用C写的volt模板引擎,但我还是尝试让它支持smarty。 1、在library目录下创建vendors目录用来存放第三方包的。在vendors创建smarty目录,并将下载的smarty包放入。 2、在library目录下创建adapter目录用来存放创建的适配器。 在adapt...

2018-06-22 00:01:03 633

原创 Phalcon搭建多模块框架三十二:完整的框架代码(改进版)

本来准备引入smarty模板引擎的,但发现怎么引入都不合理,也不利于扩展。同时之前一直处于边学习边搭建,有的地方不是很合理,所以对代码进行了优化。 下面根据下图顺序贴出框架完整代码。 1、public/index.php,这是web入口文件<?php/** * @desc 入口文件 * @author zhaoyang * @date 2018年5月3日 下午5:16:2...

2018-06-21 15:19:46 1253 5

原创 Phalcon搭建多模块框架三十一:数据库读写分离

phalcon除了可以设置不同模型连接不同的数据库还可以设置数据库读写分离。下面就说说怎么使用主从设置。 1、修改config下的配置文件(三种模式下的配置文件) 修改'db' => [ // 是否记录执行的mysql语句 'logged' => true, // 记录执行时间超过0秒的mysql语句 'max_execute_time...

2018-06-19 23:06:23 1066

原创 Phalcon搭建多模块框架三十:创建单模块命令行应用

Phalcon搭建多模块框架二十九是创建多模块命令行应用,但有时候项目很小,可能命令行应用只有几个文件不需要分模块。这个时候单模块就很方便。 在开始之前还是需要用到二十九中的前两步,创建define.php文件。 1、在cli目录下创建cli.php文件<?php/** * @desc 命令行入口文件 * @author: ZhaoYang * @date: 2018年6...

2018-06-18 21:58:57 780

原创 Phalcon搭建多模块框架二十九:创建多模块命令行应用

前二十八篇文章已经创建了一个完整的web多模块应用,但项目中往往会用到一些需要在后台执行的脚本,这就用到了命令行应用(CLI应用)。这样就可以很方便的在脚本中使用很多服务。 phalcon的命令行应用与web应用相似,分为单模块和多模块。这次创建的是多模块命令行应用。 1、为了代码复用性,我们需要对public/index.php进行修改,将定义常量单独提取出来,放入define.php文...

2018-06-18 18:55:29 1089

原创 Phalcon搭建多模块框架二十八:封装curl工具类并模拟api接口请求与响应

在开发中经常会需要写接口给别人调用或者调用别人的接口,通常使用http post发送json格式数据,响应也往往是json格式数据。除了必要的签名,有时候为了数据安全还需要对数据进行对称或非对称加密。这里我们只是模拟post请求发送和响应json格式数据。 1、在library/tools下创建HttpCurl.php工具类<?php/** * @desc curl工具类...

2018-06-14 22:41:33 844

原创 Phalcon搭建多模块框架二十七:创建后台(admin)模块

对一般项目来说,一个项目通常有后台模块(admin)、前台模块(home)、app的接口模块(api),有的可能还有微信公众号模块(wx?wechat?)。我们这个框架的终极目标是多模块框架,之前一直在home模块下测试配置,现在基本配置已经完成了,可以很方便的新增一个后台模块(admin)。 1、打开入口文件public/index.php 将MODULE_ALLOW_LIST常量增加一...

2018-06-12 20:43:45 1407 2

原创 Phalcon搭建多模块框架二十六:设置开发环境、测试环境、生产环境配置文件

在项目开发维护中,一般情况下会有三种环境,分别是开发环境、测试环境、生产环境。开发通常在本地开发,调试好了发布到测试环境由测试人员测试。测试用过后适时发布到生产环境。所以一般需要有三套配置文件。我喜欢分别命名为config_dev.php(开发环境配置)、config_test.php(测试环境配置)、config_pro.php(生产环境配置)。 1、将原来config下的config.p...

2018-06-11 22:56:17 1210

原创 Phalcon搭建多模块框架二十五:处理程序异常信息

由于程序在运行过程中往往会因为一些已知或者未知的错误导致异常,所以需要对这些异常进行处理。生产环境的异常我们不希望被用户看到,所以一般写入文件中。开发阶段往往直接打印出异常或者写到日志文件中调试。 1、打开config/config.php,添加'application' => [ 'debug' => [ 'state' => false, ...

2018-06-10 21:34:10 1338

原创 Phalcon搭建多模块框架二十四:注册security服务并模拟登录

使用Security可以将密码散列、防止跨站点请求伪造攻击、防表单重复提交等。 1、打开config/config.php,添加'security' => [ // 设置由openssl伪随机生成器生成的字节数 'random_bytes' => 16, // 设置默认hash,0=7(CRYPT_BLOWFISH_Y),1(CRYPT_STD_D...

2018-06-10 02:43:19 985

原创 Phalcon搭建多模块框架二十三:注册flash和flashSession服务

通常做一个操作会通知用户当前操作的状态。这就用到了Flashing Messages。 flash和flashSession最大的区别就是,flashSession会将消息存储在session中。 通过下面的例子就会很清楚的知道二者的区别。 1、打开config/config.php,添加如下'flash' => [ // 消息class属性值 'css_c...

2018-06-09 22:01:38 610

原创 Phalcon搭建多模块框架二十二:注册url服务

Phalcon\Mvc\Url 组件负责在Phalcon应用内生成URL。它依赖路由生成独立的URL。我们可以对它进行配置,从而在项目中更好的生成url。 1、打开config/config.php,添加如下配置'url' => [ 'base_uri' => '/', 'static_base_uri' => '/', 'base_path' ...

2018-06-06 21:44:20 577

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除