3

我一生都无法弄清楚如何在 Mac OSX 上启用 memcache 以与 apache 一起工作。我已经安装了 memcache,并且可以通过 php 命令行验证它是否正常工作。

以下命令:

php --ri memcache

报告支持 memcache。

但是,如果我在浏览器中加载执行 phpinfo() 的本地测试脚本,它不会报告已安装 memcahe。在我的浏览器中运行一个脚本来实例化一个新的 memcache 对象报告:

Fatal error: Class ‘Memcache’ not found

我已经编辑了 php.ini 并添加了 extensions=memcache.so

我已经通过转到系统偏好设置->共享并禁用和启用 Web 共享来重新启动 apache。我什至尝试使用 sudo apachectl restart 从命令行重新启动 apache。

当通过浏览器执行时,我可能会错过什么阻止 php 识别 memcache?

谢谢!

4

3 回答 3

1

您可能会将 memcache.so 扩展安装在一个*/no-debug-non-zts-*有时很痛苦的目录中(在 Linux 上也是如此),并且 php.ini 可能不会在该目录中查找。您可以更改 php.ini 中的扩展目录(这可能会破坏其他内容),或者更好地在*/no-debug-non-zts-*目录中创建指向 memcache.so 文件的符号链接。

就我而言,这是:

ln -s /usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so /usr/lib64/php/modules/memcache.so

除此之外,检查 memcache.so 文件的权限并确保它是可执行的(755),在我的例子中,这是:

chmod 755 /usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

希望有帮助,这是我的最后一个建议:)

于 2009-05-17T08:16:16.907 回答
0

当然,命令行 php 和 mod_php 似乎使用不同版本的 php.ini。

于 2010-12-09T03:17:51.737 回答
-1

你用内存缓存做什么?你是如何启动它的?您是否也在机器上运行了 memcached?

这不是一个专门的 mac 答案,但希望它能让你沿着跑步路线前进,如果这涵盖了显而易见的问题,我们深表歉意。

您需要在 mac 上或 mac 可以在 memcached 端口上访问的另一台机器上运行 memcached。

Mac 上的 memcached 上有一个特定的文档 - http://memcached.darwinports.com/

请记住,您还需要配置 php 以将 memcache 用于您希望 memcache 缓存的任何内容,例如更改相关的 PHP 设置,例如使用 memcache 来处理会话:

session.save_handler = 文件
更改为:
session.save_handler = memcache

session.save_path="tcp://:11211?persistent=1&weight=1&timeout=1&retry_interval=2"

希望这在某种程度上有所帮助。

http://www.of-networks.co.uk

于 2009-05-15T07:26:34.513 回答