background image

extension="mmcache.so" mmcache.shm_size="16" mmcache.cache_dir="/tmp/mmcache" 
mmcache.enable="1" mmcache.optimizer="1" mmcache.check_mtime="1" mmcache.debug="0" 
mmcache.filter="" mmcache.shm_max="0" mmcache.shm_ttl="0" 
mmcache.shm_prune_period="0" mmcache.shm_only="0" mmcache.compress="1"

5. 重新启动 Apache

/etc/rc.d/rc.httpd restart
通过以上 5 步,turck-mmcache 已经可以使用了,下面我们对加速、优化效果进行简单的
测试。
测试
1. 编写一个 compute.php 文件,来进行一个大量循环的计算,在运算前后分别取系统时间,
最后将两次时间相减,得出所用时间。(只是个粗略的估计)
compute.php 文件内容如下
<? //============用来循环计算的 compute.php 文件================// $a=0; 
$t=time(); for($i=0;$i<6000000;$i++) {$a=$a*$i;} $t1=time(); echo "<p>"; echo "It used:"; echo 
$t1-$t; echo "seconds"; ?>
2. 计算一下未编译时候所用的时间,也就是在浏览器里面调用我本刚刚写的 compute.php
文件。需要耐心等待一会,大约 30 秒左右(p3 500 的 cpu 下)
3. 为了编译 php 文件方便,我们来编写一个叫做 encoder 的 shell 来编译 php 文件。
<1> 首先将/usr/local/turck-mmcache-2.4.6 目录下的 encoder.php 文件复制到/usr/bin 目录下
cp /usr/local/turck-mmcache-2.4.6/encoder.php /usr/bin/
<2> 用 vi encoder 建立 encoder 文件,内容如下:
#!/bin/sh clear src=$1; echo $src; src2=$src".en"; echo $src2; cp /usr/bin/encoder.php 
./encoder.php php encoder.php $src -o $src2; rm encoder.php mv $src $src.bak; mv $src.en $src;
<3> 对刚编写的 shell 给可执行权限,并移动到/usr/bin 目录下
chmod +x encoder mv encoder /usr/bin/
<4> 通过 encoder 编译 compute.php 文件,编译后 compute.php 为编译后文件,源文件被命
名为 compute.php.bak 保存
encode compute.php
<5> 在浏览器里调用编译后的 compute.php 文件,看看速度时候提高了?
我这里,原来要用 27 秒,编译后用 22 秒

php_screw 和 turck-mmcache 的区别

php_screw 只是单纯的对 php 代码加密,并没有加速和优化的效果。
turck-mmcache 是通过对 php 代码的编译,来使 php 代码解释执行的速度可以接近二进制
代码的速度。可以起到加速和优化 php 代码的作用。但是 turck-mmcache 编译后的代码,只
是将源代码通过一定规则变成了二进制代码,并没有真正的加密。
所以如果要想确保代码的绝对安全就用 php_screw,要是考虑到速度等因素,就是用
turck-mmcache