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
有谁知道为什么或如何发生这种情况?上面引用的两个文件都在那里.我应该将此问题移至服务器故障吗?
可能是mod_PHP是在没有memcache支持的情况下编译的(大多数扩展需要将一个存根文件链接到PHP代码中,即使大部分代码在运行时之前都没有链接).或者它可能是共享对象文件上的权限问题.或者您的网络服务器可能正在运行chroot,并且无法找到扩展名(这也意味着尽管ini文件似乎具有相同的路径,但这与不同的根相关).
HTH
C.