Jump to content

ERREUR 500 Après mise à jour de modules -> "The server returned a "500 Internal Server Error"


Cavinn

Recommended Posts

Bonjour,

J'ai besoin de votre d'aide à propos d'une erreur 500 qui s'est déclenchée après la mise à jour de plusieurs modules. Le site est en version 1.7.4.2, et le php est en 7.2 Il est toujours accessible pour les visiteurs. C'est le back-office qui est hors d'atteinte.

J'ai trouvé les détails des erreurs listées dans les fichiers logs, il y a beaucoup de messages qui reprennent la formule suivante :

Apache error

AH01071: Got error 'PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in (LIEN DU MODULE EN PHP) on line 111\nPHP message: PHP Warning: count(): Parameter must be (etc)...

Tous ces messages d'erreurs indiquent uniquement 1 module, nommé Live chat Pro, qui est probablement incompatible ?

Auriez-vous une idée sur la démarche à adopter pour corriger ces problèmes depuis le FTP ?

Tout renseignement est plus que bienvenu !

Capture.PNG

Capture2.jpg

Link to comment
Share on other sites

3 hours ago, Eolia said:

1.7.4.2 n'est pas compatible full php 7.2 (il faut attendre la 1.7.5.1)

Virez ce module du ftp (répertoire /modules) et remettez PHP 7.1 max.

Merci beaucoup pour la réponse rapide Eolia !

J'ai fait comme vous m'avez dit, l'erreur 500 est toujours là mais la grosse liste d'erreurs d'Apache en relation avec le module a disparu.

J'ai réussi à mettre le backend en mode debug, et j'ai pu obtenir le message d'erreur précis qui provoque le 500 :

Unknown error à la ligne 66 du fichier
/var/www/vhosts/(NOM DU SITE)/httpdocs/var/cache/dev/smarty/compile/58/5e/d2/585ed286ff058b0439ec9b244287aea9c966db55_0.file.content.tpl.php
[4096] Object of class Link could not be converted to string

Une idée sur ce qui peut régler le problème ?

Encore merci

Link to comment
Share on other sites

1 hour ago, Eolia said:

ouvrez ce fichier et copiez le contenu ici, on pourra peut-être vous en dire plus (à priori erreur dans un tpl)

Merci Eolia,

Voici ce qui est écrit dans le fichier :

<?php
/* Smarty version 3.1.32, created on 2019-04-04 10:43:57
  from '/var/www/vhosts/NOMDUSITE.com/httpdocs/modules/welcome/views/content.tpl' */

/* @var Smarty_Internal_Template $_smarty_tpl */
if ($_smarty_tpl->_decodeProperties($_smarty_tpl, array (
  'version' => '3.1.32',
  'unifunc' => 'content_5ca5c3cd26d614_07792100',
  'has_nocache_code' => false,
  'file_dependency' => 
  array (
    '585ed286ff058b0439ec9b244287aea9c966db55' => 
    array (
      0 => '/var/www/vhosts/NOMDUSITE.com/httpdocs/modules/welcome/views/content.tpl',
      1 => 1554309031,
      2 => 'file',
    ),
  ),
  'includes' => 
  array (
  ),
),false)) {
function content_5ca5c3cd26d614_07792100 (Smarty_Internal_Template $_smarty_tpl) {
$_smarty_tpl->_checkPlugins(array(0=>array('file'=>'/var/www/vhosts/NOMDUSITE.com/httpdocs/vendor/smarty/smarty/libs/plugins/function.math.php','function'=>'smarty_function_math',),));
?>
<div class="onboarding-advancement" style="display: none">
  <div class="advancement-groups">
    <?php
$_from = $_smarty_tpl->smarty->ext->_foreach->init($_smarty_tpl, $_smarty_tpl->tpl_vars['steps']->value['groups'], 'group', false, 'k');
if ($_from !== null) {
foreach ($_from as $_smarty_tpl->tpl_vars['k']->value => $_smarty_tpl->tpl_vars['group']->value) {
?>
      <div class="group group-<?php echo $_smarty_tpl->tpl_vars['k']->value;?>
" style="width: <?php echo smarty_function_math(array('equation'=>"(x / y) * 100",'x'=>count($_smarty_tpl->tpl_vars['group']->value['steps']),'y'=>$_smarty_tpl->tpl_vars['totalSteps']->value),$_smarty_tpl);?>
%;">
        <div class="advancement" style="width: <?php echo $_smarty_tpl->tpl_vars['percent_real']->value;?>
%;"></div>
        <div class="id"><?php echo $_smarty_tpl->tpl_vars['k']->value+1;?>
</div>
      </div>
    <?php
}
}
$_smarty_tpl->smarty->ext->_foreach->restore($_smarty_tpl, 1);?>
  </div>
  <div class="col-md-8">
    <h4 class="group-title"></h4>
    <div class="step-title step-title-1"></div>
    <div class="step-title step-title-2"></div>
  </div>
  <button class="btn btn-primary onboarding-button-next"><?php echo call_user_func_array( $_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION]['l'][0], array( array('s'=>'Continue','d'=>'Modules.Welcome.Admin'),$_smarty_tpl ) );?>
</button>
  <a class="onboarding-button-shut-down"><?php echo call_user_func_array( $_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION]['l'][0], array( array('s'=>'Skip this tutorial','d'=>'Modules.Welcome.Admin'),$_smarty_tpl ) );?>
</a>
</div>

<?php echo '<script'; ?>
 type="text/javascript">

  var onBoarding;

  $(function(){
    onBoarding = new OnBoarding(<?php echo $_smarty_tpl->tpl_vars['currentStep']->value;?>
, <?php echo $_smarty_tpl->tpl_vars['jsonSteps']->value;?>
, <?php echo $_smarty_tpl->tpl_vars['isShutDown']->value;?>
, "<?php echo $_smarty_tpl->tpl_vars['link']->value;?>
", baseAdminDir);

    <?php
$_from = $_smarty_tpl->smarty->ext->_foreach->init($_smarty_tpl, $_smarty_tpl->tpl_vars['templates']->value, 'template');
if ($_from !== null) {
foreach ($_from as $_smarty_tpl->tpl_vars['template']->value) {
?>
      onBoarding.addTemplate('<?php echo $_smarty_tpl->tpl_vars['template']->value['name'];?>
', '<?php echo $_smarty_tpl->tpl_vars['template']->value['content'];?>
');
    <?php
}
}
$_smarty_tpl->smarty->ext->_foreach->restore($_smarty_tpl, 1);?>

    onBoarding.showCurrentStep();

    var body = $("body");

    body.delegate(".onboarding-button-next", "click", function(){
      if ($(this).is('.with-spinner')) {
        if (!$(this).is('.animated')) {
          $(this).addClass('animated');
          onBoarding.gotoNextStep();
        }
      } else {
        onBoarding.gotoNextStep();
      }
    }).delegate(".onboarding-button-shut-down", "click", function(){
      onBoarding.setShutDown(true);
    }).delegate(".onboarding-button-resume", "click", function(){
      onBoarding.setShutDown(false);
    }).delegate(".onboarding-button-goto-current", "click", function(){
      onBoarding.gotoLastSavePoint();
    }).delegate(".onboarding-button-stop", "click", function(){
      onBoarding.stop();
    });

  });

<?php echo '</script'; ?>
>
<?php }
}

Link to comment
Share on other sites

excellent...

Virez également le module onboarding de votre ftp (qui ne sert à rien à part envoyer des fusées) et le module gamification s'il y est également.

(ça a du vous prendre du temps de remplacer le nom de votre site, surement très incorrect, partout dans ce post :P )

Link to comment
Share on other sites

Just now, Eolia said:

excellent...

Virez également le module onboarding de votre ftp (qui ne sert à rien à part envoyer des fusées) et le module gamification s'il y est également.

(ça a du vous prendre du temps de remplacer le nom de votre site, surement très incorrect, partout dans ce post :P )

Haha oui pardon, j'ai voulu laisser le site incognito pour le moment 😃 un petit ctrl + F et ça a été facile

Je vais faire les modif, je reviens très rapidement

 

Link to comment
Share on other sites

Bon, apparemment, les fichiers onboarding et gamification ne sont pas dans le répertoire des modules du FTP, bien qu'onboarding apparaisse dans le code... 😶

J'ai bien regardé chaque ligne, utilisé ctrl + F, rien du tout

Il est possible que ce type de fichier soit invisible, stocké ailleurs, ou ait un nom très différent ?

 

Link to comment
Share on other sites

Sur 1.7, les modules à supprimer sont "gamification", "ps_mbo", "psaddonsconnect", "welcome", ils sont peut être pas tous installés sur votre PrestaShop, ça depend de votre version. Mais ces modules ralentissent inutilement l'administration de PrestaShop.

Link to comment
Share on other sites

Merci Janett, j'ai trouvé le fichier Onboarding, il était dans le fichier Welcome. J'ai juste supprimé Onboarding pour le moment...

Mais ça a créé une nouvelle fenêtre de problème, et en plus on ne peut plus accéder au back-office, même en mode Debug !

Voici une capture d'écran :

Capture5.PNG

Link to comment
Share on other sites

Et bien maintenant, ça a l'air de marcher !

J'ai juste supprimé le fichier Welcome pour le moment.

Le backoffice est accessible et le message d'erreur a disparu. Même en mode Debug désactivé !

Un grand merci pour votre aide (je vous ferais une bise si je le pouvais 😊) si jamais un problème survient, je ferai un up

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...