2019-07 至 2019-11 懒人笔记

tcpdump 监听指定端口和远程客户端
  curl 指定目标服务器ip发起请求,用于测试内网和外网的访问,最近一个狗血护网,外网(机房)给堵了某些参数,通过监听和内外网分别请求证明服务器正常. 外网带特殊参数时, 完全监听不到目标客户端的请求
    curl  -x xxx:80 http://xxx -data 'xx=xx&xx=xx'
  中间有反向代理,通过过滤响应头识别目标机器
    tcpdump  port \(80 or xxx\) and  host \( xxxx or xxxx\)  -vvvs 1500 -l -A | grep xxxx
electron
  notification 官方的,使用限制颇多,win10下,老是碰到各种奇怪问题,通过node-notify代替
    https://www.npmjs.com/package/node-notifier
    bug记录:node-notify on click 多次执行,会出现重复注册的问题.需要添加个标记变量修复.
visual studio 6.0
  稳定版本 6.0.9782.2 ...需要打sp6补丁...  不然有一堆神奇的bug
php soapclient  代理
  补充代理,重写__doRequest ,使用curl
    构造函数调整修改为自动non-wsdl形式,wsdl形式为php底层实现,无法走socks5代理.会报错.
ss5 防火墙冲突 icmp-host-prohibited 该句会导致后续开放端口失效
php session 锁
  https://log.zvz.im/2016/02/27/PHP-session/
  切换成redis版本或者通过cache模拟session效果.不过防止session开启,需要跳过过滤器相关
  session_write_close 主动关闭,注意关闭后session_status 是1, 是关闭状态,会导致后续$_SESSION类写入,无法写入文件保存,需要通过 session_start 开启,激活状态是2
    tp 通过重写Session::set xxx相关操作. 实现自动关闭, 每次执行时, 程序会自动开启session.
  记录一个session的诡异问题链接相同的时候.写入有效,但是读取无效.即使手动激活.一定要追加个参数区分开链接
linux 分区大小调整
  fdisk -l 显示磁盘详细信息, 相关分区信息, 扩容的前提是磁盘本身够, 不够云主机类扩容, 或者加硬盘, 挂硬盘到大文件目录
  df -h 检查分区使用情况(包含挂载情况)
    需要检查清楚是否有别的挂载同时挂载到已经挂载的目录里,都需要从里到外依次卸载.
  没有线程,依旧被占用,检查虚拟内存是否设置在目标分区中,需要关闭对应的虚拟内存
  fuser -km /xxx 强制关闭目标分区所有进程
  umount -f /xxx 卸载目标分区
    可以直接卸载目标盘,也可以卸载目标挂载后的路径
    通常是配制在/etc/fstab中,同时可以观察虚拟内存的设置
  fdisk /dev/xxx
    进入目标分区,按m根据提示进行相关操作
    p 打印磁盘分区详细信息, 记录好分区当前开始位置.
    d 删除需要扩容的分区表信息
      删除后,只是临时的,还未正式写入
    n 设置新的分区信息,输入刚才记录好的分区起始位置和结束位置,如果希望全部,则将范围最事的数字输入即可,默认是原来的大小
    w 写入分区信息
      注意此时文件系统并未生效.需要通过
        sudo e2fsck -af /dev/www
        sudo resize2fs /dev/www
      分配文件系统大小
Table 'performance_schema.session_variables' doesn't exist
  直接复制数据库到新版本mysql时出现
  多种解决
    mysql_upgrade -u root -p --force
php excel 导出避免数字问题
    $phpexcel->getActiveSheet()->getStyle('C' . $i)->getNumberFormat()->setFormatCode("@");
    $phpexcel->getActiveSheet()->setCellValueExplicitByColumnAndRow ( 2, $i, $val['model'], 's' );
    两句需要同时加,否则msoffice有个奇怪点击后变回数字格式的问题. openoffice 不加第一句,点击时顶部值会显示一个" ' "(单引号) 
    富文本数组元素转字符串(string)
flashfxp 传输文件被压缩成一行
  修改传输模式为二进制,ascii 会丢失换行符号,比较奇怪
htaccess
  设置帐号密码访问
  AuthName "Restricted Area" 
  AuthType Basic
  AuthUserFile /home/site/.htpasswd
  AuthGroupFile /dev/null
  require valid-user
  生成密码:http://www.htaccesstools.com/htpasswd-generator/
myentunnel
  SwitchySharp  翻墙
  服务器各种 相关参数开启 
  允许局域网 SOCKSPort=7077 改为 SOCKSPort=0.0.0.0:7077 ,即本地端口输入 : 0.0.0.0:8888 让局域网可以访问
  linux 使用 socks, 安装 sock
http proxy cover sock proxy
  polipo
    https://www.codevoila.com/post/16/convert-socks-proxy-to-http-proxy-using-polipo
  win
    https://tzrgaga.github.io/2017/04/12/forward-socks-by-privoxy/
    forward-socks5 / 127.0.0.1:8888 .
      最后有一个小点
  
mobaxterm 获取下载文件
  settings->configuration 打开目录. 会得到这个路径.
    C:\Users\home\DOCUME~1\MobaXterm\slash\tmp\dragdrop
sqlite3 ubuntu 安装依赖问题
  sudo dpkg --purge --force-depends libsqlite3-0
  sudo apt-get install libsqlite3-0
  sudo apt-get install -f
  sudo apt-get install libsqlite3-dev
  sudo apt-get install sqlite3
tor
  epel 源 EPEL,即Extra Packages for Enterprise Linux的简称,是为企业级Linux提供的一组高质量的额外软件包
  https://www.5xiaobo.com/?id=308
宝塔 ssl 证书识别异常
  关闭重开,重新部署并不会修改目录位置,意思点击了let'sencrypt再点击宝塔自带的付费证书
php ?execution timed out  terminating
  修改php-fpm request_terminate_timeout
ssl 端口转发
  如果服务器某个端口被墙,又需要到,通过该方式进行连接
  ssh -L 0.0.0.0:xxxx:localhost:xxxx root@xxxxx -p xxxx
n2ray
  你懂的~ 每次被搞,会的更多....
uniapp
  picker 对象数组问题. 傻逼东西....使用非常麻烦.
php composer.phar install
  win 下安装. 最好先 php --version / 或 php -i 确认环境. 如果有多个版本的话
win10 文件复制到系统目录里后操作 access deny... 
  以前很沙雕复制出来修改再复制回去...发现只需要右键修改user权限....
npm config set proxy=socks://127.0.0.1:10808
  npm config set https-proxy=socks://127.0.0.1:10808
  https 走 http代理和部分软件走http代理,会出现一些莫名奇妙的问题,直socks代理则正常
win redis
  https://windows.php.net/downloads/pecl/releases/redis/
wss apache 配置
  直接在: httpd.confg 后配置, 需要确保已经开启ssl这些
  SSLProxyEngine on
  ProxyPass /wss ws://127.0.0.1:8282
  ProxyPassReverse /wss ws://127.0.0.1:8282
php 通过 proxy 解析目标域名
  curl_setopt($oCurl, CURLOPT_HEADER, 1);
  curl_setopt($oCurl, CURLOPT_HTTPPROXYTUNNEL, 1);
thinkphp 奇怪页面缓存问题
  html部分缓存没有即时更新.导致页面显示异常
websockets 重新链接
  reconnecting-websocket.js
ssh 通道阻塞
  bitvise ssh client 比较好用,mytunel 容易因为阻塞断开链接
php 转化 webp 图片格式
  https://www.php.net/manual/zh/function.imagecreatefromwebp.php
  安装 webp支持
    yum -y install libvpx-devel
    编译命令补充(请根据版本):
      php 56 '--with-vpx-dir'
        '--with-webp-dir' 这句会识别不了
  (new \Imagick($webp_file))->getImageMimeType()
shell 尝试
  反引号` 把命令中某个子命令替换为其执行的结果
svn 钩子 更新代码强覆盖处理
  svn update --accept "theirs-conflict" #更新时,如果出现代码变动,以新更新的代码为主,进行合并,并不会覆盖,所以测试机如果有什么测试代码.记得删除...重新传
php 多透明图片透明细节
  图片透明部分保持,不要丢失,每绘制一次,都会重新搞一次,针对对象(只对png类有效)
  imagealphablending($this->image, false);
  imagesavealpha($this->image, true);
  强制指定具体某种颜色做为透明颜色
    $white = imagecolorallocate($im, 0, 0, 0);
    imagecolortransparent($im,$white);
  确保最后保存文件格式为png.....(这个要细心...避免沙雕问题...)
wkhtmltopdf: cannot connect to X server
  不要yum install wkhtmltopdf....直接rpm安装就正常,然后,如果原来用yum 安装,记得覆盖 /usr/bin/wkhtmltopdf 和 wkhtmltoimage两个没用的...
vue 渲染截图问题
  wkhtmltoimage,phantomjs都是无法操作的,会出现空白问题.只能用chrome headless+ puppeteer
    chrome centos 安装 
      https://www.cyberciti.biz/faq/howto-install-google-chrome-on-redhat-rhel-fedora-centos-linux/
  puppeteer npm安装有点奇怪,通过yarn安装
    await page.waitFor(500); //延迟返回,直接返回会导致加载慢,showMod改变加载速度,会导致加载非常慢
    await page.goto(argv.url, {"waitUntil" : "networkidle0"}); //直至网页加载完成,加该句,可以不用加上面那句代码
  php 命令行调用 npm 异常收集
    环境变量
      php 命令行用户是www, 会出现识别不了node 的问题.需要复制到/usr/bin/node或者直接完整路径
    路径
      require 时,同样会因为www用户,出现上述问题,可以require 时直接指定
    权限问题
      高权限用户调用命令时,会报错,但不会"卡死",www用户出现目录和文件权限问题时,会卡住,同时su 成 www 测试会相对直观
win 下快速检索目录
  dir /s xxxx
    指定目录检索匹配在in里的文件列出,应该实用到系统文件索引.速度非常快.
  备用方案
    everything es.exe 命令行接口,需要打开everything
      检测程序运行命令:  tasklist | findstr Everything.exe
yum install *.rpm 直接安装rpm....
php 数据表达式计算+校验(非eval)
  EvalMath.class.php
eval 异常捕获
  在eval 前 set_error_handler ,异常级别 E_WARNING
window.history.pushState
  无刷新,修改url
mysql 随机获取一条
  select id,rand() r from table_name order r asc limit 1;//速度可以
libzip 版本不够
  编译php 7.3 必需卸载libzip,再编译安装才有效,安装好后再去编译php7.3 补充--enable-zip
  https://segmentfault.com/a/1190000017570008
redis 访问频率限制
  set key value expire ,访问时 inc 增加key expire不变. 过期会自动消息.达到频率限制的目的
宝塔奇怪cc问题
  是通过将md5(ip+request), 疑似出现撞库,导致用户莫名奇妙拉黑