站内搜索

PHP has encountered a Stack overflow问题解决方法_php技巧

昨晚将一个disucz论坛进行转移后,发现打开的页面上回多一个PHP has encountered a Stack overflow 这个提示错误,进过翻译为“PHP遇到堆栈溢出”。我就感觉奇怪了,新站没人访问的,怎么可能会溢出。 好吧去discuz官方论坛找找解决方法。

找到的第一解决方法,更新后台缓存,结果不行。接下来检查数据库配置文件,也没有错误。检查php权限也没有错误。

discuz官网有人说是php版本太低了,个人对于这种人是比较反感的,这种说法比较扯淡。不用去验证了。


把新旧的服务器对比较,发现了一个问题,两个的路径都不同,马上去查看上级目录文件夹权限,果然是权限出现了问题。文件路径是D:/www/discuz. 查看到旧的服务器上面www和discuz文件夹权限有“匿名来宾权限”。 在去新服务器上面看到www文件夹没有“匿名来宾权限” 而discuz文件夹权限则是有的。 说明上一级目录权限不足导致的。 重新给一下权限。 ok完美解决PHP has encountered a Stack overflow的问题。

上面说了这么多,其实就是一句话:

在windows服务器下面都是因为权限问题,具体来说是上一级目录权限问题。

例如:

原来的网站目录是 d:/www/jb51

快速安全的解决方法就是在jb51目录下,新建一个目录 webroot,而且这个目录的权限跟jb51权限是一样的。

现在的网站目录就是:d:/www/jb51/webroot即可。

现在很多php系统都是因为这个问题导致出错例如 discuz、phpmyadmin等。

  • 上一篇:让ThinkPHP支持大小写url地址访问的方法_php实例
  • 下一篇:PHP实现模仿socket请求返回页面的方法_php技巧