- 博客(66)
- 收藏
- 关注
原创 Nginx+php-fpm 模式下的502、504问题
客户端、nginx、php-fpm三者之间的关系客户端发送请求给nginx,nginx将请求接收后,再发给php-fpm。nginx接收到php-fpm的响应后缓存到本地然后再发给客户端,或者一边缓存一边转发,这就是转发响应并以上游网速优先的模式。因为客户端和nginx之间是公网,网速慢环境差,nginx与php-fpm之间是内网,网速快且稳定。什么是502、504他们都表示nginx与其上游服务(这里是php-fpm)之间出了问题,502表示错误,504表示超时。下面都以php-fpm(或php,表
2021-04-25 18:43:45
1200
原创 Git将代码推送到了服务端(别人的电脑),想要回退版本怎么办?
Git将代码推送到了服务端(别人的电脑),想要回退版本怎么办?https://zhuanlan.zhihu.com/p/34844206
2020-06-29 00:16:37
439
原创 Waiting for table metadata lock
问题描述新建表或修改表时,Navicat操作超时,命令行操作一直等待use xxdatabase 时卡死,提示连接数据库时加上 -A 参数,提示如下Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup w...
2019-10-31 18:57:21
360
原创 sftp服务器搭建
sftp全称:Secure File Transfer Protocol,与ftp有着一样的功能和语法。sftp是ssh的一部分,同样使用22端口。目标本篇文章以centos系统为例,搭建一个sftp服务,使用的账号是 ftpuser,该账号使用sftp客户端软件登录后的根目录为:/opt/sftp,该账号只能访问 /opt/sftp 及其子目录,对子目录有读写权限,对 /opt/sftp仅有...
2019-03-15 21:56:01
2803
1
原创 ngx_http_core_module模块变量
常见下面均按照请求 http://a.com/index.php?a=1&b=2root 配置为 /wwwroot/来说明$args HTTP 请求中的完整参数。如:a=1&b=2$uri 表示当前请求的URI,不带任何参数。如: /index.php。$document_uri 与$uri 含义相同。$request_uri 表示客户端发来的原始请求URI,带完整的...
2018-11-27 13:35:35
170
原创 使用postman对请求自动加签名
我们的接口全部做了签名处理,做接口调试的时候可能需要频繁的注释掉后端验签的方法,虽然麻烦,但是可以正常调试。但是如果需要请求一下线上的数据,总不能把线上的验签注释掉吧。postman是我常用的一个接口测试工具,使用 Pre-request Script 功能在发出请求前执行一些脚本,来达到签名的目的。Pre-request Script是通过Postman的沙盒(Sandbox)来实现的,而S...
2018-09-27 19:17:58
17244
1
原创 Linux对打开文件数量的限制
做高并发服务器或者像聊天这种长连接服务时,需要修改系统能够打开的文件句柄数。否则会出现 too many open files 的错误。socket句柄和文件句柄是相同的,像聊天这种长链接服务,此时too many open files 指的就是socket句柄数超出了系统的限制。单进程文件句柄限制句柄数限制又分为系统总限制和单进程限制。使用命令 ulimit -n 可以看到系统对于单个进程的...
2018-09-26 15:26:08
7837
原创 PHP数组的结构,哈希表
PHP7之前的数组结构PHP7的数组结构变量结构zvalstruct _zval_struct { zend_value value; /* value */ union { struct { ZEND_ENDIAN_LOHI_4( zend_uchar typ...
2018-09-20 13:53:42
546
原创 PHP运行原理
sapi是PHP的入口层,是进入PHP内核的入口。nginx:启动一个主进程master,master进程再创建n个(一般根据cpu个数确定)worker进程。master进程只是用来管理worker进程,worker进程用来接收和处理请求。 php-fpm:也是启动一个主进程,主进程再管理子进程(worker)。通常我们可以配置多个进程池,每个进程池监听不同的接口,统一由master进程管...
2018-09-17 18:43:30
836
原创 composer的安装,使用
安装curl -sS https://getcomposer.org/installer | php这个命令使用 curl 下载 composer 的安装脚本,然后使用 php 进行安装,结果会在当前目录生成 composer.phar 文件。这个文件就是 composer 的二进制执行文件。 我们可以将 composer.phar 放到 /usr/local/bin/ 下,这样就可...
2018-04-24 21:45:47
490
原创 吞吐量、QPS(TPS)、并发量、响应时间
QPS/TPS:系统每秒能够处理的请求数量/事务数量。 吞吐量:即 QPS/TPS。 并发量:同时到达服务器的请求数量。 响应时间(RT):服务器处理每个请求需要的时间。QPS = 并发量 / 响应时间 同时,响应时间也受到并发量的影响。当服务器没有满负荷的情况下,几乎不受影响,当服务器满负荷后,响应时间会随着并发量的增加呈现指数式增长。此时吞吐流量(或QPS)会急剧下降。为了有助...
2018-04-24 21:44:58
3841
原创 git常用命令
配置#查看配置git config --list#配置用户信息git config --global user.name "zhang" ( global 表示对所有项目起作用)git config --global user.emal "zhang@qq.com"git config --global core.filemod
2018-04-23 11:53:19
217
原创 update-ca-trust 更新 ca 证书后,file_get_contensts() 报错 certificate verify failed
问题因为微信支付的HTTPS服务器证书升级,所以得安装DigiCert的根CA证书,我的系统是 CentOs,按照微信给出的方案是安装根证书管理包软件: yum install ca-certificates打开根证书动态配置开关: update-ca-trust force-enable将DigiCert的根证书文件复制到: /etc/pki/ca-trust/source/...
2018-03-28 16:22:35
14853
4
原创 MySQL权限 grant
MySQL权限可以进行如下设置1、设置用户对哪些库和表有权限 2、设置用户对库和表的操作权限,如 alter table,drop table,select,insert,update等 3、限制用户登录的IP或域名(域名不太理解) 4、限制用户自己的权限是否可以可以授权给别的用户一、创建用户并授权grant all privileges on *.* to 'root'...
2018-03-09 16:52:13
1091
1
原创 git命令笔记
查看配置 git config --list配置用户信息 git config --global user.name "zhang" ( global 表示对所有项目起作用) git config --global user.emal "zhang@qq.com" git config --global core.filemode false...
2018-03-07 17:16:13
190
原创 MySQL分区表
分区不是在引擎层实现的,所以常见的引擎都支持,至少MyISAM和InnoDB是支持的。就访问数据库的程序而言,从逻辑上将,只有一个表或一个索引,但在物理上这个表或者索引可能由数十个物理分区组成。每个分区都是独立的对象,可以单独处理,也可以作为一个更大对象的一部分处理。MySQL支持水平分区,即按行分区,不支持垂直分区。MySQL数据库的分区是局部分区索引,一个分区既存放数据也存放索引。可通过如下命...
2018-03-07 16:43:49
9423
1
原创 MySQL约束,触发器
关系型数据库不同于文件系统,关系型数据库都会提供约束机制来保证数据的完整性数据完整性包含3个方面1、实体完整性,保证表中有一个主键。通过定义primary key 和unique key 保证实体完整性2、域完整性,保证数据的值满足特定的条件。可通过外键,触发器,default,not null/null 保证域完整性3、参照完整性,保证两张表之间的关系。Innodb支持外键,也可以通过触发器保证...
2018-03-06 13:56:26
1294
原创 PHP实现无符号右移(js中的 >>>)
移位包括有符号左移(>)、无符号右移(>>>),其中 js 支持三种移位,PHP只支持前两种移位(没查到第三种),恰好需要PHP进行无符号右移,此处实现一下。先看结果将数字 $a 向右无符号移动 $n 位function uright($a, $n){$c = 2147483647>>($n-1);return $c&($a>>$n);}下面是这样做的理由1
2017-09-13 16:36:59
2018
转载 妙用php中的register_shutdown_function和fastcgi_finish_request
前言在php中又两个方法都是在请求快结束的时候执行。方法名分别是 register_shutdown_function和fastcgi_finish_request。虽然执行的时机差不多,但是功能和应用场景不一样。比较两个方法的区别不是本文的重点。本文的重点的说明两个方法的应用场景。register_shutdown_function功能:注册一个方法,当一个请求r
2017-03-24 11:12:40
441
原创 MariaDB升级到10.1.22
yum -y install cmake 安装 cmake 工具执行 cmake 命令进行编译cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-DMYSQL_DATADIR=/var/data/mariadb-DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DWITH_XTRADB_
2017-03-21 13:59:30
1763
转载 PSR-4
Autoloader1. 概述本 PSR 是关于由文件路径 自动载入 对应类的相关规范,本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外,本 PSR 还包括自动载入的类对应的文件存放路径规范。2. 详细说明此处的“类”泛指所有的class类、接口、traits可复用代码块以及其它类似结构。一个完整的类名需具有以下结构
2017-03-21 13:55:54
265
转载 PSR-3
日志接口规范本文制定了日志类库的通用接口规范。本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。框架以及CMS内容管理系统如有需要,可以对此接口进行扩展,但需遵循本规范,这才能保证在使用第三方的类库文件时,日志接口仍能正常对接。本文中的 实现者 指的是实现了 LoggerInter
2017-03-21 13:54:08
290
1
转载 PSR-2
代码风格规范本篇规范是 PSR-1 基本代码规范的继承与扩展。本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范,而本文中的风格规范源自于多个不同项目代码风格的共同特性,因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。关键词 “必须
2017-03-20 18:11:06
294
转载 PSR-1
基本代码规范本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、“推荐”("RECOMME
2017-03-20 14:36:42
210
原创 variable-precision SWAR算法“计算汉明重量”
统计一个位数组中非0位的数量,数学上称作:”Hanmming Weight“,汉明重量SWAR算法计算汉明重量C实现是这样的// 计算32位二进制的汉明重量int32_t swar(int32_t i){ i = (i & 0x55555555) + ((i >> 1) & 0x55555555); i = (i & 0x33333333) + ((i >>
2017-03-08 20:32:42
3394
2
原创 简单创建redis集群
1、注意事项2、配置文件并启动6个redis实例3、使用 redis-trib.rb 将节点加入集群一、注意事项redis3.0 以上版本官方才支持集群集群至少需要 3 个节点,本例中是 3 主 3 从需要安装ruby和ruby下的redis扩展二、配置文件并启动6个redis实例1、本例中使用满足集群搭建的最简单配置,需要配置的内容如下
2017-03-08 15:59:05
366
原创 使用gitolite管理git权限
1、服务器上添加专用管理账户git,并在服务器上安装git2、创建本地机器的公私钥3、服务器安装gitolite4、仓库添加与管理5、添加用户并管理用户权限一、服务器上安装git略过二、创建本地机器的公私钥ssh-keygen -f ~/.ssh/git-admin然后将生成的 git-admin.pub 上传到服务器(下面暂时放在了
2017-03-01 14:44:26
9371
转载 lamp的目录和配置文件
一直都是用一键安装包,今天帮朋友弄一Linux主机,发现原来主机商是帮用光盘安装的,很多都不一样。apache:如果采用RPM包安装,安装路径应在 /etc/httpd目录下apache配置文件:/etc/httpd/conf/httpd.confApache模块路径:/usr/sbin/apachectlweb目录:/var/www/html如果采用源代码
2015-08-21 11:27:01
895
转载 curl基本知识
CURL函数库。curl_close — 关闭一个curl会话curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数curl_errno — 返回一个包含当前会话错误信息的数字编号curl_error — 返回一个包含当前会话错误信息的字符串curl_exec — 执行一个curl会话curl_getinfo — 获取一个curl连接资源句柄
2015-08-14 18:12:39
422
转载 PHPExcel用法(详细)
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel,开始喽,(代码都摘自自带实例)程序部分require_once './phpexcel/PHPExcel.p
2015-08-14 11:06:00
5732
转载 Mongo操作
/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************************//格式=>(“mongodb://用户名:密码 @地址:端口/默认指定数据库”,参数)$conn = new Mongo();//可以简写为//$conn
2015-08-10 17:44:33
590
原创 基本命令(按学习进度随机添加)
1、mongo 启动mongo2、db.stats() 列出服务器统计,显示数据库信息如图3、db.help() 获得帮助
2015-08-07 20:22:43
338
转载 PHP中安装扩展——mongo出现的问题
系统 windows7集成环境 xampp 1.8.3php-mongo.dll下载地址 http://pecl.php.net/package/mongo/1.6.0RC2/windows 选择对应的版本下载将php-mongo.dll放入php的ext文件夹下 修改php.ini。但是在安装mongodb扩展的时候 出现了PHP Warning:
2015-08-07 16:08:29
575
转载 phpExcel用法
下面是总结的几个使用方法include 'PHPExcel.php';include 'PHPExcel/Writer/Excel2007.php';//或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的创建一个excel$objPHPExcel = new PHPExcel();保存excel—2007格式$objWriter = n
2015-06-03 00:41:19
483
转载 Bootstrap 栅格系统
Bootstrap 栅格系统目录1、简介2、栅格选项3、列偏移4、嵌套列5、列排序1、简介Bootstrap内置了一套响应式、移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义classe,还有强大的mixin用于生成更具语义的布局。2、栅格选项bootstrap3.x使用了四
2015-05-27 20:28:01
401
转载 php header函数用法
Php代码 //定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/atom+xml'); //CSS header('Content-type: text/css'); //Jav
2015-05-17 14:15:30
351
转载 jQuery选择器
$("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div") 选择所有的div标签元素,返回div元素数组 $(".myClass") 选择使用myClass类的css的所有元素 $("*")
2015-05-15 16:35:31
273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人