
PHP
小魚頭XD
两粒种子一片森林
展开
-
Varnish与Squid比较
Varnish与Squid之间的相同点。都是一个反向代理服务器。都是开源软件。下面是它们的不同点,也是Varnish的优点。Varnish的稳定性很高。两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为Squid需要经常重启。Varnish访问速度更快。Varnish采用了“Visual Page Cache”技术,所有缓存原创 2013-04-16 16:27:17 · 1350 阅读 · 0 评论 -
php实现用户在线时间统计详解
1、客户端定时发送请求到服务器端。实现方法是在用户登录后,将uid,session_id,login_time插入一条记录,然后在客户端js设定一个计时器,比如每10分钟向服务器端发送一个请求,以此来达到更新登出时间的目的,当然这个间隔时间设定的越短,数据可能会越准确,不过相应的系统的负载也会越高,这个可以根据实际情况设定一个合适的值。这种方法广泛应用于webgame上,因为webgame的几乎所转载 2013-05-14 11:00:04 · 2407 阅读 · 1 评论 -
PHP 遍历目录
function iteral($path){ $filearr = array(); foreach (glob($path.'\*') as $file){ if(is_dir($file)){ $filearr = array_merge($filearr,iteral($file)); }else{原创 2013-05-14 17:33:50 · 707 阅读 · 0 评论 -
php性能测试工具--xhprof
一,XHProf介绍XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,可以由程序开关来控制是否进行调用,如果你服务器足够强劲,完全可以用于生产环境,不过还是建议大家用于测试环节,在测试阶段就应该将一些较低级问题解决掉。二,XHProf安装此方法是将XHProf作为扩展模块安装,很简单wget http://pecl.ph转载 2013-05-30 09:35:52 · 935 阅读 · 0 评论 -
最短路径之Dijkstra算法详细讲解
1 最短路径算法在日常生活中,我们如果需要常常往返A地区和B地区之间,我们最希望知道的可能是从A地区到B地区间的众多路径中,那一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:(1)确定起点的最短路径问题:即已知起始结点,求最短路径的问题。(2)确定终点的最短路径问题:与确定起点的问题相反,转载 2013-06-14 16:07:46 · 1013 阅读 · 0 评论 -
PHP-FPM高负载的解决办法
这里只是介绍了php-fpm的优化方法的,但一般情况下和nginx组合使用的时候,单独优化其中一项的话,作用不是特别的大,同时还需要对nginx进行优化.nginx的做法方法参考:http://blog.haohtml.com/archives/6213.上面的优化前和优化后的图,看得出前后差距还是特别的大的.导致nginx 502 bad gateway的PHP-CGI(FASTCGI)转载 2013-06-25 16:42:02 · 1263 阅读 · 0 评论 -
Nginx缓存服务器配置
1.Web缓存的定义.Web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输出内容给客户端,而不是向源服务器再次发送请求.Web缓存降低了内容源Web服务器,数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了转载 2013-06-25 17:08:29 · 2498 阅读 · 0 评论 -
nginx图片缓存服务器配置实战
1、图片目录设置:假定服务器主目录为nginx的默认目录:/usr/local/nginx-0.8.32/html/图片存放目录为:/usr/local/nginx-0.8.32/html/SD/images图片缓存目录为:/usr/local/nginx-0.8.32/html/SD/images_cache图片临时目录为:/usr/local/nginx-0.8.32/html转载 2013-06-25 17:03:46 · 7149 阅读 · 0 评论 -
PHP实现二度人脉算法
/** * 数据库中得到的关注列表 * $str字符串中,每个逗号分隔的记录表示前者关注后者 */$str = "A-B,A-C,A-D,A-E,A-F,A-G,B-C,B-A,B-G,B-I,B-P,B-M,C-A,C-B,C-D,C-G,C-J,C-M";$arr = explode(',', $str);/** * 遍历$arr,找出每个人关注的集合与被关注的集合转载 2013-06-27 09:50:27 · 1630 阅读 · 0 评论 -
php中curl_multi的应用
相信许多人对php手册中语焉不详的curl_multi一族的函数头疼不已,它们文档少,给的例子 更是简单的让你无从借鉴,我也曾经找了许多网页,都没见一个完整的应用例子。curl_multi_add_handlecurl_multi_closecurl_multi_execcurl_multi_getcontentcurl_multi_info_readcurl_multi_转载 2013-08-01 16:50:25 · 620 阅读 · 0 评论 -
curl伪造IP和来路
client.php1234567891011121314151617181920212223$headers['CLIENT-IP'] ='202.103.229.40'; $headers['X-FORWARDED-FOR'] ='202.10转载 2013-08-01 18:15:40 · 1400 阅读 · 0 评论 -
Beanstalkd队列安装使用心得
一、安装1、安装libevent引用wget http://cloud.github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gzcp libevent-1.4.14b-stable.tar.gz /usr/local/src/tar zxvf libevent-1.4.14b-stable.tar转载 2013-04-16 16:58:45 · 3048 阅读 · 0 评论 -
PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置
/** * 获取用户真实 IP */function getIP(){ static $realip; if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $realip = $_SERVER[转载 2013-10-14 10:05:32 · 1076 阅读 · 0 评论 -
PHP-FPM进程CPU 100%的原因及解决方案
最近有服务器不时出现的CPU使用率超高,内存几乎被吃光,系统甚至自动kill掉一些进程,如sshd,vsftpd等。用top查看,PHP-CGI进程高挂不下,如下是解决方案:一、进程跟踪# top //找出CPU使用率高的进程PID# strace -p PID //跟踪进程# ll /proc/PID/fd //查看该进程在处理哪些文件将有可疑的PHP代码修改之,如:file转载 2013-05-07 18:03:35 · 8272 阅读 · 0 评论 -
Nginx使用的php-fpm的两种进程管理方式及优化
php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本。在5.2.x的版本中,php-fpm.conf使用的是xml格式,而在新的5.3.x版本中,则是和php.ini一样的配置风格。在5.2.x版本中,php-fpm.conf中对于进程管理号称是有两种风格,一种是静态(static)的,一种是类似于apache风格(apache-like)的。转载 2013-05-07 17:53:32 · 860 阅读 · 0 评论 -
Memcached常规应用与分布式部署方案
下面天涯[PHPHA.COM]介绍下Memcached的最常规的应用及分布式部署方案。相关内容参考了凹凸曼写的Memcached使用与实践章节。至于Memcached的安装及基本使用,这里不做介绍,有需要可以借助Google或Baidu。1、Memcached常规应用使用Memcached缓存MySQL查询结果减轻数据库压力,下面直接上代码,后面做简单说明。php/** * Memca转载 2013-05-03 18:37:57 · 840 阅读 · 0 评论 -
html5预览上传图片
//图片上传预览$(function(){ $("input[type='file']").change(function(evt){ var files = evt.target.files; var which_img = $(this).attr('id'); for (var i = 0, f; f = file转载 2013-04-16 16:55:01 · 874 阅读 · 0 评论 -
Redis+PHP常用命令总结
Redis::__construct描述:创建一个Redis客户端范例:$redis = new Redis();connect, open描述:实例连接到一个Redis.参数:host: string port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE范例:$redis->connect(‘127.0.0.1′,转载 2013-04-16 17:27:07 · 880 阅读 · 0 评论 -
Redis + php 使用hash(哈希) ,zset(有序集合)实例
1,hset描述:将哈希表key中的域field的值设为value。如果key不存在,一个新的哈希表被创建并进行HSET操作。如果域field已经存在于哈希表中,旧值将被覆盖。参数:key field value返回值:如果field是哈希表中的一个新建域,并且值设置成功,返回1。如果哈希表中域field已经存在且旧值已被新值覆盖,返回0。2,hsetnx描述:将哈希表key中转载 2013-04-16 18:01:49 · 3976 阅读 · 0 评论 -
Nginx安装配置及伪静态配置
目 录一、 Nginx 基础知识二、 Nginx 安装及调试三、 Nginx Rewrite四、 Nginx Redirect五、 Nginx 目录自动加斜线:六、 Nginx Location七、 Nginx expires八、 Nginx 防盗链九、 Nginx 访问控制十、 Nginx日志处理十一、 Nginx Cache十二、转载 2013-04-16 18:23:55 · 3272 阅读 · 0 评论 -
如何禁止上传目录运行php程序
目前好多站点都有上传的功能,为了站点服务器的安全考虑,需设定上传目录无法运行php文件apache: php_flag engine off注:/website/attachements 为上传目录的地址nginx:location ~* ^/(attachments|images)/.*\.(php|php5)${ de原创 2013-04-16 17:17:22 · 1751 阅读 · 0 评论 -
Beanstalkd , zeromq,rabbitmq对比
1)、rabbitmq(功能强大,管理应用也完善,不过也比较重量级)2)、zeromq(从rabbitmq出来的一个小而快速的队列,基本是目前最快的队列机制,自身支持多种模式,可以对各个模式进行自己组合 来满足业务的需求,非常自由,不过缺点是太过自由了,什么东西都得自己部署)3)、beanstalkd(相对来说功能够用,也非常小,学习成本底,就那么个协议文件,淘宝系统核心团队原创 2013-04-16 17:02:02 · 5544 阅读 · 0 评论 -
Resis中set类型,实现排行榜
1)使用zadd 方法往test 这个set类型里插入了五条数据 key scoreone 78two 987three 45four 93five 100 redis 127.0.0.1:6379> zadd test 78 "one"(integer) 1redis 127.0.0.1:6379> zadd test转载 2013-04-16 17:55:44 · 1165 阅读 · 0 评论 -
按照比例改变图片大小(
/** 按照比例改变图片大小(非生成缩略图) @param string $img 图片路径 @param int $max_w 最大缩放宽 @param int $max_h 最大缩放高 */ function chImageSize ($img,$max_w,$max_h) { $size = @getimagesize(转载 2013-04-16 16:52:31 · 927 阅读 · 0 评论 -
PHP+Sphinx建立高效的站内搜索引擎
1. 为什么要使用Sphinx 假设你现在运营着一个论坛,论坛数据已经超过100W,很多用户都反映论坛搜索的速度非常慢,那么这时你就可以考虑使用Sphinx了(当然其他的全文检索程序或方法也行)。 2. Sphinx是什么 Sphinx由俄罗斯人Andrew Aksyonoff 开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行。全文检索是指以文转载 2013-04-16 18:08:34 · 897 阅读 · 0 评论 -
php消息队列beanstalkd使用
php// 引入pheanstalk_init.php文件(下载地址https://github.com/pda/pheanstalk/)require_once('pheanstalk_init.php');$pheanstalk = new Pheanstalk_Pheanstalk('127.0.0.1');// --------------------------------转载 2013-04-18 11:21:20 · 2130 阅读 · 1 评论 -
Varnish –为你的网站加速
Web cache对于一个高流量的网站来说是非常重要的,通过cache常见的静态文件,如图片, flash, css和js等不常改动的文件,可以大量减轻后台server的压力。说到这可能很多人都会想到开源软件Squid,Squid如今广泛的被各大网站所使用,如sina、sohu等,但与此同时,我们还有另外一个选择,那就是Varnish,下面是一些官方网站的介绍:“Varnish is a转载 2013-04-19 11:29:01 · 992 阅读 · 0 评论 -
Squid配置反向代理
通过采用Squid的反向代理功能提高客户端对网站的浏览速度;测试环境: 普通PC机+RedHat linux As4+Squid 2.6 技术概述:以下分别采用了3种不同的模式在测试平台下对网站进行加速,原理:用户请求-〉DNS解析到Squid-Cache-〉Squid-Cache通过本地hosts进行解析-〉Web服务器(如果没有缓存)-〉Squid-Cach转载 2013-04-19 09:47:29 · 1013 阅读 · 0 评论 -
varnish替代squid的原因及常见问题
生产环境中尝试使用varnish替代squid的主要原因:1. squid不支持多核cpu, 生产环境中大多使用Dell R610系列,这种类型机器配置为2个4核双线程cpu, 操作系统识别为16个,对squid来说,只能利用到一个逻辑cpu, 其它15个逻辑cpu相当于一直浪费。2. squid无法批量清除缓存3. squid3.0目前还无法支持http 1.1, 这对转载 2013-04-19 10:05:20 · 1240 阅读 · 0 评论 -
php 下的测试工具Xdebug的安装及使用
1. 在http://www.xdebug.org/download.php下载适合自己php版本的dll文件2.将下载的xdebug.dll放到php/ext目录里3.编辑php.ini,加入如下配置: 1.)extension=php_xdebug-2.0.1-5.1.2.dll 2.) [Xdebug] xdebug.auto_trace原创 2013-05-09 09:50:31 · 1045 阅读 · 0 评论