加载离子pipe失败

我最近将一台小型服务器升级到Ubuntu 12.10(从12.04开始),从而将PHP从5.3升级到5.4。 不过,我每天都会在root的邮箱中收到这个邮件:

Subject: Cron <root@xxxxxxx> [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete Content-Type: text/plain; charset=ANSI_X3.4-1968 X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> Message-Id: xxxxxxxxxxxxxxxxxxxxxxxx Date: Sun, 9 Dec 2012 05:09:02 -0500 (EST) Failed loading /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so: /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so: undefined symbol: php_body_write 

我认为这是因为它是PHP 5.3的。 我怎么才能摆脱ioncube? 我不需要它,我什至不记得安装它。 .so文件不存在,我已经grep'd“ioncube”的几个位置,我似乎无法计算如何停止该邮件淹没邮箱。

通常在php conf.d目录中有一个特定的ioncube.ini文件

 /etc/php5/conf.d/ioncube.ini 

只要删除这一个,警告就会停止。

dpkg-reconfigure php5-ioncube-loader在我的服务器上解决了它

在你的/etc/php.ini应该有一个zend_extension行 – 删除它。

如果不在那里,请尝试locate php.ini 。 如果你没有locate (例如,你还没有运行updatedb ),那么使用find / -name php.ini

如果不起作用,并且你可以在命令行上得到这个错误,那就直接写下来:

 strace -f -e trace=open php /path/to/script.php 2>&1 

其中之一将是一个configuration文件。 如果没有(例如,你看到一个开放的ioncube_*.so尝试, ioncube_*.so没有一个*.ini s包含一行),那么你的PHP脚本正在尝试dl()它的机会。