PHP 对接三方接口踩坑 hash / base64_encode 等问题
如果您想使用PHP对接 一个第三方 xxx ,以下是一个示例代码片段,展示了如何使用PHP中的base64_encode和hash函数与xxx进行对接: 这家平台对接 对于 openssl 有要求 不能对于1.0.2, 我的服务器环境 亚马逊Centos 需要编译安装. // 输入数据$data = '<compact json here>';// 计算SHA-512散列$digest = hash('sha512', $data, true);// 进行base64编码$base64 = base64_encode($digest);// 替换base64编码中的字符$base64url = str_replace(['+', '/', '='], ['-', '_', ''], $base64);// 发送请求到xxx的API$url = 'https://xxx.example.com/ap...
PHP Warning: Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known
当你在使用 Redis 扩展连接到 Redis 服务器时,可能会遇到 Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known 的警告。这个警告通常表示 PHP 无法解析 Redis 服务器的主机名或无法连接到 Redis 服务器。以下是一篇关于解决这个问题的技术博客的 Markdown 格式示例: 解决 Redis 连接问题:php_network_getaddresses在使用 Redis 扩展连接到 Redis 服务器时,可能会遇到以下警告信息: PHP Warning: Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known 这个警告通常表示 PHP 无法解析 Redis 服务器的主机名或无法连接到 Redis 服务器。下面是一些可能的解决方法: 1. 检查主机名和端口确保你在连接 Redis 服务器时使用了正确的主机名和端...
vmstat 命令 - 报告虚拟内存统计的工具
众所周知,计算机必须有称之为RAM(随机访问内存)的存储器使得计算机工作。RAM指的是插在计算机主板上的物理存储。这里的RAM被用于加载像浏览器、文字处理器这类的程序,实际上,你使用的程序都运行在内存上。 让我们假设你有2GB的内存。当你在运行操作系统时,你的可用内存可能只有1.5GB。接着你使用了大量的程序。当内存使用满之后,你可能再也无法加载更多的程序。浅显地说,计算机可能会说:”抱歉,你不能在运行更多的程序了,如果你还要运行其他的程序请先关闭一些程序。 为了解决这个问题,包括Linux在内的各种操作系统使用了一个称之为虚拟内存的方法。这个方法会搜索最近不在使用的程序的内存区域,接着将它们拷贝到计算机硬盘上。这会腾出一些剩余内存空间给你有机会运行更多的程序。 为了监视虚拟内存的活动,我们使用vmstat工具。 什么是 vmstatvmstat是一个提供报告虚拟内存统计的工具。它包括了系统内存、交换和实时处理器利用率。 如何运行 vmstat和mpstat一样,vmstat包含在sysstat包中。如果你还没有,请安装sysstat包。 为了运行vmstat,只需在控制台...
使用 iftop 监控网络流量
非常抱歉,似乎在转换成 Markdown 格式时出现了问题。以下是使用 iftop 监控网络流量的修正版技术博客: 使用 iftop 监控网络流量在网络管理和故障排除中,监控网络流量是一项重要的任务。iftop 是一个开源的命令行工具,可以实时显示网络接口的流量信息。本篇博客将介绍如何使用 iftop 来监控网络流量。 什么是 iftop?iftop 是一个基于终端的实时网络流量监控工具,它可以显示网络接口的实时流量信息,包括源IP地址、目标IP地址、端口和传输速率等。通过 iftop,您可以了解网络中的数据流向和流量分布情况。 安装 iftop在开始使用 iftop 之前,需要先安装它。以下是在常见 Linux 发行版上安装 iftop 的命令: Ubuntu/Debian: sudo apt-get install iftop CentOS/Fedora: sudo yum install iftop 使用 iftop 监控网络流量安装完成后,可以按照以下步骤使用 iftop 监控网络流量: 打开终端。 运行以下命令启动 iftop: ...
建议收藏备查!MySQL 常见错误代码说明
先给大家看几个实例的错误分析与解决方案。 1. ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/data/mysql/mysql.sock’问题分析:可能是数据库没有启动或者是端口被防火墙禁止。 解决方法:启动数据库或者防火墙开放数据库监听端口。2.ERROR 1045 (28000): Access denied for user ‘root‘@’localhost’ (using password: NO)问题分析:密码不正确或者没有权限访问。解决方法:1)修改 my.cnf 主配置文件,在[mysqld]下添加 skip-grant-tables,重启数据库。最后修改密码命令如下: mysql> use mysql;mysql> update user set password=password("123456") where user="root"; 再删除刚刚添加的 skip-grant...
[踩坑] 终端执行 systemctl start supervisord
今天调整生产环境 supervisord 配置 , 启动 inet_http_server 配置 # systemctl restart supervisord 我在重启服务器前 , 增加了一些配置在 /etc/supervisord.d/. 执行后抛错如下 : Job for supervisord.service failed because the control process exited with error code. See “systemctl status supervisord.service” and “journalctl -xe” for details. 报错了 尝试 # systemctl start supervisord [supervisord.d] # /usr/bin/supervisord -c/etc/supervisord.confror: Another program is already listening on a port that one of our HTTP servers is configured to...
限流:别说算法了,就问你“阈值”怎么算?
限流算法:别说算法了,就问你“阈值”怎么算?在现代互联网应用中,限流是一种非常重要的技术手段,用于保护系统免受异常突发的流量冲击。限流算法是限制流量大小的关键,它可以分为静态算法和动态算法两类。本文将介绍常见的限流算法及其实现原理,并分享如何计算适当的阈值。 令牌桶算法令牌桶算法是一种常见的静态限流算法。它通过以固定速率产生令牌,并放入一个桶中。每个请求需要从桶中获取一个令牌才能被执行。如果桶中有足够的令牌,请求就会被处理;否则,请求将被限流。令牌桶算法可以平滑处理突发流量,但要注意设置桶的容量,以免积攒过多的令牌导致系统无法承受突发请求。 漏桶算法漏桶算法是另一种静态限流算法,它以固定速率将请求传递给业务逻辑。当不均匀速率的请求到达服务器时,限流器会以固定速率处理这些请求,类似于一个漏桶不断漏水。与令牌桶算法不同,漏桶算法处理请求的速率是绝对均匀的。选择令牌桶算法还是漏桶算法取决于业务需求和对请求处理速率的要求。 固定窗口与滑动窗口固定窗口和滑动窗口是两种常见的动态限流算法。固定窗口算法在一个固定时间窗口内允许执行固定数量的请求,例如每秒钟只允许执行100个请求。而滑动窗口...
ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist
设置 触发器的账户不见了, 导致 触发器设置的标 写操作失败了 一、MySQL错误现象:执行创建的存储过程或者触发器报: ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist 二、错误原因:这样由于创建存储过程或者触发器时间,指定的DEFINER为'root'@'%',而在MySQL的权限表(mysql.user)中,并不存在相关的user和host: mysql> select host,user,password from mysql.user;+-------------------------+------+----------+| host | user | password |+-------------------------+------+----------+| localhost | root | ...
《人人都是产品经理》读书笔记:一个开发眼中的产品经理
书名:《人人都是产品经理》作者: 苏杰 前言最近开始系统地看一些产品经理相关的书。 其中也看了比较经典的《启示录》。 不过说实话,《启示录》并没有给我带来特别强烈的感觉。 里面很多观点是有道理的,比如用户价值、产品团队、产品发现等,但对于一个长期做研发、刚开始系统学习产品的人来说,我感觉它更多是在讲: 一个优秀的产品团队应该是什么样子。 而我现在更想知道的是: 产品经理到底每天在干什么?一个需求到底是怎么从想法变成产品的? 反而是苏杰的《人人都是产品经理》,让我第一次比较完整地理解了产品经理这个岗位。 它没有让我突然学会“怎么做出一个伟大的产品”。 但是它让我开始理解: 原来产品经理是这样工作的。 一、以前开发眼中的产品经理做研发的时候,其实每天都会和产品经理打交道。 所以以前我一直觉得自己对产品经理这个岗位挺熟悉。 大概就是: 业务 / 老板 ↓ 产品经理 ↓ 需求文档 ↓ 原型图 ↓ 需求评审 ↓ 开发 开发最关心的通常是: 需求有没有写清楚? 原型有没有画完整? 异常情况有没有考虑? 数...
[收藏] 浅谈 Mysql 存储过程🔃 与 函数📊:
Mysql 存储过程🔃 与 函数📊:存储过程 和 存储函数说实话本人工作中不经常使用,康师傅也说 阿里开发准则 不建议使用存储过程/函数… 但这并不是咱不会的理由🙃 很久以前学习过,也听说了,存储过程是mysql5.0新增的 大致就像编程语言的 方法/函数一样, 将复杂的sql 逻辑封装在一起, 使用的时候调用一下即可. 应用程序无需关注内部的逻辑,只需要传入对应的参数, 就可以返回想要的结果. 要知道很多数据库 本身也是有很多方便的 函数(): IF() Count() ... 🆗 话不多说让我们开始学习吧!📚 存储过程🔃:概述:我们之前所学习的 MySQL 语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,经常会有需要多条 SQL 语句处理多个表才能完成的操作。 例如: 张三工资是否大于 所属部门的平均工资 先知道张三部门,计算平均工资,是否大于 存储过程是一组为了完成特定功能的 SQL 语句集合 减少网络传输量(客户端不需要把所有的 SQL 语句通过网络发给服务器) 减少了 SQL 语句暴露在 网上的风险,也...






