摘要:
php扩展也需要依赖于FastDFS一些库文件,所以请先安装FastDFS,具体请看我之前的文章。 一、安装目录 php安装目录 /data/nmp/php FastDFS源码目录 /data/wwwroot/FastDFS 二、安装php扩展 1、进入php_client目录 > cd /data 阅读全文
摘要:
有四个网站分别为: www.a.com www.b.com www.c.com www.sso.com 需求是如果我们在sso登陆后,其他网站也会显示登陆中,不需要重复登陆,退出时,其他网站也会失效。 解决流程如下: 1、我们需要统一这四个站的session存储方式。 (session共享,保存到m 阅读全文
摘要:
关于php的输出缓冲,首先要说明的是什么是缓冲(buffer),比如我们通过记事本在编辑文件的时候,并不是我们输入了内容,系统就会立刻向磁盘中写入数据。只有我们在保存文件后,系统才会向磁盘写入数据。而之前我们输入的内容全部保存在了文件缓冲区中,只有当缓冲区写满或者执行保存时,数据才会写入磁盘。 而p 阅读全文
摘要:
html5中的File对象继承Blob二进制对象,Blob提供了一个slice函数,可以用来切割文件数据。 <!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title></title> </head> <body> 阅读全文
摘要:
思路:只要我们知道上传文件的总大小,还有上传过程中上传文件的大小,那么就可以实现进度显示了。 在html5中,XMLHttpRequest对象,传送数据的时候,progress事件用来返回进度信息。 它分成上传和下载两种情况 1.下载的progress事件属于XMLHttpRequest对象 2.上 阅读全文
摘要:
我们通过动态的创建iframe,修改form的target,来实现无跳转的文件上传。 具体的实现步骤 1.捕捉表单提交事件 2.创建一个iframe 3.修改表单的target,指向iframe 4.删除iframe file.html代码如下: <!DOCTYPE HTML> <html lang 阅读全文
摘要:
nginx是如何实现负载均衡的,nginx的upstream目前支持以下几种方式的分配: 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 2、ip_h 阅读全文
摘要:
查看nginx的error.log日志文件发现如下信息: upstream sent too big header while reading response header from upstream 原因是: nginx缓冲区有一个bug造成的,网站的页面消耗占用缓冲区可能过大。 proxy是n 阅读全文
摘要:
nginx服务器出现如下信息: [crit] 17221#0: accept4() failed (24: Too many open files) [crit] 17221#0: accept4() failed (24: Too many open files) [crit] 17221#0: 阅读全文
摘要:
Gearman是一个分发任务的程序框架,它会对作业进行排队自动分配到一系列机器上。gearman跨语言跨平台,很方便的实现异步后台任务。 一个Gearman请求的处理过程涉及三个角色: Client -> Job Server -> Worker Client:请求的发起者。 Job Server: 阅读全文
摘要:
1、下载pthreads的源码包 https://pecl.php.net/package/pthreads 如:pthreads-3.1.6.tgz 2、解压 > tar zxvf pthreads-3.1.6.tgz > cd pthreads-3.1.6 3、通过phpize命令生成configure > /data/nmp/php/bin/phpize 4、生成好后,运行conf... 阅读全文
摘要:
1、下载event源码包 https://pecl.php.net/package/event 如:event-2.0.4.tgz 2、解压 > tar zxvf event-2.0.4.tgz > cd event-2.0.4 3、通过phpize命令生成configure > /data/nmp/php/bin/phpize (*如上路径只作演示,具体视安装环境而定。) 4、生成好后,... 阅读全文
摘要:
一、安装libevent库 1、到libevent官网下载安装源码 http://libevent.org/ 如:libevent-2.0.22-stable.tar.gz 2、解压源码包 > tar zxvf libevent-2.0.22-stable.tar.gz > cd libevent-2.0.22-stable 3、configure > ./configure --pref... 阅读全文
摘要:
libevent是一个基于事件驱动的高性能网络库。支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。 常量如下: 值常量名含义 1 EV_TIMEOUT 超过时间后事件成为激活状态 2 阅读全文
摘要:
Pool对象是多个Worker对象的容器,同时也是它们的控制器,对Worker功能更高抽象。 比如Worker是河,而线程是运行在河里的船。Pool则是管理着多条河。 <?php //继承Collectable垃圾收集类,好让Pool::collect进行收集 class Sql extends C 阅读全文
摘要:
有些时候我们不希望线程调用start()后就立刻执行,在处理完我们的业务逻辑后在需要的时候让线程执行。 <?php class Sync extends Thread { private $name = ''; public function __construct($name) { $this-> 阅读全文
摘要:
有些时候我们希望在多个线程中共享一些需要的数据,我们可以使用shmop扩展。 <?php class Count extends Thread { private $name = ''; public function __construct($name) { $this->name = $name 阅读全文
摘要:
当我们用多线程操作同一个资源时,在同一时间内只能有一个线程能够对资源进行操作,这时就需要用到互斥量了。比如我们对同一个文件进行读写操作时。 <?php class Add extends Thread { private $name = ''; private $res = null; privat 阅读全文
摘要:
<?php //Worker是具有持久化上下文(执行环境)的线程对象 //Worker对象start()后,会执行run()方法,run()方法执行完毕,线程也不会消亡 class MySqlWorker extends Worker { private $name = ''; private $d 阅读全文
摘要:
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个socket,并绑定到一个端口上,不同的端口对应于不同的服务。 服务端的流程如下: 1、初 阅读全文