六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用ZendEncode編譯PHP程序

[摘要]一、ZendEncode的工作原理 使用PHP的人都知道,它是一個腳本編程工具,由它寫的程序,必須以源碼的形式放置在Web服務器上,所以我們無法保護自己的源代碼。而且各位都知道任何一個腳本程序的執行效率同具有相同功能的編譯好的二進制代碼相比較,它的執行效率都是比較慢的。那么要是有一個工具能夠幫我們...
一、ZendEncode的工作原理

使用PHP的人都知道,它是一個腳本編程工具,由它寫的程序,必須以源碼的形式放置在Web服務器上,所以我們無法保護自己的源代碼。而且各位都知道任何一個腳本程序的執行效率同具有相同功能的編譯好的二進制代碼相比較,它的執行效率都是比較慢的。那么要是有一個工具能夠幫我們把用php寫的程序編譯成二進制代碼就好了,這樣不但執行效率提高了,運行速度也加快了。真要是有這么一個工具,那就是一取兩得了。

剛好,剛剛發布的ZendEncode就是為此而開發的。ZendEncode可以直接將腳本編譯成二進制碼。有了ZendEncode,你就可以將自己寫好的php程序,編譯后分發給很多用戶,而用不著公開自己的源程序代碼。編譯好的二進制代碼可以被zend Optimizer透明讀取,也就是說,客戶只要在他的服務器上安裝Zend Optimizer就可以執行由ZendEncode編譯好的php程序。編譯程序中包含有Zend Optimizer的部分代碼,所以編譯過程中對程序代碼進一步作了優化處理,這即意味著腳本的執行效率提高了。

從一定意義上講,ZendEncode是一個“PHP編譯器”。但是,它又不是一個真正意義上的編譯器,真正意義上的編譯器會脫離原來的編譯環境運行,而ZendEncode編譯過的程序,還要有ZendOptimizer的支持,就如同是編譯好的java二進制代碼,其要有一個JVM來運行。所以,ZendOptimizer又可以看作是php編譯好代碼的虛擬機。不管怎么說,就是這么一個東西,它們要通過相互配合使用。

目前ZendEncode支持的操作系統有:Solaris,Linux,FreeBSD及Windows。ZendEncode可以直接運行,你的系統中不一定非要安裝php。


二、ZendEncode的安裝 (本文以linux環境下的安裝為例說明)

先去下載一個軟件包吧!ZendEncode不是自由軟件有,使用它要付費,而且價格相當高。幸好zend.com提供了一個可供試用的軟件包,用戶可以免費試用30天。這個軟件包可以直接從http://www.zend.com/上獲得。所以,首先要到http://www.zend.com/上下載ZendEncode、ZendOptimizer軟件包。其次,要下載一個授權文件,也即license。由于ZendEncode是一個授權使用的產品,所以需要用戶從zend.com上申請一個license。申請卡步驟如下:

要申請一個試用的license,需要向zend.com提供你正在使用的計算機的id,也即在申請頁中所要填寫的host ID(實際上就是你計算機上的網卡的MAC地址),查看計算機ID的方法如下:從zend.com下載一個lmutil.z的程序,解壓后得到程序lmutil,運行它,會根據系統的硬件特征產生一個序列串。將些序列號填入到申請license頁的hostid中,zend.com會在48小時內為用戶生成一個license,下載此license文件,文件名為zendEncode.dat,它是唯一可以使用在你的計算機上。

1、 將ZendEncode軟件包也解壓縮在/usr/local/Zend目錄下。解壓縮完成后,目錄下多了一個zendenc的文件,它就是那個“編譯器”啦。

2、 將那個license文件復制到/usr/local/Zend目錄下

安裝完成。

三、ZendOptimizer的安裝

完成了ZendEncode的安裝,才完成了一半任務,要使用編譯后的php二進制代碼,還要安裝一個解釋器-ZendOptimizer,有了它的支持,編譯后的php二進制文件才能被正確地執行。

與ZendEncode不同,ZendOptimizer是一個免費軟件,它的主要功能是加速php腳本文件的運行,據Zend.com稱,有了ZendOptimizer的優化,程序的執行效率可以提高600%,經過筆者的簡單測試,執行效率的確是提高了不少。

安裝ZendOptimizer步驟如下:

1、 解壓縮zendOptimizer軟件包,將zendOptimizer.so文件復制到/usr/local/Zend/lib目錄中

2、 打開/usr/local/lib/php.ini文件,在文件中加入以下兩行:

zend_optimizer.optimization_level=15

zend_extension=”/usr/local/Zend/lib/ZendOptimizer.so”

3、 重新啟動Apache 服務器,使以上更新生效


四、ZendEncode的使用

好了,以上準備工作全部完成了,現在寫一個簡單的php腳本,使用zendEncode編譯一下,看看效果如何,好,先寫一個最簡單的腳本,看看編譯后的代碼能不能執行:

#vi test.php

<? Phpinfo(); ?>

編譯它:

#[root@mail Zend]# ./zendenc test.php testencode.php

Zend Encoder Unlimited (TEST DRIVE) v1.1.0 (c) Zend Technologies, 1999-2000

Licensed to: xqkred.


Compiling test.php...

Done encoding test.php.

Optimizing... Done.

Saving... Done.

好,成功編譯。不過,編譯好的程序大小較之以前要大很多。

將testencode.php復制到Web服務器的發布目錄下,在瀏覽器上鍵入http://localhost/testencode.php,哇,編譯后的代碼可以成功運行了!由于我們使用是試用版的ZendEncode,所以,在頁面的最上面會出現一個圖片,說明,這是一個由ZendEncode試用軟件包所產生的二進制文件。如下圖所示:


購買了正式版的用戶,上面的圖示將不會再現。

下面再看看它的執行效率吧!,首先寫一個小的計算程序粗略估計一下:compute.php

<?

$t=time();

for( $i=0;$i<1000000;$i++) {

if(($i%20)!=0) {echo $i; echo ",";}

else { echo "<br>";}

}

$t1=time();

echo "<br>"; echo "It used:"; echo $t1-$t; echo " seconds";

?>

這個程序在執行時,取系統的時間,完成后再取系統時間,兩個值的差即為整個程序運行所需時間,先在沒有編譯的情況下執行一遍,然后用ZendEncode編譯后再執行一遍。相互比較結果:沒有編譯的情況下,運行所需時間平均為19秒,編譯后的代碼平均執行時間為 9秒,看來執行效率是提高了不少。

五、注意

由于php的開發速度很快,其版本號也更新的很快,如果你按照以上做法做了,但是,你的瀏覽器顯示是一團亂碼,那么說明,你的php和正在使用的ZendOptimizer版本不相匹配,只要重新下載相應的ZendOptimizer便可解決以上亂碼問題。另外,要注意你下載的軟件包的版本,在 linux環境下,有glibc及libc之分。Redhat 6以后的版本應該下載glibc類型的軟件包。


主站蜘蛛池模板: 午夜成年免费观看视频 | 亚洲免费播放 | 中文字幕亚洲无线码在一区 | 欧美亚洲国产精品久久第一页 | 日韩在线播放视频 | 一级免费黄色 | 亚洲一区二区免费看 | 色域综合网 | 日本不卡一二三区 | 综合久久久久6亚洲综合 | 亚洲乱码一二三四区麻豆 | 五月婷婷六月丁香激情 | 夜色爽爽 | 一二三四日本高清观看视频 | 亚洲精品视频在线观看免费 | 五月天婷婷精品免费视频 | 欧美性xxxx交 | 亚洲成人在线网站 | 伊人婷婷在线 | 亚洲天码中文字幕第一页 | 视频在线观看40分钟免费 | 日韩一级片在线播放 | 亚洲免费在线播放 | 午夜狠狠干 | 日韩毛片一级 | 天堂网在线播放 | 色综合天天射 | 日批在线播放 | 色欧美亚洲 | 亚洲成a人片在线观看导航 亚洲成a人片在线观看播放 | 婷婷六月丁 | 天天艹天天射 | 欧美综合中文字幕久久 | 欧美视频一级 | 在线看片h站 | 中文伊人 | 天天艹综合| 色一情一乱一乱91av | 亚洲成年男人的天堂网 | 亚洲第一页中文字幕 | 日本国产中文字幕 |