我最近将一台小型服务器升级到 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 文件不存在,我已经在多个位置搜索了“ioncube”,但我似乎无法弄清楚如何阻止该消息充斥邮箱。
答案1
通常在php conf.d目录中有一个特定的ioncube.ini文件
/etc/php5/conf.d/ioncube.ini
只要删除这一个,警告就会停止。
答案2
dpkg-reconfigure php5-ioncube-loader
在我的服务器上解决了它
答案3
zend_extension
您的里面应该有一行/etc/php.ini
- 删除它。
如果不存在,请尝试locate php.ini
。如果没有locate
(例如,您尚未运行updatedb
),则使用find / -name php.ini
。
如果那不起作用,您可以在命令行上收到此错误strace
:
strace -f -e trace=open php /path/to/script.php 2>&1
其中一个是配置文件。如果不是(例如,您看到一个打开的尝试ioncube_*.so
,但没有一行*.ini
包含它),那么您的 PHP 脚本很可能正在尝试dl()
它。
答案4
在 /etc/php.d/ 文件夹下必须有 ioncube.ini 文件,通常看起来像 20-ioncube.ini,您可以删除此文件并尝试使用 yum install php-ioncube-loader 重新安装 ioncube 加载器