2009-11-21 3 views
0

J'ai un site de base Drupal 6 sur un environnement d'hébergement partagé. Le site fonctionne correctement depuis environ un mois.Drupal update.php produit une erreur

J'ai téléchargé une nouvelle version du module webform Drupal et quand je vais à update.php pour compléter la page, j'ai des erreurs. La page d'aperçu update.php n'affiche pas les mises à jour nécessaires pour les formulaires Web, mais si je continue, j'obtiens les erreurs ci-dessous. Peut-être que s'il n'y a pas de correctifs je ne devrais pas continuer avec update.php?

Sur l'étape "mises à jour run" Je reçois cette erreur:

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

Sur la page du journal d'examen que je reçois cette erreur

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

Notes:

  • Le site est Drupal 6.14
  • Webforms inconnus de 6.x-2.9
  • J'ai essayé de désactiver SecFilterInheritance au niveau .htaccess
  • Le site redirige vers www dans le fichier .htaccess
  • J'ai mis l'URL de base en settings.php à avec et sans www

Répondre

0

Il semble comme this issue déposée à Drupal.org. Cela n'a pas l'air résolu. Je demande de l'aide sur le canal Drupal IRC#drupal sur freenode

3

Première question: comment se fait-il que vous ne sachiez pas quelle version de webform vous utilisez? Que montre-t-il dans le module ou les mises à jour du site? Si rien n'est montré là. Quelle est la valeur du schéma de base de données dans la table système?

Deuxième question: Un de mes collègues a fait un bazar parce qu'il a installé une version de développement de modules. Vous êtes sûr de n'avoir utilisé que des versions bêta ou stables et de ne pas avoir auparavant créé un snapshot?

Puis, comme pour la solution ...

Je n'ai pas un site à portée de main où essayer de reproduire votre problème. Mais l'avertissement que vous obtenez n'est pas le vrai problème ... Le problème semble - pour moi - que la mise à jour de webform ne fonctionne pas correctement ou ne rapporte pas correctement le succès.

Le bit de génération de code l'avertissement est dans le fichier update.php et il est:

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>'; 
} 

donc, le bit de génération de code l'erreur obtient couru que lorsque quelque chose se passe mal au cours de la procédure de mise à jour. Il ressemble donc à un bug dans le module que vous mettez à jour.

Si j'étais dans votre situation et je voulais absolument ou besoin de la dernière mise à jour Je voudrais essayer d'effectuer les mises à jour manuellement. Voici comment faire (je suppose que votre module est formulaire en ligne, mais la procédure s'applique à d'autres modules aussi:

  1. Sauvegardez votre DB
  2. Assurez-vous que le module développeur installé!.
  3. Parcourez la "table" de la table DB et découvrez la version de schéma actuellement installée pour le module webform (normalement, il s'agit d'un nombre à quatre chiffres commençant par 6).
  4. Ouvrez le fichier webform.install dans le répertoire de votre module et recherchez toutes les mises à jour avec une version de schéma plus grande que celle dont vous disposez. Ils ressembleront à la fonction appelée webform_update_6XXX().
  5. Dans la console php disponible à http://example.com/devel/php exécutez toutes ces mises à jour une à la fois, jusqu'à ce que vous trouviez celui qui casse le système et peut le déboguer.
  6. File a bug avec votre patch afin que la communauté puisse bénéficier de votre travail. Une fois que vous avez résolu le problème et installé toutes les mises à jour, vous pouvez définir manuellement votre table système avec le dernier numéro de schéma que vous avez exécuté.

Une autre option, vous pouvez essayer:

  1. Sauvegardez votre DB!
  2. Désactivez et désinstallez complètement le module Webform.
  3. Installez la nouvelle version de Webform.
  4. importer manuellement les données via SQL à partir des tables dans la sauvegarde DB

Les deux options peuvent être difficiles et prennent du temps.

Espérons que cela aide!

Questions connexes