到目前發稿截止,Zend Optimizer目前的版本為3.3.3(Windows)、3.3.9(Linux),且均不支援PHP5.3及以上版本。
很多同學包括我自己,一直也是被B的只能使用PHP5.2版本,當然,因為DEDE對PHP5.3的支援不好,也沒辦法,只能停在5.2時代。
根據官方的說法,一直是這樣:由於PHP5.3的升級功能太多,ZP更新以後,也無法再往下相容低版本的Zeng Guard加密的PHP檔案,甚至不支援PHP5.2.13以下版本的PHP環境。
總結成一句話,那就是“PHP版本更新太快了,已經沒必要向下相容低版本的Zend Guard和PHP5.2及以下版本了”。就如同PHP5.3不能相容PHP5.2一樣,很多函數被取消,很多同學認為這是PHP5時代和PHP6時代的分水嶺。
PHP6就要來了。
話說了這麼多,最重要的一點,其實PHP5.3也可以安裝Zend Optimizer的。因為Zend公司專門針對5.3版本出了專用版本。那就是傳說中的“Zend Guard Loader (Runtime for PHP 5.3)”
目前推測這個版本只能用於5.3系列,其官方網站已經明確列出5.2和5.3系的:http://www.zend.com/en/products/guard/downloads。
PHP5.3安裝Zend Optimizer,已經被正式改成了“Zend Guard Loader”,簡單來說,就是不需要安裝軟體,而是直接在php.ini中調用組件(擴充)即可。
有一點需要說明,我在Zend論壇看到這麼一句Note:
Please note this Loader will not load PHP 5.2 code encoded with previous version of Guard. All PHP files must be re-encoded to run in PHP 5.3.
簡單理解就是這個版本不支援PHP5.3以下版本的Zend Guard編譯,所有檔案要重新按5.3版本進行重新編譯。那這裡的Zend Guard版本,就要求升級為最新版,因為我們知道Zend Guard4隻能按PHP4、PHP5兩個版本加密,而最新版本的Zend Guard加密時可選的PHP版本只剩下php5.2、PHP5.3兩個版本了。
從這裡可以看出,如果要使用PHP5.3+Zend Guard的升級成本是非常高的。我已經開始隱隱蛋疼了,因為哥住的不是77元的二居室。
目前最新的Zend Guard 為去年年底發布的5.5版本,:http://downloads.zend.com/guard/5.5.0/ZendGuard-5_5_0.exe,這裡有Key(哥們翻遍了整個互連網才找到的):http://www.4wei.cn/archives/1000433。如果不出意外,以後版本中Zend Optimizer將不複存在,取代的就是“Zend Guard Loader”,不管什麼最佳化、加速、保護功能全通過此功能載入。聽起來好像類似於App擴充。
Guard Loader 的用法和以前沒什麼區別,都是在php.ini“最末尾”添加一句命令引入檔案就行。
協助
1
zend_extension=
說一下這裡為什麼要使用“最末尾”,這裡是個人建議,因為用時候會出一些莫名的問題,如不能正常載入Zend,不能讀取PHP檔案,尤其表現在和eAccelerator載入順序衝突等。
以下是操作的shell片段:
第一步,通過探針或者PHPinfo查詢到當前載入的php.ini
Loaded Configuration File:/etc/php5/apache2/php.ini
第二步,下載擴充
wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
Windows下為
http://downloads.zend.com/guard/5.1.0EA/ZendGuardLoader-php-5.3-Windows.zip
第三步,解壓,提取ZendGuardLoader.so,Windows下叫ZendLoader.dll,放到PHP的ext目錄下(推薦,不是必須)
第四步,編輯php.ini,添加相關配置資訊
vi /etc/php5/apache2/php.ini
zend_extension=/usr/local/zend/ZendGuardLoader.so
或者
[Zend.loader]
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="c:\php\ext\ZendLoader.dll"
最後,重啟Webserver。