笔记

ubuntu18.04编译安装php7.0

起因

虽然7.0已经停止维护了,但有些老项目也只是过度,后期直接用新项目替换,没有必要在进行升级。所以服务器还是需要用到7.0的运行环境。
本来想用apt简单按一下,结果发现apt里面已经没有php7.0了。只能自己源码安装。

VirtualBox网络模式说明

网络模式

VirtualBox的提供了四种网络接入模式,它们分别是:
1、NAT 网络地址转换模式(NAT,Network Address Translation)
2、Bridged Adapter 桥接模式
3、Internal 内部网络模式
4、Host-only Adapter 主机模式

超好用的抓包工具mitmproxy

mitmproxy是一个非常好用的代理工具

安装

最快速的安装莫过于执行

1
2
sudo apt install mitmproxy

由于mitmproxy是基于python开发的,所以安装mitmproxy的同时,也会自动安装上python3。

如果本地已经有了python3.6以上的版本,可以用pip进行安装

1
pip install mitmproxy

记录一次postgresql迁移经历

数据库服务器硬盘满了,需要将数据迁移到另一台数据库,做一下记录

安装

去postgresql官网https://www.postgresql.org/download/,选择操作系统,我这里选择的是ubuntu。
然后根据说明进行安装

1
2
3
4
5
6
7
8
9
10
11
12
# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
sudo apt-get -y install postgresql

值得注意的是,安装时一定要选择与老数据库相同的版本

安装完成后,就可以会自动添加一个postgres的系统用户,该用户没有密码如果想要密码可以自行设置

微信开发unionid详解

unionid概况

微信开发过程中,经常会遇到,一个企业有多个小程序和公众号,在不同的小程序和公众号中,会有不同的openid。如果想要确定是同一个人,就需要用到unionid机制。

官方关于unionid的说明是这样的

公众号文档的描述

开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

小程序文档的描述

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

python捕获异常堆栈信息

python的异常对称相比java或php简单了很多,对象中的信息很少,只有简单的错误输出。这在开发过程中是无法满足使用需求的。我们还需要更多的错误信息,比如错误发生在哪一行,具体的错误信息是什么。这就需要获取错误堆栈信息。下面简单记录一下常用的集中异常处理。