12月 242013
 

In our first installation in this blog, we went through a basic XCache installation with CentOS, Apache and PHP 5. Now, we’re going to look into how to make it work for your personal installation.

Much like every other tutorial out there, if you explicitly follow the instructions you find on the internet, you’re usually going to run into problems. One of the biggest problems I see in systems configurations, is getting someone that “tunes” the machine by copying and pasting configs straight from a forum or blog. Sure, it works, but that doesn’t mean it works *good*. It could also cause many more problems that it solves.

The best way to tune a machine will always be understanding what you’re doing. And that’s what we’re going to try to do here today with XCache. Continue reading »

6月 182011
 

php官方已经不再积极更新php5.2.x了,看到一篇文章讲从php5.2.x升级到php5.3.x的,先做个记录。目前的项目还是基于php5.2.x,时机成熟再迁移吧,毕竟这是劳民伤财的事。

来源:Web思想者论坛,以下为原文:

目录
一、PHP 5.3.x中发生了什么变化
二、向后不兼容的变化
三、新功能
四、Windows支持的变化
五、SAPI modules中的变化
六、PHP 5.3.x中不建议使用的功能
七、PHP 5.3.x中去除不推荐的功能
八、新参数
九、新函数
十、新的stream wrappers
十一、新的类常量
十二、新方法
十三、新扩展
十四、移除的扩展
十五、扩展中的其他变化
十六、新的类
十七、新的全局常量
十八、INI文件handling的变化
十九、其他变化

一、PHP 5.3.x中发生了什么变化
PHP 5.3.x中绝大多数的改良对现有代码无影响。但是需要考虑一小部分不兼容和新功能,并且在生产环境中切换PHP版本需要做下test。 Continue reading »

4月 202011
 

  eAccelerator 是一个开源并且免费的 PHP 加速器,优化器,编码器,同时也能够为 PHP提供动态内容缓存。它能够将 PHP 脚本缓存为已编译状态以达到提升 PHP 脚本运行性能的目的,因此传统的预编译几乎被消除。eAccelerator 也能够优化 PHP 脚本以提升 PHP脚本的执行速度。eAccelerator 可有效降低服务器负载并且提高 PHP 程序速度达 1-10 倍。TurckMMCache 是 eAccelerator 的前身。

      eAccelerator 包含一个 PHP 编码器和加载器。您可以使用编码器对 .php 脚本进行编码,从而能够以非源代码方式发布您的 PHP 程序。经过编码的 PHP 程序可以运行在任何安装有PHP 解析环境和 eAccelerator 的站点上,由于编码后的 PHP 程序存储为已编译代码,并且已编译版本中不包含程序的源代码,因此,经过 eAccelerator 编码的 PHP 程序是不能被还原恢复的。当然,一些内部脚本可以被某些不同的反编译引擎工具(如 disassemblers, debuggers等)进行还原恢复,但这并非是微不足道的。

  eAccelerator 与 Zend Optimizer 加载器兼容。在 php.ini 中,Zend Optimizer 必须在eAccelerator 之后加载。如果您的站点不运行任何经由 Zend 编码器编码的 PHP 脚本,那么我们并不推荐您在安装 eAccelerator 的服务器上安装 Zend Optimizer。

  eAccelerator 不能运行于 CGI 模式下,但它可以运行于像 lighttpd 类似的 Fast-CGI模式 Continue reading »

4月 192011
 

一、PHP加速器介绍

        PHP加速器是一个为了提高PHP执行效率,从而缓存起PHP的操作码,这样PHP后面执行就不用解析转换了,可以直接调用PHP操作码,这样速度上就提高了不少。

        Apache中使用mod_php的请求、响应执行流程:

  1、Apache接收请求。
2、Apache传递请求给mod_php。
3、mod_php定位磁盘文件,并加载到内存中。
4、mod_php编译源代码成为opcode树。
5、mod_php执行opcode树。

       PHP加速器相应的就是第四步,它的目的就是防止PHP每次请求都重复编译PHP代码,因为在高访问量的网站上,大量的编译往往没有执行速度快呢?所以这里面有个瓶颈就是PHP的重复编译既影响了速度又加载了服务器负载,为了解决此问题,PHP加速器就这样诞生了。

二、PHP加速器安装与配置

4月 192011
 

随着PHP流行,PHP的执行效率也越来越被大家关注,可以选择的缓存器也是越来越多,从老的php-memcache到eaccelerator还有新兴的xcache.为了挑选一个合适的缓存器决定自己实测一下,看看哪个缓存器的效率更高,由于php-memcache很少有人用了现在只测试eaccelerator和xcache.

硬件配置:
CPU:Intel 2140(双核心)
内存:2G DDR667
硬盘:80G(IDE接口,2M缓存)

软件版本
系统:Mandriva 2008 free,apache-2.2.6,php-5.2.4,ZendOptimizer-3.3.0,mysql-5.0.45.
测试对象的版本:eaccelerator-0.9.5.2,xcache-1.2.1 Continue reading »

12月 162010
 

当使用者在参观网页时,有时想 Email 给 Webmaster 但是再执行 Email 程式总是不方使,使用者在按下 mailto:[email protected] 还要花段时间打开自己这儿的 Outlook 岂不麻烦。这时,若是 Homepage 能提供写信的功能就太酷了。同时意见信箱还是以提醒或者要求使用者一定要填入哪些资料,这对资料仓储而言,也是了解客户的最好方法。

整个意见信箱其实就像 Outlook 或者其它电子邮件软体,开启寄发新邮件的功能,不同的地方在于使用 Outlook 时,寄件人是固定的,而要填上收件人的地址;而网站上的意见信箱,收件人几乎都是 Webmaster,反而是要填上寄件人的电子邮件地址。当然另一个不同之处是Outlook 处理寄信的动作;而意见信箱是由 Web 伺服器处理使用者发送的信件。

在更进阶的设计后,甚至可以变成 Web Mail,像 HotMail 般,只要用浏览器就可以在任何地方用任何电脑收发信件。

当然,也可以做进阶的设计,将使用者的意见储放在资料库中,留待日后整理成更有用的资料。不过这就不是这节要讨论的部份了。

在 UNIX 的系统中,大部份和电子邮件有关的问题都和 sendmail 有关,除非系统管理员较偏执,才会用其它的系统。因此,意见信箱的设计开发,也是使用 sendmail 来达成所需要的功能。而 WindowsNT 系统中,由于没有 sendmail 程式,需要另行符费购买,或使用其它的邮件派送软体,因此本节程式无法在 WindowsNT 系统执行。 Continue reading »

12月 102010
 

随着php的版本的升级,ubuntu上默认安装的php版本也从php5.2.x升级到了php5.3.x. 服务器上的一些php程序也是被开发商用zend的早期版本加密过的, 但是zend官方至今仍然没有提供zend optimizer的支持php5.3同时兼容php5.2的版本.

为什么迟迟无法推出支持php5.3的zend optimizer呢?
在zend的官方论坛上,官方工作人员在2009年9月做了如下回答:

by kentatzend on Tue Sep 15, 2009 6:54 pm
The problem is that as we looked into this it is simply not just Optimizer that needs to be updated but also Zend Guard. Zend Guard does not support PHP 5.3 and it appear that php 5.2 code that is encoded with Guard will not run properly in Optimizer/php5.3. So even if we released optimizer it probably would not work.

We need to build a new version of Guard & Optimizer that supports PHP 5.3 and … then people will need to re-encode/obfuscate with the new Guard to run on PHP 5.3.

So this is taking some time due to low level incompatibility that end users of PHP would never see but are important for stuff like this. Please bear with us as we update this product.

http://forums.zend.com/viewtopic.php?f=57&t=1365#p8770

by kentatzend on Sat Jul 04, 2009 1:54 am
We plan to release a zend guard and runtime for php 5.3 later this year.

意思是要继续等待,等待官方开发出支持php5.3的zend guard加密部分的软件,然后才能提供解密运行的zend optimizer的部分. Continue reading »

9月 182010
 

最近,帮一个朋友优化一个拥有20万主题,100万帖子,3万多会员,平均在线人数2000人的Discuz!论坛,采用Linux2.6+Apache2+mod_php5+MySQL5,服务器配置为双至强+4G内存,优化前,系统平均负载(load average)基本维持在10以上,MySQL的CPU占用率基本在90%以上,优化后,系统平均负载降到0.5以下,MySQL的CPU占用率很少有超过10%的时候。优化前YSlow得分只有35分,优化后YSlow得分86分。现将优化的过程和经验做一个记录:

首先,对Apache进行优化,编辑httpd.conf,设置HostnameLookups、KeepAlive、 MaxKeepAliveRequests以及KeepAliveTimeout四个参数,调整MaxSpareServers、 ServerLimit、MaxClients以及MaxRequestsPerChild参数,还可以考虑弃用prefork而采用worker MPM。设置mod_deflate及mod_expires模块,不过注意Discuz!不能对PHP文件开启Expires,否则会出现问题。另外还可以考虑开启mod_cache和mod_mem_cache模块。另外利用cronolog按天对日志进行轮循截断,如果日志特别大,也可以按小时截断。另外再加上Awstats对日志进行分析,并用gzip对日志进行压缩,自动删除1个月前的日志。

其次,对PHP进行优化,编辑php.ini,调整output_buffering、zlib.output_compression及 max_execution_time、max_input_time、memory_limit等参数,并安装Xcache和Zend Optimizer。

然后对MySQL进行优化。 Continue reading »