×

代替CURL,php file_get_contents() 发送Post请求

PHP技术

代替CURL,php file_get_contents() 发送Post请求

老余 老余 发表于2022-04-30 浏览681 评论0

近期遇到一个很诡异的情况,对接某个https接口,对方的接口在使用postman模拟的时候一切正常,但在上代码curl提交的时候直接502了。

折腾了很久也没有解决,后面直接用shell命令curl发现也无法提交,返回 code:500 的错误。

网上找了很久,有说要重装curl的,有说要重新编译php的,不一而足。

这些方法都太过复杂,而且是生产环境,不可能任我胡来。后面想起是不是可以换种请求方式呢,于是就有了下面的方法

Centos 安装及配置Mysql-proxy,转发内网数据库(云数据库)至公网

运维技术

Centos 安装及配置Mysql-proxy,转发内网数据库(云数据库)至公网

老余 老余 发表于2022-04-27 浏览656 评论0
wget https://downloads.mysql.com/archives/get/p/21/file/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
tar -xvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
mkdir /opt/mysql-proxy
mv ./mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit/* /opt/mysql-proxy/
修改 /etc/profile 文件,在尾部添加    export PATH=/opt/mysql-proxy/bin:$PATH
source /etc/profile
mkdir /opt/mysql-proxy/logs
mysql-proxy -V     检查版本,如有版本则安装成功
touch /etc/mysql-proxy.cnf    创建配置文件
修改 /etc/mysql-proxy.cnf 文件,写入以下内容(保存时需去除注释内容):
    [mysql-proxy]
    admin-username=root    #admin用户名
    admin-password=wqgyjh8890    #admin密码
    admin-lua-script=/opt/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua    #lua位置,参见上面的版本信息
    daemon=true        # mysql-proxy以守护进程方式运行
    keepalive=true        #保持连接启动进程会有2个, 一号进程用来监视二号进程
    proxy-backend-addresses=10.7.56.201  #目标地址,udb内网地址,默认端口3306
    log-file=/var/log/mysql-proxy.log
    log-level=debug


chmod 0660 /etc/mysql-proxy.cnf
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf    (启动)
Docker 容器常用操作

运维技术

Docker 容器常用操作

老余 老余 发表于2022-04-27 浏览548 评论0
# 基本操作
docker run -d -p 物理端口1:容器端口1 -p 物理端口2:物理端口2 --name 容器名 <image-name>:<tag>
docker exec -it 容器名/ID bash

# 磁盘挂载
docker run -d -p 8080:80 -v 本机路径:容器路径 --name 容器名  <image-name>:<tag>

# 容器打包镜像
docker commit -a "作者" -m "备注" 容器ID <image-name>:<tag>

# 物理机拷贝到容器
docker cp test.txt 容器ID:/var/www/html

# 容器拷贝到物理机
docker cp 容器ID:/var/www/html/test.txt 物理机路径

# 查看容器 COMMAND
 docker ps -a --no-trunc

# 停止所有容器 以此类推
docker stop $(dokcer ps -aq)

# 将容器打包成规范的镜像
docker commit <exiting-Container> <hub-user>/<repo-name>[:<tag>]

# 将镜像修改成规范的镜像
docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]

# 登录 Docker Hub
docker login

# 上传推送镜像到公共仓库
docker push <hub-user>/<repo-name>:<tag>

# 当前目录的 Dockerfile 创建镜像
docker build -t <image-name>:<tag> . 

# 指定文件构建镜像
docker build -f /path/to/a/Dockerfile -t <image-name>:<tag> .

# 将镜像保存 tar 包
docker save -o image-name.tar <image-name>:<tag>

# 导入 tar 镜像
docker load --input image-name.tar

# docker-compose 命令相关
## 基本操作
docker-compose up -d

## 关闭并删除容器
docker-compose down

## 开启|关闭|重启已经存在的由docker-compose维护的容器
docker-compose start|stop|restart

## 运行当前内容,并重新构建
docker-compose up -d --build
thinkphp获取当日、当月、当年数据

Thinkphp技术

thinkphp获取当日、当月、当年数据

老余 老余 发表于2022-04-27 浏览540 评论0
db('table')->whereTime('time', 'between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d', strtotime('+2 day')))])->select();
//根据日期查询今天到后天
db('table')->whereTime('time', 'between', ['2020-3-28', '2020-3-30'])->select();
//表达式查询

//获取今天的信息
db('table')->whereTime('c_time', 'today')->select();
//也可以简化为下面方式
db('table')->whereTime('c_time', 'd')->select();

//获取昨天的信息
db('table')->whereTime('c_time', 'yesterday')->select();

//获取本周的信息
db('table')->whereTime('c_time', 'week')->select();   
//也可以简化为下面方式db
('table')->whereTime('c_time', 'w')->select(); 

//获取上周的信息
db('table')->whereTime('c_time', 'last week')->select();

//获取本月的信息
db('table')->whereTime('c_time', 'month')->select();   
//也可以简化为下面方式
db('table')->whereTime('c_time', 'm')->select();   

//获取上月的信息
db('table')->whereTime('c_time','last month')->select();

//获取今年的信息
db('table')->whereTime('c_time', 'year')->select();
//也可以简化为下面方式
db('table')->whereTime('c_time', 'y')->select();

//获取去年的信息
db('table')->whereTime('c_time','last year')->select();