PHP扩展(memcache | memcached)没有在phpinfo()中显示但在php -m和php -i中显示?

前端之家收集整理的这篇文章主要介绍了PHP扩展(memcache | memcached)没有在phpinfo()中显示但在php -m和php -i中显示?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在使用时将两个模块列为已安装/配置:
PHP -m

或者如果我使用:

PHP -i

但是当我使用时:

$m = new Memcache;
// or
$m = new Memcache();
// or
$m = new Memcached();
//or 
$m = new Memcached;

我收到以下错误

Fatal error: Class 'Memcached' not found

我在Mac-OS X(10.5.7)上运行,默认安装apache& PHP.另外,我根据PHP-memcached库的要求在127.0.0.1:11211和libmemcache上运行memcached作为守护进程运行.我已经重启apache很多次,甚至完成了机器重启.

有谁知道为什么模块/扩展显示在命令行中而不是在我的PHPinfo()中?我真的很难过,经过3个小时的谷歌搜索,我准备放弃了.

另外,请注意,我的PHPinfo()输出我的ini文件,如下所示,它们都是完全相同的文件

Configuration File (PHP.ini) Path:  /etc
Loaded Configuration File:  /private/etc/PHP.ini

更新:

Apache无法加载扩展.

[Fri May 14 04:22:26 2010] [warn]
Init: Session Cache is not configured
[hint: SSLSessionCache] PHP Warning:
PHP Startup: Unable to load dynamic
library
‘/usr/lib/PHP/extensions/no-debug-non-zts-20060613/memcached.so’
– (null) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load
dynamic library
‘/usr/lib/PHP/extensions/no-debug-non-zts-20060613/memcache.so’
– (null) in Unknown on line 0

有谁知道为什么或如何发生这种情况?上面引用的两个文件都在那里.我应该将此问题移至服务器故障吗?

您的Web服务器可能正在使用mod_PHP,它是独立(CLI)解释器的单独代码.如果他们都使用相同的ini文件,并且在ini文件中配置了memcache扩展,那么听起来因为某些原因,mod_PHP无法加载扩展 – 检查你的webserver error_log是否有启动错误.

可能是mod_PHP是在没有memcache支持的情况下编译的(大多数扩展需要将一个存根文件链接PHP代码中,即使大部分代码在运行时之前都没有链接).或者它可能是共享对象文件上的权限问题.或者您的网络服务器可能正在运行chroot,并且无法找到扩展名(这也意味着尽管ini文件似乎具有相同的路径,但这与不同的根相关).

HTH

C.

猜你在找的PHP相关文章