2009-11-21 67 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從表中導入數據的備份數據庫

這兩個選項可以是棘手和耗時。

希望這會有所幫助!