VpsPing教程:LNMP环境下php的ioncube与ZendGuard共存办法

VpsPing教程:LNMP环境下php的ioncube与ZendGuard共存

ioncubeZendGuard都是php的加密方式,效果不同,最近在折腾whmcs,这家伙需要ioncube的组件支持,而之前服务器的组件上,已经有zend,发现有冲突,现找出解决办法。

本地环境 lnmp php5.4+mysql+nginx 服务器是debian7 64位

在自己的VPS上安装试一下,但是提示:Site error: the file /home/test/whmcs/index.php requires the ionCube PHP Loader ioncube_loader_lin_5.2.so to be installed by the site administrator.

根据上面的提示看来是因为没有安装ionCube。(注:安装了lnmp一键安装包的可以在lnmp解压后的目录执行./ionCube.sh 进行安装。)

首先,执行uname -a 查看系统是32位还是64位,

32位系统Linux VPS,请执行以下命令:

cd /usr/local/ wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz tar xvfz ioncube_loaders_lin_x86.tar.gz

64位系统Linux VPS,请执行以下命令:

cd /usr/local/ wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz tar xvfz ioncube_loaders_lin_x86-64.tar.gz

修改/usr/local/php/etc/php.ini 在文件尾部添加如下代码:

[ionCube Loader]
zend_extension=”/usr/local/ioncube/ioncube_loader_lin_5.4.so”

如果以前装有Zend Optimizer,安装ionCube会和Zend Optimizer发生冲突,再执行/usr/local/php/php-fpm reload 时会发生如下错误:The Loader must appear as the first entry in the php.ini file in Unknown on line 0

须将Zend Optimizer的代码放在ionCube的后面,如LNMP中是如下代码,修改完成再执行/usr/local/php/php-fpm restart 。

[Zend Optimizer]
zend_optimizer.optimization_level=1
zend_extension=”/usr/local/zend/ZendOptimizer.so”

修改完成,记得/usr/local/php/php-fpm reload 重新加载配置,查看phpinfo。

如果不行,建议换成下面的代码:

[ionCube Loader]
zend_extension=”/usr/local/ioncube/ioncube_loader_lin_5.4.so”
[Zend Optimizer]
zend_optimizer.optimization_level=1
zend_extension=/usr/local/zend/ZendGuardLoader.so

因为本地测试发现找不到 zendoptimizer.so,直接用zendguardloader.so

最后,可以 /root/lnmp restart 全部重启,找到phpinfo,如下图

zend

成功。

发表评论