- 博客(49)
- 收藏
- 关注

原创 Linux升级Swoole及gcc
因业务方面需要升级swoole,从2.2升级到4.51.wgethttps://github.com/swoole/swoole-src/archive/v4.5.2.tar.gz2.tar -zxvf v4.5.2.tar.gz3.cdswoole-src-4.5.24.在当前目录执行phpize,由于我用的是宝塔,所以我的执行命令是:/www/server/php/72/bin/phpize;5../configure --with-php-config=/www/server...
2020-08-24 19:19:30
876
3

原创 支付宝H5网页支付
因需求要做H5支付,用csdn记录一下吧。还是老样子,先写实现思路再写实现过程。把阿里的官方文档贴上吧:https://docs.open.alipay.com/203/105288/实现思路:1.创建应用,等待阿里官方审核。审核通过后会拿到appid 2.生成秘钥、配置秘钥(秘钥分公钥和私钥,都得用上) 3.下载...
2019-11-06 15:34:32
24159
2

原创 引入阿里云滑动验证码(人机识别)
我们的验证码被人盗刷,各种防盗机制用了个遍,可是道高一尺魔高一丈。迫不得已用了阿里验证码引入阿里验证码的好处 通过对用户的行为数据、设备特征与网络数据构建多维度数据分析,使用业界先进的风控引擎结合“规则+AI”模型,对风险设备使用、模拟行为、暴力重放等攻击进行综合实时风控判决,解决企业账号、活动、交易等关键业务环节存在的欺诈威胁,降低企业经济损失。 用户体验好...
2019-09-18 12:05:46
41430
原创 php操作es7.0基本操作(增删改查,实现es索引type id增)本人用来做日志记录
首先说明一点,es本身是不具有id自增的功能,我们可以通过代码去实现它。但是,非常不建议这样做,这样会造成es的压力过大,如果记录的是日志的话,很容易挂掉。上代码$client = ClientBuilder::create() ->setHosts(['10.254.19.179:9200']) ->build();//创建索引 $params = [ 'index' => 'test_index',
2022-05-19 22:31:23
1382
原创 解决php创建es索引no handler found for uri [/my_index/my_type/my_id] and method [PUT]
请将es版本降级,我将到7.0后就可以了这个原因是新版本的es 一个索引里没有type老版本是一个索引可以有多个type
2022-05-18 16:54:55
1309
原创 windows上ES服务启动成功远程却访问不了
打开elasticsearch.yml 添加配置 (允许所有ip都访问)添加 http.host: 0.0.0.0
2022-05-18 16:50:51
1149
原创 linux更改ssh连接方式将publickey改为用户名密码登录
1.vim /etc/ssh/sshd_config 2.PermitRootLogin no 改为 PermitRootLogin yes3.service restart sshd
2022-05-07 14:52:23
895
转载 感觉 PHP-FPM 进程不够?
TOC]感觉 PHP-FPM 进程不够?作为一个 phper,用的最多的架构就是 LNMP。每次一到流量来了,我们的服务就从原来的 几百毫秒到几秒的时间。这个时候我们各种猜测,mysql 有慢 sql,redis 有大 key,php-fpm 进程数不够等等情况。其中可以通过业务的一些日志来排查如上情况。我们这次主要证明的却是 php-fpm 进程数不够情况的实践。重现现场将我本地的的 PHP-FPM 进程数调整为 2#vim /etc/php-fpm.d/www.confpm = sta
2022-03-25 15:02:15
461
原创 PHP混淆加密+递归加密文件
背景:因为我们要做saas私有化部署,所以考虑将部署在第三方机器上的代码进行加密途径:网上找了一个PHP混淆加密(enphp),此加密脚本也是用PHP写的漏洞:有加密就有解密,漏洞肯定是存在的,比如我一眼就看出来一个: 这个加密方式会将int类型的数字转换为16进制,那么同理,解密也是将16进制转换为10进制。官方sdk地址:enphp_opensource: 一个开源加密混淆 PHP 代码项目使用方式:可以点进链接看使用说明。其实很简单,传个参数就行。更改sdk:因为sdk...
2022-03-22 19:12:24
1238
2
原创 docker-容器安装vim&&更换apt源为aliyun
事情是这样的,我要用vim更改容器的host。一看无法识别vim,然后就用apt-get安装(因为docker容器内核是ubuntu,所以用apt-get)第一次安装运行了10几分钟,我就嫌弃太慢了。直接把apt源换位163的源了(但是我没有vim就无法更改源文件更换源地址,因为我要安装的正是vim,这能气死人。这种问题的解决方案,直接删除/ect/apt/sources.list。然后用echo "源地址" >> /etc/apt/source.list 写入就行了)第二次安装显示成功
2022-02-15 10:24:01
1244
原创 PHP敏感词汇过滤SDK(树形结构遍历命中违禁词)
先介绍一下匹配敏感词原理吧,因为没有工具,画的很糙,有疑问直接联系我。(绿色箭头代表命中敏感词,灰色:未命中)比如说“可以”是敏感词,那么遍历到“以”的时候直接终止遍历比如说输入“可口”的时候,遍历到“口”的时候,这时候的文字状态是false,所以程序上认为“可口”并非是敏感词(在树上的每一个文字都有一个end状态,只有最后一个字的end=true,其他都是false)实现步骤首先将 lustre/php-dfa-sensitive composer下来composer 官网地址
2021-12-29 15:50:52
1155
原创 laravel过滤富文本提交的标签(防止XSS等js脚本攻击)
1.安装sdkcomposer require mews/purifier2.完成后,在配置文件config/app.php的providers中注册HTMLPurifier服务提供者:'providers' => [ // ... Mews\Purifier\PurifierServiceProvider::class,]然后在aliases中注册Purifier门面:'aliases' => [ // ... 'Purifier' => Mews\Puri.
2021-12-23 11:12:19
966
原创 composer install报错
执行composer install遇到错误:Your requirements could not be resolved to an installable set of packages.这是因为不匹配composer.json要求的版本。提示我的PHP 7版本太高,不符合composer.json需要的版本,但是在PHP 7下应该也是可以运行的,composer可以设置忽略版本匹配,命令是:composer install --ignore-platform-reqs # or comp.
2021-05-26 11:09:58
2248
原创 引入workerman web-send-msg(做站内信实时推送功能)神坑(
其实我自己想写原生的,但是官方封装的又完善又节约时间成本,想了想还是用官方的的吧web-send-msg是基于workerman开发的,部署web-send-msg也必须引入workermanwokerman部署好后运行时报以下错误,这个错误很好解决,原因是sdk里的代码兼容问题。我们直接更改sdk里的代码Unknown command: cronMessageUsage: php yourfile [mode]Commands:start Start worker in DEBUG m
2021-05-21 17:54:35
687
12
原创 websocket站内信实时消息推送
因需求要做站内信并且是实时消息推送的,考虑到ajax轮询太耗费资源(故使用websocket服务器做此功能使用wokerman官方出的一款专门做消息推送的sdk 贴上官方地址https://www.workerman.net/web-sender官方默认监听端口为2020(可自行更改)官方默认推送端口为2021(可自行更改)实现思路:因为我用的yii框架1:引入基于wokerman的消息推送sdk2:将sdk兼容到框架yii3:开启服务实现过程1:引入compos..
2021-05-21 17:25:51
2440
原创 git忽略文件不生效
执行以下代码就可以了git rm -r --cached .git add .git commit -m'update .gitignore'
2021-05-17 10:16:38
135
原创 Excel字段与数据库字段进行匹配(自定义算法
贴一个算法吧,希望对大家有帮助 /** * excel字段与数据库字段匹配 * 自定义算法(抽象化) * * @param $excelData * * @return array */ public function dataHandle($excelData, $title) : array { $title = array_flip($title); $values = $te
2021-05-14 23:41:53
920
原创 记录一下PHPexcel导出——文件打不开
记录一下PHPexcel导出神坑:在代码末尾加入exit(); 否则文件打不开神坑原理总结(盲猜):在我们使用的框架中(前后端分离架构)响应参数时会有一些参数过滤机制,会重新声明参数类型 或者header ,从而导致文件损坏打不开1:设置标题2:设置内容3:声明header4:抛出文件5:这段代码稍微改一改就可以变为抽象化代码/** * 案件导出 * * @param $param * */ public funct
2021-05-06 10:43:23
337
原创 swoole平滑重启的两种方式
#通过shell脚本进行平滑重启echo "loading....."#(查看进城别名对应的进程号)pid=`pidof live_master`#杀死worker进程kill -USR1 $pidecho "loading success"#通过onRequest事件接受重启命令进行重启(官方)if (isset($request->get['sys_reload'])) { //$GLOBALS['glb'] = tools::serverInit( (.
2020-12-31 16:18:32
1004
原创 linux + swoole定时器 + php监控服务进程稳定性
<?php/** * 监控服务 ws http 8811 * Created by PhpStorm. * User: fanbin * Date: 20/12/31 * Time: 下午16:32 */class Server { const PORT = 8811; public function port() { $shell = "netstat -anp 2>/dev/null | grep ". self::PORT . " |
2020-12-31 15:44:54
205
原创 swoole完美支持tp5
<?php//http服务use think\Container;$http = new Swoole\Http\Server('0.0.0.0', 8811);$http->set([ 'enable_static_handler' => true, //开启静态文件请求处理功能,需配合 document_root 使用 默认 false 'document_root' => '/var/www/html/study/tp5/public/stati
2020-12-29 17:00:15
281
原创 微信公众号发送模板消息
微信公众号发送模板消息附上微信公众平台文档链接:https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl实现思路:1.在公众平台配置好参数(授权地址、授权回调地址、模板消息模板 。三者缺一不可)2.获取access_token https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html3.拼装数据格式4.
2020-11-12 16:42:29
1047
2
原创 微信公众号获取openid
话不多说,直接上代码,注释都有附上微信公众平台链接:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html$code = I("get.code");if(!$code){ //加密回调地址 $call_back_url = urlencode('http://5xx7p5.natappfree.cc/Rest/flow/sendPasswordMs.
2020-11-11 18:11:34
394
2
转载 Nginx 记录request和response为日志
1. 下载安装LuaJIT 1 2 3 4 5 # cd /usr/local/src # wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz # tar -xzvf LuaJIT-2.0.2.tar.gz # cd LuaJIT-2.0.2 # make 出现如下内容表示编译成功 1 2 3 4
2020-07-14 19:00:08
2123
原创 Nginx.conf配置文件详解
########### 每个指令必须有分号结束。##################user administrator administrators; #配置用户或者组,默认为nobody nobody。#worker_processes 2; #允许生成的进程数,默认为1#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,ser.
2020-07-14 18:29:16
10480
原创 记录一下TP3的ORM,学习参考
<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkphp.cn All.
2020-07-06 17:17:56
12051
转载 二叉树图解
二叉树的顺序存储结构就是用一维数组存储二叉树中的节点,并且节点的存储位置,也就是数组的下标要能体现节点之间的逻辑关系。—–>一般只用于完全二叉树链式存储—–>二叉链表定义: lchild | data | rchild(两个指针域,一个数据域)typedef struct Node { ElemType data; struct Node *lchild, *rchild;}BiTnode,* BiTree;注意点:1)已知 前序遍历序列 和 中序遍历序列,.
2020-05-28 11:34:09
24020
原创 前后端分离 通过nginx.conf header解决跨域问题
可以将以下代码放入接口返回时声明,也可以在nginx.conf里直接配置。都是配置一次就行,都不麻烦。。header("Access-Control-Allow-Origin:http://a.com");//允许a.com发起的跨域请求//如果需要设置允许所有域名发起的跨域请求,可以使用通配符* 但是一般不要用*,因为这样很危险。测试环境用就好header("Access...
2019-11-15 17:03:57
21731
原创 PHP Spider爬虫
注意:要建立好对应的数据库字段,必须在cli模式下运行程序1.通过composer安装phpspidercomposer require owner888/phpspider2.直接上代码<?phprequire '/vendor/autoload.php';use phpspider\core\phpspider;//调用phpspider的配置$confi...
2019-09-05 15:57:35
28229
转载 composer切换国内镜像
镜像用法有两种方式启用本镜像服务:系统全局配置:即将配置信息添加到 Composer 的全局配置文件config.json中。见“方法一” 单个项目配置:将配置信息添加到某个项目的composer.json文件中。见“方法二”方法一:修改 composer 的全局配置文件(推荐方式)打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下...
2019-09-05 15:15:07
27868
原创 PHP概率抽奖算法
好久没更新博客了,从有道云里搬几个吧/** * 概率抽奖算法 * * @param $proArr 奖品列表 * * @return array|int|string * */function getRandPrize($proArr){ $result = $arr = []; foreach ($proArr as $key => $val) ...
2019-09-05 14:15:58
27796
转载 composer一键安装Yaf目录骨架
配置php.ini将以下配置[Yaf]yaf.use_namespace = Trueyaf.use_spl_autoload = True生成项目切换到你的网站根目录, 运行composer create-project church/yaf-template yaf-website dev-master...
2019-03-19 10:12:56
28397
转载 乐观锁和悲观锁的应用场景
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在...
2019-01-29 13:51:43
1650
原创 redis使用规范
设置超时时间[最重要]每个存储数据都需设定生存时间,否则导致一直占用内存。尽量不使用非0数据库Redis单例模式有16个数据库(0-15),默认使用0号数据库。Redis官方的集群方案,默认只使用0号数据库,为后续扩展性,业务中禁止使用非0数据库。 冷热数据分离,不要将所有数据全部都放到Redis中高频数据存入Redis缓存,低频数据不要存入Redis缓存。高频数据是经...
2019-01-08 16:49:36
4948
原创 git常见问题及解决方案
一、 创建与合并分支1、 从master分支创建dev分支并切换到dev分支git checkout mastergit checkout -b dev其中,git checkout -b dev 等价于:git branch devgit checkout dev(1)git branch查看本地当前的分支,分支前面带“*”表示当前分支,剩下的分...
2019-01-08 16:48:04
28152
转载 小程序开发-curl请求curl_exec返回false,curl_error返回空
小程序开发,调用小程序登录接口获取sessionkey,使用curl_exec返回false,写法如下:$get_token_url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=author...
2018-11-26 17:59:52
30265
原创 nginx服务器 在域名隐藏/去掉index.php(网站伪静态)
vhost文件里加上下边代码。 location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; ...
2018-09-20 10:27:09
24355
3
转载 PHP上传图片至OSS
阿里云上传类<?phpUSE OSS\OssClient;USE OSS\Core\OssException;require "OssUpload/autoload.php";Class AliUpload{ public function __construct(){ $this->init(); } public fun...
2018-08-16 14:30:08
27064
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人