最近升级的PHP,并在更新时遇到以下错误消息:
php_msgpack_serialize in Unknown on line 0
因此,首先,从未听说过此软件包。所有对该程序包的搜索都将导致一个PECL回购(这实际上也没有任何意义)-社区中大约零提及。
再进行几次搜索,然后我将源追溯到了php-memcached-dev 的存储库-一个我从未见过或听说过的存储库。
当然,我也听到了实际的memcached库回购:libmemcached
我尝试到处寻找该模块,以表明它是centos的合法组成部分,但我似乎无法获得任何良好/可靠的结果。
我搜索过此软件包和/或存储库的任何标志的位置:
http://pkgs.org/
http://stackoverflow.com
http://php.net
http://centos.org
也刚刚搜索了https://bugs.php.net ...
我不想在这里显得偏执,但是我什至不确定在现阶段这是否合法。
耸耸肩-我不知道。我一直关闭服务器,直到看到其他东西为止。有人有什么建议/意见吗?
对于偏执狂(是的,我从一个人身上发现了它),这是一个丑陋的Google搜索:php_msgpack后门 (注意:只有2 3个搜索结果。请在2nd 3rd中查看日期。我还没有我自己点击了它,也不建议其他人也点击它)这似乎是rkhunter搜索,用于查找与上面报告的文件相同的文件。可能只是巧合,但谁知道。以为我还是会把它推出去。
更新:好吧,长话短说,事实证明这是与Cent一起安装的PHP版本有关的问题。已使用最新版本修复。
在来自Ondrej-PPA(https://launchpad.net/~ondrej/+archive/ubuntu/php)的PHP 5.5的Ubunu 16.04上,我可以通过安装软件包php-msgpack来解决此问题:
sudo apt-get install php-msgpack
并且比启用php-msgpack与
sudo phpenmod msgpack
如果与PHP一起使用,可能需要重启apache2。
比这个错误消失了:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20121212/memcached.so' - /usr/lib/php/20121212/memcached.so: undefined symbol: php_msgpack_serialize in Unknown on line 0