我在我的raspbian上重新编译了PHP 5.4.39以包含对pthreads的支持.
一切都很好,甚至是pthreads,但每次我从命令行运行一个PHP脚本(我想如果apache使用php就是一样),它说它没有加载xcache.so:
加载失败/usr/lib/php5/20100525+lfs/xcache.so:/usr/lib/php5/20100525+lfs/xcache.so:undefined symbol:compiler_globals
我使用以下信息重新编译了php:https://www.digitalocean.com/community/questions/enable-zts-support-on-ubuntu-14-04
尽管php运行正常,但我想知道这条消息的含义,如果可能的话我想解决它.
您很可能已启用PHP扩展,这些扩展是针对旧版本的PHP本身构建的.正确的解决方案是删除错误链接的PHP扩展并重建它们.
我建议你从XCache扩展(php5-xcacheUbuntu上的包)开始.按照您提到的教程中的步骤(简单地替换php5为php5-xcache)将其删除并重建.
最有可能其他一些扩展也存在问题.删除并重建它们.
如果您只关注本教程php5,可以说您需要删除并重建所有扩展.这是所有包装的开头php5-.
PS:并非所有PHP扩展都支持线程安全.如果您无法构建某个扩展,但无论如何都不需要它,只需卸载即可.
PPS:XCache是一个操作码缓存.确保不要同时启用多个操作码缓存.例如,不要同时启用XCache和OPcache(或APC),而是选择一个.