【发布时间】:2011-06-27 05:26:07
【问题描述】:
我发现了几个非常相似的问题。但是,每个都指向使用错误的 php.ini 文件或根本没有安装 memcache,或者安装了 memcached 而不是 memcache 设置等,所以我相信这个问题是不同的,尽管搜索该错误引发了多次讨论。
无论如何,当我尝试实例化一个新的 Memcache 对象时,我得到:
致命错误:在第 360 行的 /websites/../app/app_controller.php 中找不到类“Memcache”
因为从命令行调试的东西有时会给你错误的信息,所以我只是在页面中添加了我的调试:
<pre>
<?= system('php -i | grep "php.ini"') ?>
<?= system('php -i | grep memcache') ?>
<?= system('php -i | grep extension_dir') ?>
</pre>
这给了我:
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /private/etc/php.ini
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user sqlite memcache
Registered save handlers => files user sqlite memcache
extension_dir => /usr/local/php53/modules => /usr/local/php53/modules
memcache 报告告诉我我的 php.ini 文件设置正确,memcache.so 文件在正确的位置,但这里是为了清楚起见的信息:
extension_dir = "/usr/local/php53/modules"
extension=memcache.so
还有 memcache.so:
younker % la /usr/local/php53/modules/memcache.so
-rwxr-xr-x 1 younker staff 60196 Feb 14 10:56 /usr/local/php53/modules/memcache.so
所以,我显然遗漏了一些东西,我只是不知道为什么 php 找不到类 Memcache。
【问题讨论】:
-
既然你没有提到,你安装/启用memcache后是否重启了你的网络服务器?
-
RE:可能重复?我看过那篇文章,问题是他们有两个不同的 php.ini 文件。一个是从 cmd 行读取的,另一个是从网站读取的。我已经验证我的 php.ini 文件是正确的;这也是为什么我直接在 cakephp 应用程序中使用我将在 cmd 行上使用的命令的原因,从而确保我看到了正确的配置信息。所以,我不认为这是一张假票。 RE:重新启动? 是的,只要进行更改,我就会重新启动服务器
-
RE:目录权限您具体询问的是哪个目录?我的 /usr/local/php53/modules 目录是 755,memcache.so 文件也是如此。如果您指的是另一个文件/目录,请告诉我。