浅析使用Turck-mmcache编译来加速、优化PHP代码
时间:2018-12-30 分类:PHP 作者:编程之家
PHP _screw确实很不错,但是只能起到加密的作用,并没有加速和优化的作用。 下面我们来看看:
<FONT style="COLOR: #ff0000">Turck MMCache 它的作用是通过对
PHP 代码 的编译来加速、优化
PHP 代码 ,我们如果发布的
PHP 代码 是经过编译的,也多少能起到一些对
代码 的保护作用。
下面我们对co
mpu te.
PHP 进行编译看看前后的
代码 区别,下面是co
mpu te.
PHP 的源
代码 <? //============用来循环计算的co
mpu te.
PHP 文件 ================// $a=0; $t=time(); for($i=0;$i<6000000;$i++) {$a=$a
$i;} $t1=time(); echo ""; echo "It used:"; echo $t1-$t; echo "seconds"; ?>
<div class="codetitle"><a style="CURSOR: pointer" data="34408" class="copybut" id="copybut34408" onclick="doCopy('code34408')"> 代码 如下: <div class="codebody" id="code34408">
<?
PHP if (!is_callable("mmcache_load") && !@dl((
PHP _OS=="WINNT"||
PHP _OS=="WIN32")?" TurckLoader.dll":"TurckLoader
.so ")) { die("This
PHP script has been encoded with Turck MMcache,to run it you must install <a href="
http://turck-mmcache.sourceforge.net/">Turck MMCache or Turck Loader");} return mmcache_load('eJzz9XV2dPZwZWBiYGBgZABRzAwgoM0AAakggoODIxgozQxUwJDIqMbIyMDIiCy ZBqVtGMCmMDKzAOmSzNzUdHTdJYxqTIwMLIwYxmYiGRvACBcUBqplZGzojYbbpSvMxCARhtCmBNSjxQOTRdIahn CxJNhOLQGs7mXC5V5QkJQYAt3FwMDCBNOqwcgMC iCbAjskEQ4gy7NEobQ4NcUK7hImuJeZgJazMGkwMSBpYQeyilOT8/NSipFEQeoV7BghwQAEAM45H7Y=');?>
不难发现,通过发布编译后的程序,应该可以有效的防止程序被篡改。
网站 http://turck-mmcache.sourceforge.net/ 如何获得turck-mmcache 1 可以通过它的网站获得
2 从下面的网址下载
http://prdownloads.sourceforge.net/turck-mmcache/turck-mmcache-2.4.6.tar.gz?download 安装 <FONT style="COLOR: #ff0000">1. 将下载的turck-mmcache-2.4.6.tar.gz放到/usr/local下解压缩
tar zxvf turck-mmcache-2.4.6.tar.gz
<FONT style="COLOR: #ff0000">2. 进入turck-mmcache-2.4.6目录,配置
cd turck-mmcache-2.4.6 export PHP_PREFIX="/usr" $PHP_PREFIX/bin/phpize ./configure --enable-mmcache=shared --with-php-config=$PHP_PREFIX/bin/php-config
<FONT style="COLOR: #ff0000">3. 编译、安装
make make install
<FONT style="COLOR: #ff0000">4. 修改/etc/apache/目录下的php.ini文件,为了可以使用turck-mmcache。
在php.ini文件里加入如下内容: <div class="codetitle">
<a style="CURSOR: pointer" data="26122" class="copybut" id="copybut26122" onclick="doCopy('code26122')"> 代码 如下: <div class="codebody" id="code26122">
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"
<FONT style="COLOR: #ff0000">5. 重新启动Apache
/etc/rc.d/rc.httpd restart
通过以上5步,turck-mmcache已经可以使用了,下面我们对加速、优化
效果 进行简单的测试。
测试
1. 编写一个 compu te.PHP 文件 ,来进行一个 大量循环的计算,在运算前后分别取系统时间,最后将两次时间相减,得出所用时间。(只是个粗略的估计) co
mpu te.
PHP 文件 内容 如下
<? //============用来循环计算的co
mpu te.
PHP 文件 ================// $a=0; $t=time(); for($i=0;$i<6000000;$i++) {$a=$a$i;} $t1=time(); echo "
"; echo "It used:"; echo $t1-$t; echo "seconds"; ?>
2. 计算一下未编译时候所用的时间,也就是在浏览器里面调用 我本刚刚写的compu te.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编译co
mpu te.
PHP 文件 ,编译后co
mpu te.
PHP 为编译后
文件 ,源
文件 被命名为co
mpu te.
PHP .bak保存
encode co
mpu te.
PHP <5> 在浏览器里
调用 编译后的co
mpu te.
PHP 文件 ,看看速度时候提高了?
我这里,原来要用27秒,编译后用22秒
<FONT style="COLOR: #ff0000">PHP _screw和turck-mmcache的区别 PHP _screw只是单纯的对
PHP 代码 加密,并没有加速和优化的
效果 。
turck-mmcache是通过对
PHP 代码 的编译,来使
PHP 代码 解释执行的速度可以接近二进制
代码 的速度。可以起到加速和优化
PHP 代码 的作用。但是turck-mmcache编译后的
代码 ,只是将源
代码 通过一定规则变成了二进制
代码 ,并没有真正的加密。
所以如果要想确保
代码 的绝对安全就用
PHP _screw,要是考虑到速度等因素,就是用turck-mmcache
原文地址:https://www.jb51.cc/php/26147.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。