当前位置:  开发笔记 > 编程语言 > 正文

Windows上的Apache/PHP与正则表达式崩溃

如何解决《Windows上的Apache/PHP与正则表达式崩溃》经验,为你挑选了0个好方法。

我发现以下PHP代码在Windows Apache服务器上运行时崩溃:


有趣的是,如果字符串更短,代码就可以工作 - 如果我注释掉字符串的最后一部分(行),代码就会运行并按预期工作.

但是,由于代码在此处显示,代码会导致Apache崩溃并重新生成 - 不记录任何错误.如果我尝试直接通过PHP运行代码,它按预期工作,所以问题与Apache有某种关系.

我已经尝试了"pcre.recursion_limit"设置,并发现如果我将其降低到689它不会死,而是preg_match()调用失败并带有PREG_RECURSION_LIMIT_ERROR.对于更高的pcre.recursion_limit值,Apache死了.

Apache 2.2.11 PHP 5.3.0

我也在Debian服务器上测试了这个,我没有看到错误,并且在Windows上使用不同版本的PHP和Apache,如上所述发生错误,因此它似乎与Windows相关.

以前有人看过这个吗?我真的想要某种暗示!

更新:我是因为Apache for Windows中的一个"错误" - 好吧,不是真正的错误,但似乎Apache使用小堆栈编译,并且当PHP使用它时导致PCRE中出现此错误.见http://bugs.php.net/bug.php?id=47689

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有