当前位置: 首页 > 知识库问答 >
问题:

libmemcached和PHP memcached库:在OS X上崩溃-超时?

司空鸣
2023-03-14

我用自制来做我的所有安装,但在这里遇到了一些麻烦。

因此,我有一个PHP应用程序,无论出于什么原因,它都使用“memcache”和“memcached”模块。随便吧。

系统是OS X Lion,10.7.4。Apache是Apple随操作系统Apache/2.2.21一起提供的产品。我使用的是自编的PHP5.3.14。

我安装了我需要的一切:

BREW安装libmemcached memcached php53 php53-memcache php53-memcached

和配置内容--设置Apachehttpd.conf以指向PHP.so文件,并将memcache和memcached扩展添加到myPHP.ini

我加载应用程序...它会使httpd崩溃!

下面是我得到的崩溃转储(长转储):https://gist.github.com/3125309

如果我brew卸载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在localhost上,不应该超时...除非它没有尝试连接到正确的服务器。

但是,为什么这会导致一个完整的httpd崩溃呢?

共有1个答案

龚盛
2023-03-14

通过构建自己的libmemcached,去掉依赖于RCVTIMEO和SNDTIMEO的代码,然后针对自定义libmemcached构建php-memcached,可以解决这个问题。

我仍然不确定为什么当我的系统报告SNDTIMEO和RCVTIMEO不工作时,它们对libmemcached配置脚本可用。这使得我无法使用OS X自制版本。我很惊讶其他人没有遇到这个问题。

 类似资料:
  • 我最近把我的OSX更新到了最新的Yosemite版本,现在IntelliJ IDEA 13.1.4还没有开始。 我当前的Java版本: 看起来也没问题。

  • 我正在着手建立一个非常简单的全堆栈web应用程序,可以处理用户注册和登录。为此,我使用作为本地数据库来存储用户注册后的信息。这是工作了很长一段时间,但我最近运行了我的应用程序,在一个星期后,它发生了这样的事情: 作为参考,这是我的文件的一个非常精简的版本: 这是我的: 非常简单,而且,一周前工作得很好。有人知道这是怎么回事吗?谢谢你的回答!

  • 问题内容: 当使用Lucene为文档建立索引时,我的JVM(1.6.0_29)在频繁使用时始终崩溃。我得到: 环境: JDK:1.6u29(与1.6_02相同的问题)Lucene版本3.4.0 vm_info:适用于linux-amd64 JRE(1.6.0_29-b11)的Java HotSpot(TM)64位服务器VM(20.4-b02),由“ java_re”于gcc 3.2.2于2011年

  • 我一直在尝试将. ttf字体添加到我的android移动应用程序中。我正在使用Libgdx引擎创建我的应用程序,并尝试添加True Type扩展以允许使用. ttf字体。这是我正在运行以尝试创建字体的代码。 当我调用这段代码时,我的应用程序会给我消息,没有其他信息。我已经在核心和android项目中包含了和。我已经单击了在这两个项目上导出它们的选项。我已经在和文件夹中包含了两个文件。 谁能告诉我为

  • 在Windows Phone8(诺基亚Lumia520)上调试应用程序时,我面临崩溃,我不知道为什么。游戏在Unity中开发,最初针对iOS和Android,现在被移植到WP8。失败发生在单步执行我的脚本之前,并且处理程序也无法到达。 调试器(仅本机)设置为在引发异常且用户未处理时中断。第一次调用堆栈是: 环境: Windows Pro 8.1 64位 Unity Pro 4.3.1F1 Micr

  • 每次我打开Aptana它都会崩溃。 Java运行时环境检测到一个致命错误: 如果您想提交错误报告,请访问:http://bugreport.sun.com/bugreport/crash.jsp崩溃发生在Java虚拟机之外的本机代码中。有关报告错误的位置,请参见问题框。