我用Homebrew做了我所有的安装,但在这里遇到了一些麻烦......libmemcached和PHP memcached库:在OS X上崩溃 - 超时?
所以我有一个PHP应用程序,无论出于什么原因都使用“memcache”和“memcached”模块。随你。
系统是OS X Lion,10.7.4。 Apache是苹果公司在操作系统Apache/2.2.21上发布的股票。我使用Homebrew的PHP 5.3.14。
我安装我需要的一切:
brew install libmemcached memcached php53 php53-memcache php53-memcached
和配置的东西 - 设置Apache httpd.conf
指向PHP .so文件和内存缓存和memcached的扩展添加到我的php.ini
我加载我的应用程序...并崩溃httpd!
这里的崩溃转储我得到(长转储):https://gist.github.com/3125309
如果我brew uninstall libmemcached
和弹跳的httpd,然后我就可以访问我的应用程序正常,但是memcached是不实际工作,因为它(DUR)不能找到libmemcached。
我真的想让memcached在本地正常工作,但我不确定这里发生了什么。这只是PHP的一个问题;我可以使用Python的python-memcached
模块来访问它就好了(但我不确定它是否使用libmemcached)。
有什么想法?我没有看到任何看起来在崩溃转储:(有用
编辑:嗯,行号是有帮助这里的相关libmemcached源块:
#ifdef HAVE_SNDTIMEO
if (server->root->snd_timeout)
{
struct timeval waittime;
waittime.tv_sec= 0;
waittime.tv_usec= server->root->snd_timeout;
int error= setsockopt(server->fd, SOL_SOCKET, SO_SNDTIMEO,
&waittime, (socklen_t)sizeof(struct timeval));
assert(error == 0);
}
#endif
所以这听起来像一个超时问题?但我的memcached是在本地主机上,它应该不会超时......除非它不是试图连接到正确的服务器可能。
不过,为什么要这样的原因一个完整的httpd崩溃?
EDIT2:我重新编译了SNDTIMEO和RCVTIMEO bo现在我很开心并且正在运行......但是,A)为什么配置脚本确定那些可以被启用,以及B)为什么会导致httpd崩溃?
我刚刚构建了自己的libmemcached 1.0.9,并从PECL构建了最新版本的PHP memcached扩展,并得到了相同的结果。我觉得这可能是用户错误...? – ashgromnies 2012-07-17 00:47:10