gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 13:18:40 25 4
gpt4 key购买 nike

我在使用时将两个模块都列为已安装/已配置:

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。此外,我在 127.0.0.1:11211 和 libmemcache 上作为守护进程运行了 memcached,这是 php-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,它是来自独立 (CLI) 解释器的一段独立代码。如果它们都使用相同的 ini 文件,并且在 ini 文件中配置了 memcache 扩展,那么听起来像是出于某种原因,mod_php 无法加载扩展 - 检查您的网络服务器 error_log 是否有启动错误。

可能是 mod_php 是在没有 memcache 支持的情况下编译的(大多数扩展需要有一个 stub 文件链接到 php 代码中,即使大部分代码直到运行时才链接)。或者可能是共享对象文件的权限问题。或者您的网络服务器可能正在运行 chroot,并且无法找到扩展名(这也意味着尽管 ini 文件看起来具有相同的路径,但这是相对于不同的根)。

HTH

C.

关于PHP 扩展 (memcache|memcached) 未显示在 phpinfo() 中但显示在 php -m 和 php -i 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2832387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com