当前分类:问题解决

Android/Ios 使用Fiddler抓http/https包

Fiddler基础配置

1、安装fiddler 下载地址 https://www.telerik.com/download/fiddler

2、Tools->Options 进行配置

a. Connections 配置
设置 Fiddler listens on port 8888
勾选 Allow remote computers to connect
勾选 Reuse client connection
勾选 Reuse server connections
勾选 Act as system proxy on startup

b. Https 配置
勾选 Capture HTTPS CONNECTs
勾选 Decrypt HTTPS traffic
勾选 Ignore server certificate erros(unsafe)

客户端配置

  1. 连接WiFi
    设置-Wlan-右键WiFi名称->高级选项 填入本机IP 加端口号8888

  2. 信任证书
    客户端浏览器访问 http://本机IP:8888/
    点击“FiddlerRoot certificate”,安装即可

以Curl请求方式导出Fiddler会话

点击选中会话->File->Export Session ->选择curl->保存到文件

Windows安装Curl工具

Windows下排查问题常需要curl进行请求访问,下面记录一下windows安装curl过程:

1、https://curl.haxx.se/download.html#Win64 进行下载

2、新建目录,如C:\curl,将所下载内容解压

3、配置环境变量path,计算机右键->属性->高级系统设置->高级->环境变量->path,进行修改新增;C:\curl

解决WordPress后台登录后报File_not_found问题

wordpress 的后台,一些菜单标题都是相对路径,这样通过访问 www.xxx.us/wp-admin 再点击菜单比如写文章功能,会跳转到 www.xxx.us/post-new.php ,而我们想要的是跳转到 www.xxx.us/wp-admin/post-new.php 这个地址,否则将是会报File not Found

解决方案:

如果用户输入了 www.xxx.us/wp-admin 我们强制加上/ 变成 www.xxx.us/wp-admin/

需要再nginx配置文件中增加配置:

以上即可~

Windows安装Composer选择php.exe报错问题

环境重装,重新安装一把composer,但是选择php7之后版本报错,本地环境不用php7是绝对不行的…

确定问题,缺少VC14,下载安装之后再安装composer即解决

下载地址:http://www.xdowns.com/soft/184/dll/2016/Soft_164980.html

记得安装完之后重启一下cmd,否则composer命令无法再当前cmd中执行

dependencies.dependency.version missing问题解决

Spring Boot打算引入Redis但是导入依赖包之后却报如下错误

同时pom配置文件中位置,报如下位置:

解决方案

排查一:

是否引入了<parent>标签,如果未引入请引入,或者主动加上version

排查二:

是否dependences包含在了dependencyManagement标签内

排查三:

其中网上搜索了一下很多答案集中在是否引入了parent,但是parent是完整引入的,最终发现原来是因为使用的Spring Boot 1.5,而Spring Boot 1.2之后不再支持spring-boot-starter-redis,更换之后就OK了,至于这两个有何不一致,没什么不一致,为何名称变了,大概可能是为了统一,记录一下,如果遇到的小伙伴麻烦检查一下,是否将 spring-boot-starter-data-redis 写成了spring-boot-starter-redis 。

解决Error: pg_config executable not found问题

最近安装sentry时,需要安装postgresql,但是安装过程中报如下问题

最终查看pg_config是存在的

但是path里面没有,直接导入pa_home中bin目录的所有命令解决

解决SOAP客户端在请求https时设置超时时间无效导致进程卡死问题

目前有一个进程服务脚本是不断查询渠道的接口,但是历史问题是有时订单量大的时候进程会卡死,这次遇到了进行排查一下:

首先获取该进程ID

strace查看该进程正在持续的状态

lsof查看进程的所使用的文件

可以发现最终是停留在https的链接建立,等待获取数据,查看此处代码

当前版本php较老,这里是有个bug的在https链接请求时SOAPClient的超时时间是不生效,最终采取如下方案解决此问题:

复写SOAPClient,在https时候使用curl来完成请求解决问题

解决PHP7下Session callback expects true/false return value in 问题

升级项目致PHP7遇到Session报警告,既然升级新版本,警告什么的肯定要一起都处理了

经过跟踪排查,发现是到session_start这一步遇到问题,session_start()使用你之前通过session_set_save_handler(….)方法设置的处理器,现在PHP7要求必须返回true/false,所以你需要检查一下你的这些处理器方法是否准确返回true/false了

session_start() uses any handlers you’ve previously set with session_set_save_handler(…), and that handler (or the individual functions) must return a true/false result to signal success or failure. You have a handler that does not return a true/false result. To recap; the actual error is the implementation of your session handler, not the code that calls session_start().

记录Linux系统邮件mail无法发送问题

很多应用,比如wordpress使用PHP的mail函数,将会调用系统邮件发送功能,这时候邮件无法发送该如何排查呢?

  • 安装sendmail来发送邮件

  • 启动sendmail

可通过ps -ef | grep sendmail,观察是否启动成功

  • 测试邮件发送

如果没收到那么查看一下 /var/spool/clientmqueue下面是否存在未发送邮件,tail -f /var/log/maillog 查看邮件发送日志。

另外查看一下网络访问及25端口有无问题。

解决/var/spool/clientmqueue/文件过多问题并记录Linux下快速列出含文件较多文件夹的内容方法

最近发现sendmail的进程较多,观察了一下,是在消费/var/spool/clientmqueue/下的内容,这里面文件太多ls直接卡死了,那么如何列出来呢?

先后使用了ls、tree、find等命令,效果都不明显。

最后使用locate成功解决~

观察了一下至少有600多万个文件。。。

当你使用简单的sendmail发邮件的时候, 或者系统默认要发一些邮件(比如cron发的邮件)的时候,首先会把邮件拷贝到这个目录里,然后等待MTA(mail transfer agent) 来处理,MTA做的事情通常是把这个目录中的邮件弄到/var/spool/mqueue里,然后再发送到真正的目的地。出现/var/spool /clientmqueue/非常大的情况通常因为没有合适的MTA发送邮件,就都积累在这里了,假如这里的邮件并不是你需要的,你可以简单的删掉他们。

根据需要发邮件的内容来看,解决这块主要两点:

1、针对crontab一些输出之类的其会发邮件,需要定时任务后加上

2>是重定向错误

2、梳理业务逻辑控制发邮件频次

当然这两个前段时间都处理了一下,这次主要启用的机器有一些之前的邮件,所以删除了

xargs的功能:它将输入输出给xargs后面的命令,作为那个命令的参数

如果你感觉删的比较慢想先快速解决,那么先给他mv一下吧,把事情解决了,然后慢慢删

完事后记得重启一下sendmail sudo /etc/init.d/sendmail restart