Ce sujet est résolu. Voici une description du problème et de la solution.
Problème :
Le client a signalé des problèmes de lenteur et des erreurs 503 sur son site WordPress lors de l'utilisation de WPML sur un hébergement partagé. Le problème disparaissait lors de la désactivation de WPML et réapparaissait lors de sa réactivation. La base de données était très volumineuse pour un hébergement partagé.
Solution :
Nous avons suggéré plusieurs étapes pour améliorer les performances :
1. Mise à jour de WordPress et de WPML ainsi que tous les add-ons de WPML.
2. Désactivation de WPML Media si la traduction d'images différentes par langue n'est pas nécessaire.
3. Changement du moteur de stockage des tables de la base de données de MyISAM à innoDB pour améliorer les performances. Voici les requêtes SQL pour effectuer ce changement :
SET sql_mode = ''; ALTER TABLE wpbtk_posts ENGINE = INNODB; ALTER TABLE wpbtk_postmeta ENGINE = INNODB; ALTER TABLE wpbtk_icl_strings ENGINE = INNODB; ALTER TABLE wpbtk_icl_string_packages ENGINE = INNODB; ALTER TABLE wpbtk_icl_string_translations ENGINE = INNODB; ALTER TABLE wpbtk_icl_translate ENGINE = INNODB; ALTER TABLE wpbtk_icl_translate_job ENGINE = INNODB; ALTER TABLE wpbtk_icl_translations ENGINE = INNODB; ALTER TABLE wpbtk_icl_translation_batches ENGINE = INNODB; ALTER TABLE wpbtk_icl_translation_status ENGINE = INNODB; ALTER TABLE wpbtk_icl_background_task ENGINE = INNODB; ALTER TABLE wpbtk_icl_flags ENGINE = INNODB; ALTER TABLE wpbtk_icl_languages ENGINE = INNODB; ALTER TABLE wpbtk_icl_languages_translations ENGINE = INNODB; ALTER TABLE wpbtk_icl_locale_map ENGINE = INNODB; ALTER TABLE wpbtk_icl_message_status ENGINE = INNODB; ALTER TABLE wpbtk_icl_mo_files_domains ENGINE = INNODB; ALTER TABLE wpbtk_icl_node ENGINE = INNODB; ALTER TABLE wpbtk_icl_reminders ENGINE = INNODB; ALTER TABLE wpbtk_icl_string_batches ENGINE = INNODB;
Ces modifications ont permis de réduire significativement le temps de chargement des pages. Nous recommandons de changer toutes les tables en innoDB pour de meilleurs résultats.
Si vous rencontrez toujours des problèmes après avoir suivi ces étapes, ou si cette solution ne semble pas pertinente à votre cas, nous vous invitons à ouvrir un nouveau ticket de support. Nous vous recommandons également de consulter la page des problèmes connus, de vérifier la version de la correction permanente et de vous assurer que vous avez installé les dernières versions des thèmes et plugins. Pour toute assistance supplémentaire, veuillez contacter notre forum de support.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
Marqué : Exception
Ce sujet contient 21 réponses, a 3 voix.
Dernière mise à jour par Nicolas V. Il y a 9 mois et 2 semaines.
Assisté par: Nicolas V..
Auteur | Articles |
---|---|
Avril 7, 2024 à 3:57 am #15491064 | |
adrienL-15 |
Bonjour, J’ouvre ce nouveau ticket pour faire suite au ticket suivant : Suite à ce problème du vendredi 2 février sur mon site maisondudrone.com, les erreurs sont réapparues de temps en temps, mais pas tous les jours (parfois rien pendant 7-10 jours) et généralement uniquement quelques secondes ou quelques minutes. Cependant, il est réapparu 2 longues fois pendant plusieurs heures : A chaque fois, les requêtes pour charger une page sont très lentes (environ 20 à 30s) ou finissent en erreur 503. J’ai utilisé la fonction WP_ALLOW_REPAIR pour effectuer une réparation + optimisation de la base mais cela n’a rien changé. Bizarrement, le problème s’est jusqu’à présent produit uniquement les vendredi et samedi soir, de l’après-midi à 23h environ. L’activité sur mon site n’est pas inhabituellement haute à ces moments-là, ce qui me pousse à m'interroger : étant donné que nous sommes sur un hébergement mutualisé, est-ce que le problème pourrait être lié à une activité globale sur le serveur soit plus élevée pendant ces périodes ? J’ai posé la question à mon hébergeur (o2switch) mais ils n’ont pas su me répondre. Vous aviez précédemment suggéré une migration de notre site vers vos serveurs Cloudways pour s'assurer que les problèmes rencontrés soient liés au serveur. Si vous n’avez pas d’autre alternative, je suis prêt à faire ce qu’il faut pour comprendre les origines de ce problème et trouver une solution, car il a un gros impact sur mon activité. Vous pouvez télécharger le debug.log complet au lien suivant : lien caché Bien cordialement, Adrien |
Avril 8, 2024 à 1:43 pm #15494443 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Je suis désolé d'apprendre que le problème est de retour. WordPress 6.5 a apporté pas mal de changements et il faut utiliser les dernières versions de WPML et String Translation. Je vois que c'est votre cas ici. Question: le problème est-il survenu avant la mise à jour de WPML et String Translation ou après? En regardant les logs, je vois que cela concerne _wcml_average_rating qui sont les reviews WooCommerce. Le problème semble se passer sur les templates de votre thème ou les notes/review de produit sont affichées (stars) comme "taxonomy-product-tag.php" ou "single-product.php" Le plugin Customer Reviews for WooCommerce est pourtant compatible avec WPML: https://wpml.org/plugin/customer-reviews-for-woocommerce/ Dans "WooCommerce > WooCommerce Multilingual > Paramètres > Product reviews" est-ce que vous avez l'option "By default, show reviews in all languages" activée? Cependant j'ai bien peur que l'on retourne à la première recommandation qui était cette solution: https://stackoverflow.com/questions/7942154/mysql-error-2006-mysql-server-has-gone-away/9479681#9479681 Mais vous dites que sur le serveur mutualisé vous ne pouvez pas augmenter cette valeur. J'ai créé un serveur test pour vous sur Cloudways (https://wpml.org/hosting-partner/cloudways/). Pour effectuer la migration, veuillez suivre les étapes suivantes: 1) Installez ce plugin sur votre site: Cloudways WordPress Migrator (https://wordpress.org/plugins/bv-cloudways-automated-migration/) 4) Acceptez les conditions d'utilisation et cliquez sur "Migrer" Plus d'information: 5) Vous recevrez un e-mail au début et un à la fin de la migration. 6) Dites moi quand la migration est prête et je vérifierai le problème sur ce site de test. La copie de votre site sera en ligne, mais les moteurs de recherche ne l'indexeront pas (la copie) afin que vous n'ayez pas de soucis de contenu dupliqué. *Les informations que vous partagez avec nous seront confidentielles. Une fois le problème résolu, les détails que vous avez partagés avec nous seront supprimés de nos archives/serveurs. * |
Avril 9, 2024 à 3:55 am #15496479 | |
adrienL-15 |
Bonjour, Merci pour votre réponse. Les deux dernières grosses occurrences qui ont duré plusieurs heures sont survenues après les dernières mises à jour de WPML et String Translation. L’option "By default, show reviews in all languages » est bien cochée dans les paramètres WooCommerce Multilingual. J'ai commencé la migration vers Cloudways, cependant j'obtiens le message d'erreur en pièce jointe. Est-ce que j'ai bien coché/rempli tous les champs ? Ceux-ci sont légèrement différents de ceux que vous avez mentionné (pas de champ pour le mot de passe base de données et quelques cases à cocher en plus). Cordialement, Adrien |
Avril 9, 2024 à 9:09 pm #15501739 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Essayons encore une fois. Je viens d'éliminer le site et d'en créer un autre identique: - URL du site de destination : lien caché |
Avril 10, 2024 à 2:11 am #15501973 | |
adrienL-15 |
Bonjour, Je rencontre à nouveau le même problème (erreur "Your source site lien caché is redirecting to ."). Dois-je bien choisir "Cloudways Flexible" ? (j'ai quand même essayé "Cloudways Autonomous", même résultat) Cordialement, Adrien |
Avril 10, 2024 à 12:02 pm #15504449 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Oui, Cloudways a modifié son plugin et demande moins d'informations. Essayons alors une autre approche. Pour cela, vous devez installer temporairement l'extension "Duplicator". Elle vous permettra de faire une copie complète de votre site et de son contenu. Une fois le problème résolu, j'éliminerai cette copie. Dites moi si vous êtes d'accord. |
Avril 11, 2024 à 8:17 pm #15510930 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Je viens de demander accès aux fichiers. |
Avril 12, 2024 à 1:07 am #15511136 | |
adrienL-15 |
Bonjour, Ah oui pardon j'avais oublié ce point là. Cordialement, Adrien |
Avril 12, 2024 à 11:56 pm #15514333 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour Adrien, J'ai essayé d'installer la copie 3 fois aujourd'hui sans succès. À chaque fois l'installation de la base de données prend énormément de temps et termine par une erreur timeout. Pensez-vous qu'il serait possible d'accéder au site afin d'essayer de prendre une copie avec: Pouvez-vous également essayer la solution #1 de cet article: lien caché $this->query("set session wait_timeout=600"); |
Avril 13, 2024 à 5:22 am #15514408 | |
adrienL-15 |
Bonjour, Merci pour votre réponse et pour vos suggestions. Effectivement, ma base de données est très volumineuse, ce qui pose problème. Je ne peux même pas restaurer normalement un backup de mon site avec BlogVault, cela nécessiterait de modifier un paramètre de timeout que je ne peux pas ajuster sur mon hébergement mutualisé. Je viens de mettre en œuvre la solution recommandée dans l'article de Kinsta en augmentant le paramètre à 600. Je vais surveiller attentivement le fichier debug.log pour voir si cela résout le problème. Concernant l'accès au site, je préfère éviter de donner un accès administratif externe. Cela dit, je peux essayer d'utiliser All In One Migration si le problème persiste. Je vous tiens informé des résultats obtenus. Bien cordialement, Adrien |
Avril 15, 2024 à 12:22 pm #15519953 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour Adrien, UN membre de l'équipe de deuxième niveau va essayer de reproduire le problème en local avec la copie de votre site mais nous aurions besoin de connaitre les valeurs suivantes afin d'avoir exactement la même configuration que votre serveur: - max_allowed_packet |
Avril 16, 2024 à 3:29 am #15522218 | |
adrienL-15 |
Bonjour Nicolas, J'ai contacté mon hébergeur, voici sa réponse : "Le max_allowed_packet est à 1G coté serveur et la valeur du timeout php est à définir de votre coté depuis l'outil sélectionner une version php de votre cpanel." Pour le PHP timeout, il y a plusieurs valeurs, je vous met une capture d'écran en pièce jointe. Sinon, depuis l'ajout de la ligne « $this->query("set session wait_timeout=600 », je n'ai pas eu l'erreur habituelle dans debug.log, mais celle-ci à la place : [14-Apr-2024 21:51:10 UTC] WordPress database error MySQL server has gone away for query set session wait_timeout=600 made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/flatsome/woocommerce/single-product.php'), get_footer, locate_template, load_template, require_once('/themes/flatsome/footer.php'), do_action('flatsome_footer'), WP_Hook->do_action, WP_Hook->apply_filters, flatsome_page_footer, get_template_part, locate_template, load_template, require('/themes/flatsome/template-parts/footer/footer.php'), dynamic_sidebar, WP_Widget->display_callback, WC_Widget_Products->widget, WC_Widget_Products->get_products, WP_Query->__construct, WP_Query->query, WP_Query->get_posts Cordialement, Adrien |
Avril 16, 2024 à 2:33 pm #15526487 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour Adrien, J'ai transmis ces informations à l'équipe de deuxième niveau. Je reviens vers vous dès que possible. |
Avril 17, 2024 à 1:50 am #15528746 | |
adrienL-15 |
Bonjour, Merci pour votre réponse. Au cas où cela puisse servir, voici les dernières erreurs que j'ai eu : Celle-là à une seule reprise seulement : [16-Apr-2024 09:28:30 UTC] WordPress database error MySQL server has gone away for query set session wait_timeout=600 made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/flatsome/woocommerce/single-product.php'), get_header, locate_template, load_template, require_once('/themes/flatsome/header.php'), wp_head, do_action('wp_head'), WP_Hook->do_action, WP_Hook->apply_filters, RankMath\Frontend\Head->head, RankMath\Frontend\Head->do_action, do_action_ref_array('rank_math/head'), WP_Hook->do_action, WP_Hook->apply_filters, RankMath\Schema\JsonLD->json_ld, RankMath\Schema\JsonLD->do_filter, apply_filters_ref_array('rank_math/json_ld'), WP_Hook->apply_filters, RankMath\Schema\JsonLD->add_context_data, RankMath\Schema\Singular->process, RankMath\Schema\Product->process, RankMath\Schema\Product_WooCommerce->set_product, RankMath\Schema\WC_Attributes->assign_remaining, WC_Product->get_attribute, wc_get_product_terms, apply_filters('woocommerce_get_product_terms'), WP_Hook->apply_filters, WCML_Terms->get_product_terms_filter, apply_filters('translate_object_id'), WP_Hook->apply_filters, icl_object_id, wpml_object_id_filter, SitePress->get_object_id, WPML_Term_Translation->term_id_in, WPML_Term_Translation->adjust_ttid_for_term_id, WPML_Term_Translation->maybe_warm_term_id_cache, WPML\FP\Nothing->getOrElse, value, WPML_Term_Translation->{closure} Suivie de celle-ci, avec plus de 1000 occurrences pendant une demi-heure environ : [16-Apr-2024 09:28:30 UTC] WordPress database error MySQL server has gone away for query set session wait_timeout=600 made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/flatsome/woocommerce/single-product.php'), get_footer, locate_template, load_template, require_once('/themes/flatsome/footer.php'), do_action('flatsome_footer'), WP_Hook->do_action, WP_Hook->apply_filters, flatsome_page_footer, get_template_part, locate_template, load_template, require('/themes/flatsome/template-parts/footer/footer.php'), dynamic_sidebar, WP_Widget->display_callback, WC_Widget_Products->widget, WC_Widget_Products->get_products, WP_Query->__construct, WP_Query->query, WP_Query->get_posts Bonne journée ! |
Avril 17, 2024 à 12:09 pm #15531899 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour, Supprimez cette query pour le moment. $this->query("set session wait_timeout=600"); Le ticket a été remonté à un niveau supérieur pour recréer les mêmes conditions et essayer de reproduire le problème. Notez que ce ne sera pas exactement la même chose car ce n'est pas un serveur mutualisé et il y a de forte chances que le problème soit lié au serveur. Je reviens vers vous dès que possible. |