Linux安装Zend Guard 和 ioncube

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

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

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

php install zendguard ioncube

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

phpinfo ionCube

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

phpinfo zendGuard

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篇技术文章:

  • 本文用到的php.ini配置文件

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

你可能感兴趣的:(PHP,PHP,5.3,ionCube,zendGuard,phpinfo)