如果你想让你的PHP环境同时支持ioncube和Zend Guard,这个非常容易实现,本文主要讲解如何在Linux服务器上安装Zend Guard Loader和ionCube Loader。

本文测试的环境是是PHP5.3 和 64位的Linux CentOS系统,你可以根据实际的环境进行参考本文,由于PHP5.3以后放弃Zend Optimizer,可以查看Linux ZendOptimizer 3.3.9 安装方法

通过本文的教程,你可以实现如下的结果。

Linux安装Zend Guard和ioncube_Zend

phpinfo() 头部显示ionCube PHP Loader和Zend Guard Loader,表明安装成功。

Linux安装Zend Guard和ioncube_Zend_02

phpinfo() 安装ionCube成功,会显示ionCube Loader 模块。

Linux安装Zend Guard和ioncube_ioncube_03

phpinfo() 安装Zend Guard成功,会显示Zend Guard Loader 模块。


PHP安装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]

zend_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。

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 选择对应的文件。

PHP安装ioncube Loader

[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 选择对应的文件。

解决 PHP 环境未加载ionCube Loader

如果通过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 Run-time support missing(未加载ZendGuard Loader)

这个错误非常奇怪,通过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篇技术文章:


查看更多: Linux安装Zend Guard和ioncube | LixiPHP - 专注于建设高品质网站!http://blog.lixiphp.com/linux-install-zendguard-ioncube/#ixzz2jjnTfmeY