您所在的位置:读书频道 > 操作系统 > Linux > 18.5.1 PHP强化模块与Apache简易效率测试

18.5.1 PHP强化模块与Apache简易效率测试

2007-12-05 15:23 鸟哥 机械工业出版社华章公司 字号:T | T
一键收藏,随时查看,分享好友!

《鸟哥的Linux私房菜——服务器架设篇》(第二版)第18章的主要介绍的是WWW服务器。本文主要介绍的是PHP强化模块与Apache简易效率测试。

AD:

18.5  日志文件分析及PHP强化模块等软件说明

除了这些基本的Apache使用方式之外,还有哪些事情是需要注意的呢?当然还有很多,包括有趣的PHP效率强化模块、日志文件分析以及了解整个Apache的使用情况等。

18.5.1  PHP强化模块与Apache简易效率测试

虽然PHP网页程序标榜的是速度快,不过因为PHP毕竟是先将一些可用函数编译成模块,然后当网页使用到该PHP程序的时候,再通过PHP模块来实现程序所需要的行为。由于多了一道手续,所以它的执行效率还是有别于传统编译的程序语言。

那么如果可以将PHP程序预先转换成可直接执行的binary file,那么不就可以直接读取进而加快速度吗?没错!该工具称为编译器。其中有一套软件称为eaccelerator,eaccelerator可以将PHP程序、PHP核心及相关库函数预先编译后暂存下来,当以后使用时可以直接执行,再加上它可以优化PHP程序,因此,它可以增快您的PHP网页速度。

eaccelerator的官方网站为:http://eaccelerator.net/HomeUk。整个安装的流程很简单,先下载软件的源代码,这里假设将它下载到/root目录中,另外必须确定已经安装php-devel、autoconf、automake、m4、libtool等软件,操作如下(鸟哥是以0.9.5版本为范例)。

1. 解压缩文件
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -jxvf /root/eaccelerator-0.9.5.tar.bz2
[root@linux src]# cd eaccelerator-0.9.5/

2.利用phpize进行PHP程序的预处理
[root@linux eaccelerator-0.9.5]# phpize
#过程中会出现一些警告信息,不要理它
[root@linux eaccelerator-0.9.5]#./configure--enable-eaccelerator=shared \
>--with-php-config=/usr/bin/php-config
[root@linux eaccelerator-0.9.5]# make

3. 将它整个安装起来
[root@linux eaccelerator-0.9.5]# make install
# 此时这个新编译的模块会被放置到/usr/lib/php4/eaccelerator.so中

将模块处理完毕后,接下来就是让PHP使用这个模块,操作如下。

1. 预先加载这个PHP模块
[root@linux ~]# vi /etc/ld.so.conf
#新增这一行即可
/usr/lib/php4

[root@linux ~]# ldconfig
#关于ld.so.conf以及ldconfig已在《鸟哥的私房菜——基础学习篇》谈过,请自行参考

2. 修改php.ini 
[root@linux ~]# vi /etc/php.ini
# 在这个文件的最下面加入这几行
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; http://eaccelerator.net/HomeUk ;
; 2006/11/08 VBird               ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

3. 建立eaccelerator的暂存数据,重点在于权限要设置正确
[root@linux ~]# mkdir /tmp/eaccelerator
[root@linux ~]# chmod 777 /tmp/eaccelerator
[root@linux ~]# apachectl restart

需要注意的是:eaccelerator是根据目前这一版的PHP核心所编译出来的,所以如果PHP开发出新版本,您也顺利更新到新版本,那您的eaccelerator就必须自行手动再更新一次,以配合到正确的PHP版本,否则这个模块将不会正确运行。

那如何确认这个模块是否在正确运行呢?您可以利用我们在启动PHP那个小节内谈到的phpinfo()函数来查阅,通过浏览器应该会看到如图18-9所示的界面。

图18-9 确定eaccelerator有运行的界面

如果您的eaccelerator没有启动的话,那就看不到图18-9所示的界面了。通过这个操作测试一下吧。接下来利用Apache提供的小程序来测试一下网站的效率。这个程序名为ab,它可以主动向主机重复要求多个数据来确认主机的效率。
[root@linux ~]# ab [-dSk] [-c number] [-n number] 网页文件名
参数:
-d,不要显示saved table的百分比资料;通常不要那个数据,所以会加-d
-k,还记得上面的KeepAlive?加入-k才会有这样的功能测试
-S,不显示长信息,仅显示类似min/avg/max的简短易懂信息
-c,同时有多少个“同时联机”的设置(可想象成同时联机的IP)
-n,同一个联机建立几个要求通道(可想象成同一个IP要求的几条联机)
更多的信息请自行man ab 

# 针对刚刚测试的phpinfo.php文件
[root@linux ~]# ab -dSk -c100 -n100 http://localhost/phpinfo.php
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation,
http://www.apache.org/
…
Total transferred:      4549407 bytes
HTML transferred:       4532922 bytes
Requests per second:    125.21 [#/sec] (mean)
Time per request:       798.628 [ms] (mean)
Time per request:       7.986 [ms] (mean, across all concurrent requests)
Transfer rate:          5562.04 [Kbytes/sec] received
…

根据这个软件的输出您会知道每秒钟的传输速率、最大传输速度等,从而可以粗略了解基本效率。不过鸟哥这个程序是在自己的机器上测试的,速度快是正常的。您可以在网络的另一头来测试(注:这个ab程序无法对MySQL之类的网页进行测试,您应该以较简单的网页来测试)。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

网管员必读——网络安全(第2版)
本书是在《网管员必读—网络安全》第1版的基础上修改而成的。新版在保留第1版实用内容的基础上增加了大量新的实用内容,同时删除

51CTO旗下网站

领先的IT技术网站 51CTO 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院