vBulletin 3.8.0和PHP 5.2.11的奇怪问题

时间:2010-06-20 09:23:07

标签: php vbulletin

我在这里发生了一个非常奇怪的问题。我试图将vBulletin 3.8.0的安装迁移到新服务器。新服务器的配置是PHP 5.2.11与APC,Apache 2.2.3,MySQL 5.0.84和CentOS 5.我已经完美地传输了所有文件,我得到的错误是:

Fatal error: Call to undefined function construct_forum_bit() in /var/www/forums/index.php on line 565

所以我发现函数construct_forum_bit()在includes / functions_forumlist.php文件中并且在index.php里面改变了第61行来自

require_once(DIR . '/includes/functions_forumlist.php');

require(DIR . '/includes/functions_forumlist.php');

我知道它很奇怪,但它确实加载了index.php页面。但是有很多其他页面存在问题所以我将所有require_once替换为要求使用以下命令:

grep -rl require_once . | xargs sed -i -e 's/require_once/require/'

这样做了很多页面并给我留下了一个奇怪的问题。当我尝试访问http:// forumsurl / member.php?u = 5441有效,但http:// forumsurl / member.php?u = 337无法正常工作。它显示一个空白页面/白页。在什么用户ID将显示白页是间歇性的,但如果它工作,它永远不会中断,如果它没有,它总是显示空白页。

在Google Chrome上说它 Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error.

我试图修复所有表但没有运气。

所以我开始手动调试过程并将其缩小到以下代码中断:


473 foreach ($blocklist AS $blockid => $blockinfo)
474 {
475     $blockobj = $blockfactory->fetch($blockinfo['class']);
476     $block_html = $blockobj->fetch($blockinfo['title'], $blockid, $blockinfo['options'], $vbulletin->userinfo);
477 
478     if (!empty($blockinfo['hook_location']))
479     {
480           $template_hook["$blockinfo[hook_location]"] .= $block_html;
481      }
482      else
483      {
484           $blocks["$blockid"] = $block_html;
485       }
486 }

我将echo语句放在文件的不同行,如果我在上面的foreach之前'退出',它会显示所有语句,但它在第6次迭代时在循环内部中断。

任何人都可以帮助我吗?感谢。

2 个答案:

答案 0 :(得分:1)

要解决此问题,请尝试设置:

apc.include_once_override   = off

在php.ini中。

答案 1 :(得分:0)

您不应将require_once的所有实例更改为require,但他们不会做同样的事情。

根据从vBulletin.com下载的干净副本来区分您的来源。这可能会告诉你真正的错误在哪里。

此外,您应该考虑升级您的vBulletin副本。 3.8.0已经出现了很长一段时间,有几个问题需要修补。