宝塔CC时提示被屏蔽
cc时直接抛出416不是很友好,而且有撞库的问题.
function drop -- 如果已经被标记,则在这个地方抛出416
function cc -- 计数器.首次触发和标记
补充html输出提醒 return_html22(config['cc']['status'],'您的请求异常已被屏蔽,有需要请联系管理员(QQ:243008827)!')
svn 调整为主线分支类型,或者将某个目录的提交记录,导入到另一个库的某个分支中.
#将reposA导出到一个文件中
svnadmin dump reposA/ > f1
-r xx:xx 指定版本范围
--incremental 只进行增量导出.少这个会导致最后版本的整个目录被导出
#将reposA中的code过滤出来,svndumpfilter include表示只保留制定的目录和文件
svndumpfilter include dirB/code < f1 > f2
#将dumpfile2导入相应的目录,也就是reposB/dirAA/,用parent-dir来指定
svnadmin load reposB --parent-dir dirAA < f2
提交步骤是合并分支到主线,再提交.如果需要查看分支的日志,日志查询时,勾选底部显示合并分支日志.
fish &&
make; and make install
phash
mysql 用法 BIT_COUNT(img_dhash ^ b'01111') ,如果不是以b'xxx'形式.直接000111形式.会导致前面的数据丢失,出现奇怪的bit_count
感知算法走的是灰度.所以对颜色变化不敏感. 同时, 感知算法.更像是图片颜色分布识别. 并不能很好的识别图像以及内容....没有学习库还是不行. 考虑走百度的图片库或淘宝的商品图片库进行商品图片识别.
百度商品图片识别已测试.符合预期效果
百度入库一天1w免费,搜索500免费.基本够用(不够用就看老板钱包了~).
nginx
一键防火墙 https://zhih.me/ngx-lua-waf/
nginx 编译后 在源码的 objs 里,要注意. nginx -V 观察编译参数
安装后,如果原来有安装后.替换 /usr/local/sbin/nginx 以及 /usr/local/nginx/sbin/
测试参数 /xxx.tar /xxx.sql 等. /?id=1 or 1=1 无效....,需要自行调整配置
elasticsearch
https://www.elastic.co/guide/cn/elasticsearch/php/current/_search_operations.html
elasticsearch sql
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html
配合postman测试
php 扩展
https://github.com/elastic/elasticsearch-x-pack-php
中文分词插件
https://www.jianshu.com/p/bb89ad7a7f7d
elasticsearch install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.0/elasticsearch-analysis-ik-7.5.0.zip
win file:///xxxx
外网开放
只改 0.0.0.0 会报错,需要配置下面两个参数,将服务器改成node
https://juejin.im/post/5cb81bf4e51d4578c35e727d
elasticsearch 降版本安装...
rpm remove elasticsearch
find / -name "*elasticsearch*" 删除所有出现的文件.不然安装低版本的会报错. rpm删除不干净导致日志部分报错
php barcode zbar
epel
wget https://download-ib01.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
yum install zbar-devel
zbarimg xxx.png 返回解析后的内容
php win 下 执行命令时, 报出一个奇怪的错误8, 切换php版本到5.6就正常, 比较神奇...原因不明
ss5 所需扩展包
https://blog.csdn.net/Vincent95/article/details/71172986
thinkphp
model update_time 被格式化问题
模型中,补充两个函数 setUpdateTimeAttr getUpdateTimeAttr 跳过系统自动格式化
php 线程安全和不安全会导致 ?undefined symbol:?core_globals 错误...
https://www.jianshu.com/p/e13efb052844
百度图片搜索坑
图片尺寸1000 + jpg... 切记不要听沙雕说尺寸问题.....漏了另一个
mysql 关联更新
update a inner join b on a.id = b.id set a.xx=b.xxx where b.xx=xxx
thinkphp 命令行模式
命令行模式一直找不到的问题
configure 动作中 setName 必需为小写且与类同名
php think xxx
think 只是一个没有php后缀的php文件
rabbitmq
php 后台运行 nohup php xxxx &
消费者消费后,标记消息
$msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
php 多线程折腾起来麻烦事较多,通过 rabbitmq 做异步消息,并补充多个消费者...加快执行速度,相对来说改动和影响较小.
recaptcha 人机交互验证
https://www.google.com/recaptcha/admin
注册.获取网站密钥和通讯密钥
页面demo:https://developers.google.com/recaptcha/docs/display
服务器demo:https://developers.google.com/recaptcha/docs/verify#api_request
国内使用
www.google.com 替换成 www.recaptcha.net 即可(js以及接口地址)
webstorm
鼠标移动,代码提示开启
Setting->Editor->General->show quick documentation on mouse move
uniapp h5 收录之神坑
#只会在客户端, 并不会传递到服务器端,导致路由参数无法传递到服务器端. 即使服务器端渲染出了静态页面, 也没用.
解决方案只能等官方的uniapp出正式的ssr 或者废了uniapp 用普通语言重写
所以官方说即使配置了关键字,二级页面也不会被收录,推荐走百度小程序....
如果不是因为#后传递参数,还可以通过chrome headless 进行静态页面渲染
发个福利...chrome headless 获取页面渲染后文档结构...
const content =await page.content(); 如果搞采集,还是不错的....vue.也可以采集和截图
tmux
https://www.ruanyifeng.com/blog/2019/10/tmux.html
tmux new -s 1
tmux ls 显示列表
ctrl b + w 显示列表并切换
ctrl b +c 新建
ctrl b + % 分屏
ctrl b + 上下左右 控制分屏
ctrl b + z 当前窗口最大化/恢复(第二次)
ctrl b + x 关闭
附加功能,通过tmux打开,shell不会断线...哈哈...
ss一键安装脚本国内安装问题...
没错,是要在国内装,做国内的代理. 打开安装脚本. 补充代理设置或者直接下载安装文件. 下载特别慢的. 手动下载,然后按照安装方式安装.
puppeteer 报错 Chromium revision is not downloaded
const browser = await puppeteer.launch({
//多加这个参数写死路径
executablePath: '/usr/bin/google-chrome'
....
服务器网页截图,拦截百度统计脚本...
特别需要注意截图的页面是否有出现死循环的问题...,同时为了优化速度,只保证打开指定域名的资源,其它资源全部屏蔽
await page.setRequestInterception(true);
await page.on('request', request => { request.url()='' ; request.abort();/request.continue(); })
php 命令行情况下,久了mysql会出现has gone away问题
wait_timeout 默认为28800,也就是说,用久了.很容易出现掉链的问题. 反过来说,要测试也容易了,改小这个值.然后执行域名命令行.再访问数据库即可.
thinkphp 数据库补充重连参数 'break_reconnect' => true,
rabbitmq 消费报错时,延迟重新执行
消息报错时处理,多声明一个交换机和队列, 关键参数
x-message-ttl 超时时间
x-dead-letter-exchange 队列超时后,,进入的路由.设置原来队列的交换机即可
x-dead-letter-routing-key 下面同上
重新发送的队列的交换机记得不要和原队列相同. 原理是
声明两个通道,原消息队列和延迟发送的消息队列,一个消费者,消费消费报错时,将消息重新发送到延迟发送队列,超时触发,然后进入死信,也就是回到了原来的消息队列,这样形成一个反复执行的过程. 然后通过rabbitmq的管理平台手动进行调控.
https://my.oschina.net/huaxian8812/blog/780086
elastcisearch 帐号密码访问
https://juejin.im/post/5c9c58fa5188250ef95d8b3c
配置
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
postman中
http://user:pass@localhost:9200
sdk中同样是补充帐号密码前缀进行登陆
手机浏览器安装谷歌扩展
https://smartphones.gadgethacks.com/how-to/use-desktop-chrome-extensions-android-0196246/
安装 kiwi 浏览器
打开 chrome://extentions
敏感词/敏感图片过滤
走微信免费接口
敏感图片, 没有做ocr处理, 色*图片会被检测出来, 但是敏感词截图, 会识别不出来...
easywechat win 下图片上传报请求超时错误, 参数名补充@即可. linux下不会, 待核实具体问题点.
mysql 主从复制
主机从机配置
https://www.jianshu.com/p/b0cf461451fb
从机延长同步时间参数
MASTER_DELAY=xxx
查了文档. mysql 8.0 才是每次传输时补充延迟, 5.7只在第一次延迟,后续都实时同步...,改成计划任务,通过计划任务控制,做延迟同步实现.
获取主机binlog当前位置. 然后从机开启, 等位置达到时,停止...
中文详细总结
https://www.fooher.com/20170502_53.html
官方配置参数列表
https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html
主从错误详细说明
http://xstarcd.github.io/wiki/MySQL/online_mysqlrepl_error.html
ssh 稳定通道 autossh + 公钥登陆(不知道为啥ssh-copy-id不成功,我直接手动粘贴到/root/.ssh/authorized_keys 一行一个公钥, 记得得开启允许公钥登陆/etc/ssh/sshd_config 里)
id_xx为默认私钥和公钥, 如果不是默认,需要通过-i 单独指定私钥
https://freeman.one/2018/12/08/ssh-tunnel/
mysql 误删除超快速恢复方案
利用主从实现数据库同步,再通过追加延迟参数,这样的数据库可以做为一个延迟备份数据库, 出现误删除操作时, 可以从这个比较慢同步的数据库中快速回复所需的数据.
恢复所需数据时,可以将商品id放入临时表中, 通过临时表,可以快速识别出丢失的数据然后进行恢复.
主从时, 主从复制时, 如果备份机或只读的那台. 没有什么特殊操作...空间比较小的时候. 可以考虑关闭binlog, 或者调整为2天. 默认是10天. 会导致生成的文件占用非常多的空间.
editplus 搜索文件技巧
Search->Find in Files
包含的文件, 如果有多个的,用 ";" 进行分隔, 不需要搜索的, 也一样是通过";" 进行分隔.
find 命令删除文件时, 如果文件包含空格或特殊字符导致的报错(rm: invalid option -- )处理
find . -name "*284x*" -print0 | xargs -0 rm -rf
find 命令详解
https://wangchujiang.com/linux-command/c/find.html
共享目录报错提示 无法访问,你 中能没有权限访问网络资源
凭证管理器, 手动添加权限
https://blog.csdn.net/luman1991/article/details/71248761
sqlserver 默认访问,无法通过端口访问问题
需要在服务器开启监听全部,才能通过端口访问, 不清楚默认情况下走什么协议
sql server 网络配置-mssqlserver的协议>tcp/ip 是否启用, 属性中是否监听全部
查询当前所监听端口
exec sys.sp_readerrorlog 0, 1, 'listening'
正常需要看到5条记录,1434和1433
sa 登录需要在安全中设置为混合登录.
nodejs 热更新
require 只会引入一次,必定是有缓存,同时是以绝对路径为缓存标志,路径分割是"\",win下如果出现拼接时,需要注意"/",需要替换成目标路径
检测文件是否被二次加载,只需要在加载文件中console.log即可
删除缓存
delete require.cache[pwd];
isntall 时报错 operation not permitted
需要删除lock文件
package.json 不存在, 只能npm init初始化... 不保留svn是原罪.
navicat 12.1.x注册提示找不到rsa
文件都复制到目录, 最好删除原来的, 然后安装时路径多个加版本号.
以管理员权限运行注册机, 其它参考教程
egg-view-ejs 配置正确还报错:Can't find viewEngine
检查 cxt.render 前是否有加await.
VMware 虚拟机无法复制
虚拟机设置,选项,客户机隔离,取消,再保存一遍