PHP Fatal error: [ionCube Loader] The Loader must appear as the first entry in the php.ini

23 09月
作者:PK|分类:工作

 [root@plesklinux820 ~]# php -m 
PHP Fatal error: [ionCube Loader] The Loader must appear as the first entry in the php.ini file in Unknown on line 0
[root@plesklinux820 ~]# 

出现这个错误的原因是:Plesk使用了Ioncube作为加密程序,而不是Zendencoder
为了保证plesk能够运行,需要把ioncube loader模块加载到php中
但是ioncube loader和zend optimizer同时加载的时候,有一个加载顺序关系
在php.ini配置文件中,有关ioncube loader的配置项目必须写在前边
有关zend optimizer的配置要写在后边,否则运行php就会报错
但是,zend optimizer的安装程序可不区分前后,所以安装完毕后就报错了

解决方法:
编辑 /etc/php.ini ,找到最后几行,如下:
[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

把这几行复制出来,然后从/etc/php.ini文件中删除掉。
保存php.ini文件,退出编辑器。

现在编辑/etc/php.d/ioncube-loader.ini
这个文件里边默认就一行配置:
zend_extension=/usr/lib/php4/php_ioncube_loader_lin_4.3.so

把刚才复制出来的有关zend的配置,帖到ioncube loader的后边
即,最终的/etc/php.d/ioncube-loader.ini配置文件应该是如下的样子:

[root@plesklinux820 ~]# cat /etc/php.d/ioncube-loader.ini 
zend_extension=/usr/lib/php4/php_ioncube_loader_lin_4.3.so
[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
[root@plesklinux820 ~]# 

现在再去运行 php -m 命令,发现就可以运行了!
[root@plesklinux820 ~]# php -m
[PHP Modules]
...
ionCube Loader
...
Zend Optimizer
...
[Zend Modules]
Zend Extension Manager
Zend Optimizer
the ionCube PHP Loader
[root@plesklinux820 ~]# 

这个命令执行后返回的模块清单很长,这里不一一列出了
但是从中能找到ioncube loader和zend optimizer
表示安装完全成功

------------------------------------------------------

方法2:从前边介绍的方法1中,既然已经知道了zend optimizer和ioncube loader的冲突问题
我们直接把zend optimizer的二进制文件打包复制过来,直接修改/etc/php.d/ioncube-loader.ini
问题就解决了,就不用去运行zend的自动安装程序了

从这里可以下载Zend Optimizer 3.3.0的二进制包:
http://www.swsoft.com.cn/downloads/Plesk/Linux/plesklinux82/ZendOptimizer-bin-3.3.0.tar.gz

下载后,将其解压缩并复制到/usr/local/Zend位置下
然后编辑/etc/php.d/ioncube-loader.ini文件
在文件末尾增加如下几行的配置:
[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

保存配置文件退出,安装完成。
现在用php -m验证一下是否运行即可。

浏览694 评论0
返回
目录
返回
首页
某一个快照所依赖的磁盘原因: 未能锁定文件 PHP开启错误显示|PHP程序输出空白页