最近升级PHP,更新时遇到如下错误信息:php_msgpack_serialize in Unknown on line 0
所以首先,从来没有听说过这个包。对这个包的所有搜索都会导致一个单一的 PECL 存储库(这实际上也没有任何意义)——社区的提及率几乎为零。
再进行几次搜索,我将来源追踪到了 php-memcached-dev 的仓库。 - 我从未见过或听说过的存储库。
当然,我听说过实际的 memcached 库 repo:libmemcached
我试着到处寻找这个模块,以表明它是 centos 的合法部分,但我似乎无法得到任何好的/可靠的结果。
我搜索过这个包和/或存储库的任何迹象的地方:
我不想在这里显得偏执,但我什至不确定这在现阶段是否合法。
耸肩——我不知道。我一直关闭我的服务器,直到我看到别的东西。有人有什么建议/意见吗?
对于偏执狂(是的,我自己发现了一点),这是一个丑陋的谷歌搜索:php_msgpack backdoor (注意:只有 2 个 3 个 搜索结果。查看第二个 第三个 中的日期。我自己没有点击它,也不建议其他人点击它)这似乎成为一个 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-msgpacksudo phpenmod msgpack
如果您将 apache2 与 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
关于PHP memcached - 第 0 行未知中的 php_msgpack_serialize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22927424/