sos*_*ial 36 php apache memcached
php -v给出了这个
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
bogus test name tests/
Run Code Online (Sandbox Code Playgroud)
PS.我从php 5.2升级到5.3.在此之前一切正常.
Pas*_*TIN 34
当您更新PHP的版本(特别是从版本XY到版本XZ)时,您还必须更新PHP扩展.
这是因为PHP扩展是用C开发的,并且与PHP的内部结构"接近" - 这意味着,如果这些内部的API发生变化,则必须重新编译扩展,以使用新版本.
而且,在PHP 5.2和PHP 5.3之间,我记得,PHP引擎使用的内部数据结构有一些修改 - 这意味着必须重新编译扩展,以匹配那些新版本的数据结构.
如何更新PHP扩展将取决于您使用的系统.
如果你在Windows上,你可以在.dll这里找到一些扩展:http
://downloads.php.net/pierre/
有关不同版本的更多信息,你可以看看窗口左侧边栏上的内容.php.net.
如果您使用的是Linux,则必须:
pecl命令重新下载相关扩展的源代码,然后重新编译它们.只是
pecl uninstall module_name
Run Code Online (Sandbox Code Playgroud)
然后
pecl install module_name
Run Code Online (Sandbox Code Playgroud)
你的问题在php5-dev包中.我猜你是从旧的linux版本的php5.2到php5.3.我做了同样的事情,当我设法安装php 5.3时,与php5-dev发生冲突.由于某种原因,它没有升级到新版本.Dunno为什么会这样,我不在乎,但这会使您的扩展使用较旧的API版本进行编译,而php ofc则使用较新的api版本.我为解决这个问题所做的是:
我删除了php5-dev
sudo apt-get remove php5-dev,然后我跑去sudo apt-get autoremove摆脱给我带来麻烦的剩菜,之后我再次安装了php5-dev.
sudo apt-get install php5-dev.
完成后,我删除了我的memcache sudo pecl uninstall memcache并再次安装它sudo pecl install memcache.现在模块和php都有相同的api版本所以我立刻知道我已经解决了问题:)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
109000 次 |
| 最近记录: |