若是你想讓你的PHP環境同時支持ioncube和Zend Guard,這個很是容易實現,本文主要講解如何在Linux服務器上安裝Zend Guard Loader和ionCube Loader。 php
本文測試的環境是是PHP5.3 和 64位的Linux CentOS系統,你能夠根據實際的環境進行參考本文,因爲PHP5.3之後放棄Zend Optimizer,能夠查看Linux ZendOptimizer 3.3.9 安裝方法。 linux
經過本文的教程,你能夠實現以下的結果。 安全
phpinfo() 頭部顯示ionCube PHP Loader和Zend Guard Loader,代表安裝成功。 服務器
phpinfo() 安裝ionCube成功,會顯示ionCube Loader 模塊。 app
phpinfo() 安裝Zend Guard成功,會顯示Zend Guard Loader 模塊。 測試
請經過如下命令進行安裝: 網站
[root@localhost Zend]# wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
[root@localhost Zend]# tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
[root@localhost ioncube]# vi /etc/php.ini
[Zend Guard Loader] uizend_extension=/usr/local/lib/Zend/ZendGuardLoader.so
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3 加密
注意:若是你的Linux服務器是32位的,使用後面的命令進行下載 ZendGuardLoader。 url
wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz
若是是PHP其餘版本,能夠到 http://www.zend.com/en/products/guard/downloads?platform=Linux 選擇對應的文件。
[root@localhost ioncube]# http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
[root@localhost ioncube]# tar -zxvf ioncube_loaders_lin_x86-64.tar.gz[Ioncube Loader]
zend_extension=/usr/local/lib/ioncube/ioncube_loader_lin_5.3.so
若是是PHP其餘版本或者32位的Linux服務器,能夠到 http://www.ioncube.com/loaders.php 選擇對應的文件。
若是經過phpinfo() 並無加載ionCube Loader,能夠經過如下命令測試:
[root@localhost ioncube]# php -v
PHP Fatal error: [ionCube Loader] The Loader must appear as the first entry in the php.ini file in Unknown on line 0
解決方法是把ZendGuardLoader.so和ioncube_loader_lin_5.3.so放在php.ini的頂部。
[PHP]
zend_extension=/usr/local/lib/ioncube/ioncube_loader_lin_5.3.so
zend_extension=/usr/local/lib/Zend/ZendGuardLoader.so
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
這個錯誤很是奇怪,經過php -v能夠獲取到ZendGuard Loader,可是phpinfo()卻加載不上。
[root@localhost ~]# php -v
PHP 5.3.3 (cli) (built: Jan 11 2012 19:53:01)Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with the ionCube PHP Loader v4.4.3, Copyright (c) 2002-2013, by ionCube Ltd., and with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
注意這個錯誤,PHP並不會直接報錯,而是要經過Apache或者Nginx的 error_log文件獲取錯誤信息。若是你的phpinfo() 未加載ZendGuard Loader,可能在/var/log/httpd/error_log文件中能夠看到這一行錯誤:
[Mon Oct 07 08:58:52 2013] [notice] caught SIGTERM, shutting down
Failed loading /usr/local/lib/Zend/ZendGuardLoader.so: /usr/local/lib/Zend/ZendGuardLoader.so: cannot enable executable stack as shared object requires: Permission denied
這個錯誤的緣由是由於安全問題,Linux的SELinux處於開啓狀態,將其關閉便可解決問題。
[root@localhost~]# echo 0 >/selinux/enforce
[root@localhost~]# service httpd restart
若是你對本文的方法有什麼看法,請必定在評論中留言。
另外,本人提供ionCube的加密服務,能夠查看IonCube加密PHP程序
本文的安裝方法主要參考瞭如下的2篇技術文章: