- 博客(123)
- 收藏
- 关注
原创 Linux 快速删除已输入的命令
ctrl + w 往回删除一个单词,光标放在最末尾ctrl + u 删除光标以前的字符 ctrl + k 删除光标以后的字符 ctrl + a 移动光标至的字符头 ctrl + e 移动光标至的字符尾 ctrl + l 清屏...
2018-09-29 10:09:53
812
原创 Nginx与PHP的文件上传大小限制
1. 修改PHP配置文件中的三项(php.ini)upload_max_filesize = 8m ;允许上传文件大小的最大值。默认为2Mpost_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8Mmax_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒max_input_time...
2018-09-28 19:46:19
560
转载 用 PHP 读取文件
传统的 fopen 方法清单 1. 用 fgets 打开并读取文件$file_handle = fopen("myfile", "r");while (!feof($file_handle)) { $line = fgets($file_handle); echo $line;}fclose($file_handle);虽然大多数具有多年编程经验的程序员都熟悉这些函数,但是...
2018-09-28 16:05:26
1165
转载 php脚本超时时间
php脚本超时时间可以在php.ini的max_execution_time和fpm.conf的request_terminate_timeout参数两处进行设置.那么这两者有什么区别呢?当我们设置php.ini的max_execution_time参数后,zend引擎处理脚本时,其内部会根据设定的时间定义一个定时器(setitimer),这是linux的API。而fpm.confreque...
2018-09-28 15:42:41
1560
转载 配置 Docker 加速器DaoCloud
Linux$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://9c167da9.m.daocloud.io该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6...
2018-06-04 22:13:28
768
转载 linux(mac) 编译安装MySQL
官方下载地址: https://dev.mysql.com/downloads/mysql/从mysql5.5起,mysql源码安装开始使用cmake#mac 安装cmake$ brew install cmake#centos 安装cmake$ yum install -y cmake#相关编译选项安装时路径相关的配置-DCMAKE_INSTALL_PREFIX=/usr/local/mysq...
2018-06-04 11:39:29
1015
转载 linux(mac) 编译安装nginx
官方下载地址:http://nginx.org/en/download.html有3种版本可以选择:Mainline version:主线版本,相当于开发版Stable version:最新稳定版本Legacy versions:历史稳定版本官方配置示例:./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/lo...
2018-06-03 22:48:22
1593
转载 openssl 编译安装
官方下载地址:https://www.openssl.org/source/#解压$ tar -zxvf openssl-1.1.0h.tar.gz$ cd openssl-1.1.0h#配置(使用sudo是因为要prefix的访问权限)$ sudo ./config --prefix=/usr/local/openssl该步骤出现如下警告Configured for darwin-i386-cc...
2018-06-03 10:26:44
5959
原创 APIGateway 简介
APIGateway 即API网关,所有请求首先会经过这个网关,然后到达后端服务,有点类似于Facade模式。API网关作为系统接口对外的统一出口,可以减少调用方对服务实现的感知。 APIGateway的主要作用有: 1.统一对外接口: 当用户需要集成不同产品或者服务之间的功能,调用不同服务提供的能力。利用APIGateway可以让用户在不感知服务边缘的情况下,利用统一的接口组装...
2018-06-01 11:00:41
415
原创 微服务与单体架构区别
1、单体架构所有的模块全都耦合在一块,代码量大,维护困难,微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。 2、单体架构所有的模块都共用一个数据库,存储方式比较单一,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。 3、单体架构所有的模块开发所使用的技术一样,微服务每个模块...
2018-05-27 13:56:20
4189
1
原创 一次完整的 HTTP 请求过程
一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。 HTTP 请求格式HTTP请求格式主要有四部分组成,分别是:请求行、请求头、空行、消息体,每部分内容占一行 请求行:请求行是请求消息的...
2018-05-24 17:14:58
345
原创 快速排序
//待排序数组$arr = array(6,3,8,6,4,2,9,5,1);//函数实现快速排序function quick_sort($arr){ $length = count($arr); //定义两个空数组 $left = $right = array(); //使用for循环进行遍历,把第一个元素当做比较的对象 for...
2018-05-24 12:59:09
176
原创 php 知识点
用PHP打印出前一天的时间格式echo date('Y-m-d H:i:s', strtotime('-1 days')); echo(),print(),print_r()的区别echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值print() 只能打印出简单类型变量的值(如int,string)print_r() 可以打...
2018-05-24 12:57:52
222
原创 两根分布都不均匀的香,每根香完全烧完需要1个小时,怎么用这两根香测出15分钟的时间...
一、同时点上其中一根香的两头,另一根只点一头; 二、当点两头那根香燃完时,时间过去半小时,另一根香剩下的可以燃半小时,再点上它的另一头; 三、当这根香燃完时,时间为15分钟...
2018-05-24 12:54:31
9007
原创 HTTP状态码
常见的HTTP状态码: 200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误 HTTP状态码分类HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型: HTTP状态码分类分类分类描述1**信息,...
2018-05-23 22:25:29
170
原创 HTTP Header
HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而言,包括message-header和message-body两部分。 Requests部分Accept 指定客户端能够接收的内容类型 Accept: text/pl...
2018-05-23 21:49:21
204
原创 php socket
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。socket既不是程序,也不是协议,其只是操作系统提供的通信层的一组抽象API。 通信需要服务端和客户端组成:服务端:使用php初始化socket然后绑定一个端口,对端口进行监听。调用accept阻塞,等待客户端连接。 客户端:客户端初始化...
2018-05-23 21:32:31
204
原创 mysql的分区和分表
分区分区就是把一个数据表的文件和索引分散存储在不同的物理文件中。 mysql支持的分区类型包括Range、List、Hash、Key,其中Range比较常用:RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。HASH分区:基于用户定义的表达式的返回值...
2018-05-22 22:22:15
189
原创 WebSocket
一、为什么需要 WebSocket?初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。 举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。 这种单...
2018-05-21 21:34:29
236
原创 rest/restful
REST,就是一种应用接口的设计风格。RESTful 是 REST 的形容词形式,RESTful API 指的是 REST 风格的接口。一、协议API与用户的通信协议,总是使用HTTPs协议 二、域名应该尽量将API部署在专用域名之下。https://api.example.com如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。https://ex...
2018-05-21 16:36:47
313
原创 php-fpm 进程管理的三种模式
php-fpm进程管理一共有三种模式:ondemand、static、dynamic ondemand在php-fpm启动的时候,不会给这个pool启动任何一个worker,是按需启动,当有连接过来才会启动。优缺点优点:按流量需求创建,不浪费系统资源(在硬件如此便宜的时代,这个优点略显鸡肋)缺点:由于php-fpm是短连接的,所以每次请求都会先建立连接,建立连接的过程必然...
2018-05-21 15:57:14
767
原创 关于 PHP-FPM
php-fpm是一种master(主)/worker(子)多进程架构,与nginx设计风格有点类似。master进程主要负责CGI及PHP环境初始化、事件监听、子进程状态等等,worker进程负责处理php请求。 运行模式php-fpm支持三种运行模式,分别为static、ondemand、dynamic,默认为dynamic 。 static : 静态模式,启动时分配固定的wo...
2018-05-21 15:41:03
336
原创 Nginx 与 FPM 的工作机制
要说 Nginx 与 PHP 是如何协同工作的,首先得说 CGI (Common Gateway Interface) 和 FastCGI 这两个协议。 CGI 是 Web Server 与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理 Web Server 发来的请求,动态的生成内容。但 CGI 有一个致命的缺点,那就是每处理一个请求都需要 fork 一个全新的进程,随着...
2018-05-21 15:08:52
211
原创 PHP优化写法
1 字符串1.1 少用正则表达式能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式, 因为其效率高于正则。str_replace函数要比preg_replace快得多,strtr函数又比str_replace来得快。 1.2 字符替换str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4。...
2018-05-20 23:14:08
154
原创 PHP缓存加速器原理
LAMP环境的PHP缓存加速器原理在LAMP环境中,Apache服务是使用libphp5.so响应处理PHP程序请求的,整个流程如下:1、Apache接收客户端的PHP程序请求并根据规则过滤。2、Apache将PHP程序请求传递给PHP处理模块libphp5.so3、PHP引擎定位磁盘上的PHP文件,并将其加载到内存中解析4、PHP处理模块libphp5.so将PHP源代码...
2018-05-20 22:07:55
414
原创 PHP Opcache
关于编译与解释编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的. Opcache是一种通过将解析的PHP脚本预编译的字节码存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共...
2018-05-20 22:05:34
147
原创 Redis持久化
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中...
2018-05-18 13:55:56
135
原创 MySQL 主从同步延迟
在配置好主从同步以后, 主服务器会把更新语句写入binlog, 从服务器的IO线程(5.6.3 之前的IO线程仅有一个,5.6.3之后的有多线程去读了,速度自然也就加快了)回去读取主服务器的binlog 并且写到从服务器的Relay log 里面,然后从服务器的SQL thread会一个一个执行 relay log 里面的sql , 进行数据恢复。 1. 主从同步的延迟的原因当某...
2018-05-18 13:23:40
203
原创 MySQL的事务隔离级别
第1级别:Read Uncommitted(读取未提交内容)(1)所有事务都可以看到其他未提交事务的执行结果(2)本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少(3)该级别引发的问题是——脏读(Dirty Read):读取到了未提交的数据 #事务A:启动事务A#事务B:启动事务B,在事务B中执行更新语句,且不提交#事务A:那么这时候事务A能看到事务B还没...
2018-05-18 10:52:38
131
原创 OAuth2 简介
的基本流程为:1、用户访问第三方应用。2、第三方应用请求用户授权。3、用户同意授权,并返回一个凭证(code)。4、第三方应用通过第二步的凭证(code)向授权服务器请求授权。5、授权服务器验证凭证(code)通过后,同意授权,并返回一个资源访问的凭证(Access Token)。6、第三方应用通过第四步的凭证(Access Token)向资源服务器请求相关资源。7、...
2018-05-16 11:13:24
137
原创 SSO单点登录/登出
SSO单点登录单点登录是指用户在某个应用系统上登录之后,进入其子应用或相关应用系统可以免去登录步骤,从而实现一次登录,到处操作。如:有业务服务器a.com和b.com,还有SSO服务器 sso.com,在a.com上完成登录操作之后访问 b.com 时是已登录状态。1、用户首次访问 a.com/user 时,到 a.com 服务器获取不到session2、给用户弹出一个SSO的登录...
2018-05-16 11:06:56
3631
2
原创 秒杀系统的应对策略
1、秒杀系统独立部署为了避免因为秒杀活动的高并发访问而拖垮整个网站,使整个网站不必面对蜂拥而来的用户访问,可以将秒杀系统独立部署;如果需要,还可以使用独立的域名,使其与网站完全隔离,即使秒杀系统崩溃了,也不会对网站造成任何影响。 2、秒杀商品页面静态化重新设计秒杀商品页面,不使用网站原有的商品详情页,页面内容静态化:将商品描述、商品参数、成交记录和用户评价全部写入一个静态页面,用...
2018-05-16 10:11:19
248
原创 XSS 和 CSRF
XSS:跨站脚本(Cross-site scripting)CSRF:跨站请求伪造(Cross-site request forgery) XSS 全称“跨站脚本”,是注入攻击的一种。其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本。这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问...
2018-05-16 08:35:14
140
原创 HTML5新特性
1、语义特性(Semantic)HTML5增加了新的内容标签,这些标签带有一定的语义,使搜索引擎爬取你的网站信息更高效。如:<header><footer><nav>.... 2、本地存储特性(OFFLINE & STORAGE)基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 A...
2018-05-16 08:24:33
242
原创 PHP大文件上传
php上传文件涉及到的参数(php.ini):file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 upload_max_filesize = 8m ;允许上传文件大小的最大值。默认为2M post_max_size = 8m ;指通...
2018-05-15 16:55:52
170
原创 斐波纳挈数列
规律:F(n) = F(n-1) + F(n-2)// 递归实现int fib (int n){ if (n <= 0) { return 0; } else if (n <= 2) { return 1; } else { return...
2018-05-15 16:04:37
358
原创 PHP7 做的相关优化
1、zval使用栈内存在Zend引擎和扩展中,经常要创建一个PHP的变量,底层就是一个zval指针。之前的版本都是通过MAKE_STD_ZVAL动态的从堆上分配一个zval内存。而PHP7可以直接使用栈内存。PHP代码中创建的变量也进行了优化,PHP7直接在栈内存上预分配zval。这样节约了大量内存分配和内存管理的操作。 PHP5zval *val; MAKE_STD_ZVAL...
2018-05-15 16:01:10
191
原创 Laravel 常见错误
1、2018/05/14 17:59:01 [error] 7932#0: *3 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "xxx/storage/logs/laravel.log" could not be ope...
2018-05-14 18:03:11
1163
原创 Mac上安装composer
$ curl -sS https://getcomposer.org/installer | php 这样就在根目录下下载了composer为了使用可以在全局中使用我们在下载的composer移动到bin目录下$ mv composer.phar /usr/local/bin/composer...
2018-05-14 17:14:29
186
原创 mysql 联合索引
联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找 利用联合索引,可以缩小搜索的范围,但使用一个具有两列的索引不同于使用两个单独的索引。复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序...
2018-05-14 15:20:39
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人