VpsPing教程:LNMP环境下php的ioncube与ZendGuard共存办
ioncube与ZendGuard都是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,如下图
成功。