若是你想让你的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篇技术文章: