Apache 2.0在性能上的改善最吸引人。在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比于Apache 1.3,2.0版本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效。但是在编译和运行时刻,2.0也有许多可以显著提高性能的选择。本文不想叙述那些以功能换取速度的指令,如HostnameLookups等,而只是说明在2.0中影响性能的最核心特性:MPM(Multi -Processing Modules,多道处理模块)的基本工作原理和配置指令。
Nginx分配CPU进程参数worker_cpu_affinity说明
对于具有多颗CPU的服务器,Nginx通过设置worker_cpu_affinity参数,即可轻松实现控制进程平均分配到多颗CPU上。
例如:服务器上安装有2颗双核CPU(在系统中显示CPU数量应该是4个)
例1:设定Nginx启用4个进程,那么可以写为:
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
2011年最热门的PHP开源项目回顾
本文来自于对活跃在SourceForge和GitHub上的项目的分析研究,同时我也在Twitter上向大家进行了调查,以免漏掉了很热门但是我却不知道的项目。
下面列出的项目都非常受欢迎,同时它们也成为了PHP编程界的标准,前景很好。(排名不分先后)
1. Symfony 2 及其组件
Symfony 2是一个完备的全栈HTTP框架,它可以以任何需要的方式来满足HTTP请求,而不仅仅是一个严格的MVC方法。Symfony 2为定义模块提供了一个Bundle API,你可以在应用程序之间进行模块移植。
此外,Symfony 2 有21个独立的组件,每个组件可当作一个独立的库。你可以用一个简单的Git子模块查看标准Autoloader或依赖注入容器。
给你的程序员200美元/小时
如果你在招聘程序员,你应该给他们200美元/小时。这样一来,很多其它任何方法都无法解决的难题都变的很容易。比如解决你的人才招募问题,保证你只有在真正需要的时候才去招募程序员。
期望问题
200美元/小时完全的阐明了你的期望。它是在说,你期望招募到这个领域里既专业又专长的人。
作为一个程序员,我面对这200美元/小时的劳动合同,拿它跟65美元/小时的合同相比,我会在2个关键方面表现的不同。首先,我会更加迫切的解决出现的问题和需求。如果在我休假的时候接到一个电话,客户要求一个新的功能。我会马上返回宾馆,立即开始实现它;高额的回报使我很容易向家人解释我的这种表现——事实上,她会完全的支持我这样。如果我的薪水只是普通水平,我绝对不可能表现成这样,因为不值得。也许我会因此丢了这份工作,但65美元/小时的工作到哪都能找到。
PHP5.3.9发布
PHP5.3.9的安全改进和修复主要包括:
- 在hash碰撞的基础上增加max_input_vars来防止冲撞
- 修复了bug #60150
PHP5.3.9主要的改进包括
- 修复了bug #55475
- 修复了bug #55609
- 改进了FPM SAPI 模块
官方网站原文如下:
分享一个简单的PHP分页类源码
这是站长平时经常在项目中应用的一个PHP分页类。类名为Paging,支持自定义构造翻页链接地址,可以自由在链接地址中添加所需的GET参数。
源代码可以到http://www.sunbloger.com/download/下载,提供了UTF-8和GBK两种编码版本。
源码如下:
一个非常简单的PHP网站首页静态化方案
下面这段代码是一个用PHP编写的网站首页静态化程序,代码并非站长本人所写,只是在一个项目中看到的。这个方案是将首页内容存入到一个磁盘文件中,需要时从这个文件中取出内容并输出。
这个方案只适用于并发量不高的网站,因为在较高并发量状况下,频繁的进行磁盘IO对于性能影响较大。(高并发的网站可以考虑将内容存入Memcached)
代码如下:
修改Linux用户使用资源限制ulimit
如果ulimit设置的过小,对于并发量大的网站,可能会出现too many open files的错误。因此需要我们对ulimit设置进行调整,方法如下:
例如apache以www用户身份运行
首先,打开limits.conf文件
vi /etc/security/limits.conf
在末尾加上如下内容:
www soft nofile 32768
www hard nofile 65536
上面两行的含义是:
www – 所指定的用户名
soft – 软限制
hard – 硬限制
nofile – 允许打开的文件数量,后面的数字就是具体的数量。
分享一个支持UTF-8的PHP字符串截取函数
截取UTF-8编码字符串的方法有很多,我也分享一个:
function cutStr($Str, $Length) { global $s; $i = 0; $l = 0; $ll= strlen($Str); $s = $Str; $f = true; while ($i <= $ll) { if (ord($Str{$i}) < 0x80) { $l++; $i++; } elseif (ord($Str{$i}) < 0xe0) { $l++; $i += 2; } elseif (ord($Str{$i}) < 0xf0) { $l += 2; $i += 3; } elseif (ord($Str{$i}) < 0xf8) { $l += 1; $i += 4; } elseif (ord($Str{$i}) < 0xfc) { $l += 1; $i += 5; } elseif (ord($Str{$i}) < 0xfe) { $l += 1; $i += 6; } if (($l >= $Length - 1) && $f) { $s = substr($Str, 0, $i); $f = false; } if (($l > $Length) && ($i < $ll)) { $s = $s . '...'; break; //如果进行了截取,字符串末尾加省略符号“...” } } return $s; }
Nginx超微软成世界第二大网络服务器
1月5日消息,据国外媒体报道,英国网络追踪和调查机构Netcraft近日公布报告指出,由于受到戴尔公司董事长Michael Dell及其他风险资本家的青睐,新兴的开源网络服务器公司Nginx已经超过了微软IIS(互联网信息服务器Internet Information Server),成为了世界上所有活动网站中第二大网络服务器供应商。
根据Netcraft的“2012年1月网络服务器调查报告”指出,在过去的一个月中,Nginx在各种网站中都获得了市场份额的提升,而其竞争对手Apache、微软和谷歌的市场份额均有所下滑。
据悉,自从去年7月份Nginx创始人Andrew Alexeev和Igor Syosev创建公司的以来,就已经带来了一定的市场冲击。该平台于2004年推出,主要致力于为世界上最繁忙的1000家网站中前25%的公司,提供高容量的网络流量服务,包括Facebook、Zappos、Groupon、Hulu、Dropbox以及WordPress等。Nginx去年10月份收到了来自戴尔首席执行官迈克尔·戴尔的私人风险投资公司MSD Capital、BV Capital以及Runa Capital的300万美元投资。