2009-11-21 69 views
0

我有一个共享的主机环境中的基本Drupal的第6位。该网站运行良好大约一个月。Drupal的update.php产生错误

我上传的网页表单的Drupal模块的新版本,当我去update.php完成页面我得到的错误。 update.php预览页面不会显示webforms所需的任何更新,但如果我继续,我会得到下面的错误。也许如果没有补丁,我不应该继续update.php?

在 “运行更新” 的步骤我得到这个错误:

An HTTP error 0 occurred. http://nejewls.com/update.php?id=8&op=do

在审核日志页面我得到这个错误

warning: array_pop() [function.array-pop]: The argument should be an array in /home/nejebel4/public_html/update.php on line 314.

注:

  • 该网站是Drupal的6.14
  • Web表单未知到6.x-2.9
  • 我试图在htaccess的水平
  • 该网站重定向到www .htaccess文件中
  • 我在settings.php配置的基本URL设置为使用和不使用WWW

回答

0

它看起来禁用SecFilterInheritance例如在Drupal.org提交的this issue。它看起来并没有解决。我寻求帮助的Drupal的IRC频道#drupal freenode上

3

第一个问题:怎么弄,你不知道你正在运行的版本的网页表单的?它在网站的模块或更新页面中显示的是什么?如果没有在那里显示。系统表中数据库模式的价值是什么?

第二个问题:我有我的一个做混乱的一个同事,因为他安装模块的开发版本。您确定您只使用测试版或稳定版,并且以前没有开发过快照?

然后,作为解决方案...

我没有任何方便的网站在哪里尝试重现您的问题。但是你得到的警告并不是真正的问题......问题似乎 - 对我来说 - webform的更新无法正常运行或无法正确报告成功。

的代码生成的警告位是在update.php文件,它是:

if ($_SESSION['update_success']) { 
    $output = '<p>Updates were attempted. If you see no failures below, you may proceed happily to the <a href="'. base_path() .'?q=admin">administration pages</a>. Otherwise, you may need to update your database manually.'. $log_message .'</p>'; 
} 
else { 
    list($module, $version) = array_pop(reset($_SESSION['updates_remaining'])); 
    $output = '<p class="error">The update process was aborted prematurely while running <strong>update #'. $version .' in '. $module .'.module</strong>.'. $log_message; 
    if (module_exists('dblog')) { 
    $output .= ' You may need to check the <code>watchdog</code> database table manually.'; 
    } 
    $output .= '</p>'; 
} 

所以,代码生成错误比特被唯一当出现在更新过程中出错跑去。因此它看起来像是你正在更新的模块中的一个错误。

如果我在你的情况,我绝对想或需要最新的更新我会尝试手动执行更新。以下是如何做到这一点(我会假设你的模块是网页表单,但程序适用于其他模块也:

  1. 备份您的数据库
  2. 请确保您有安装了开发模块!
  3. 浏览数据库表“system”,并找出目前为网络表格模块(它通常是一个以6开头的四位数字)安装的模式版本。
  4. 打开模块目录中的webform.install文件,然后使用比您拥有的模式版本更大的模式版本搜索所有更新。它们看起来像webform_update_6XXX()的功能。
  5. 在可用的php控制台http://example.com/devel/php上一次运行所有这些更新,直到找到打破系统并可以调试的更新。
  6. File a bug与您的补丁,使社区可以从您的工作中受益。
  7. 解决了问题并安装了所有更新后,您可以使用您运行的最后一个模式编号手动设置系统表。

另一种选择,你可以尝试

  1. 备份你的数据库!
  2. 完全停用并卸载webform模块。
  3. 安装新版本的webform。
  4. 手动通过SQL从表中导入数据的备份数据库

这两个选项可以是棘手和耗时。

希望这会有所帮助!