Le module complémentaire de logiciel de site de cPanel désactive les mises à jour automatiques de WordPress
Publié: 2015-05-15Il y a un peu plus de deux mois, Derek Munson, qui s'appelle Drumology2001, a publié un fil de discussion dans les forums de support de WordPress.org. Lors de la maintenance de plusieurs sites WordPress sur son serveur privé virtuel, Munson a découvert qu'un certain nombre d'entre eux exécutaient des versions obsolètes. Les versions allaient de 3.9 à 4.1 avec au moins un site utilisant WordPress 3.9.2.
J'ai l'habitude de voir le "nag" en haut de l'écran qui me permet de savoir qu'une version plus récente est disponible. Je ne vois cela sur aucun de ces sites qui ne sont pas sur la dernière version (4.1.1). Lorsque je vais dans Tableau de bord > Mises à jour et que je clique sur "Vérifier à nouveau" pour forcer une vérification manuelle, cela continue d'agir comme si tout était à jour alors que ce n'est clairement pas le cas.
Initialement, Munson pensait que All in One WP Security and Firewall bloquait les notifications de mise à jour. Mbrsolution, le développeur principal du plugin, a confirmé qu'il ne bloque pas les notifications de mise à jour. Après avoir suivi un certain nombre de techniques de dépannage suggérées par des bénévoles sur le forum de support WordPress, Munson a installé Wordfence Security, un plugin de sécurité WordPress.
L'une des caractéristiques remarquables de Wordfence est son scanner. Il compare les fichiers propres de WordPress à ceux du serveur et avertit l'utilisateur s'il détecte une différence. Les résultats de l'analyse montrent que trois fichiers ont été modifiés.
wp-admin/includes/update.php
wp-admin/update-core.php
wp-admin/includes/class-wp-upgrader.php
Ces fichiers n'ont été modifiés que sur les sites WordPress qui ont été installés à l'aide de l'addon Site Software de cPanel.
Le fichier update.php de WordPress .
function get_core_updates( $options = array() ) { $options = array_merge( array( 'available' => true, 'dismissed' => false ), $options ); $dismissed = get_site_option( 'dismissed_update_core' );
Le fichier update.php de cPanel .
function get_core_updates( $options = array() ) { # cPanel override: Disable all core updates to prevent conflict with cPAddons. return false; $options = array_merge( array( 'available' => true, 'dismissed' => false ), $options );
Le fichier update-core.php de WordPress .
function core_upgrade_preamble() { global $wp_version, $required_php_version, $required_mysql_version; $updates = get_core_updates();
Le fichier update-core.php de cPanel .
function core_upgrade_preamble() { # cPanel override: Do not display the current or the latest version, because we've disabled updates. return; global $wp_version, $required_php_version, $required_mysql_version; $updates = get_core_updates();
Fichier classe-wp-upgrader.php de WordPress .
public function is_disabled() { // Background updates are disabled if you don't want file changes. if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) return true;
Fichier class-wp-upgrader.php de cPanel .
public function is_disabled() { return true; // Force this functionality to disabled because it is incompatible with cPAddons. // Background updates are disabled if you don't want file changes. if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) return true;
Le code ajouté par cPanel désactive les mises à jour principales de WordPress, les notifications de mise à jour et les mises à jour automatiques en arrière-plan des versions ponctuelles. Une fois que Munson a restauré ces fichiers dans leur version d'origine, les mises à jour et les notifications automatiques ont fonctionné correctement.
cPanel et cPAdons
Ceux qui gèrent des serveurs dédiés ou des serveurs privés virtuels avec cPanel ont la possibilité d'utiliser cPAdons. Selon la documentation de cPanel, « les modules complémentaires sont des applications qui fonctionnent avec cPanel pour exécuter des fonctions pour les sites Web de vos utilisateurs. Des exemples de ces applications incluent les tableaux d'affichage, les paniers d'achat en ligne et les blogs.

Dialogue ouvert avec cPanel
George Stephanis, contributeur principal de WordPress et développeur principal de Jetpack, a publiquement qualifié les actions de cPanel de mauvaise pratique.
Attends, sérieux ? @cPanel pirate le noyau de WordPress pour empêcher les mises à jour ? Je suis un peu abasourdi de voir à quel point c'est une mauvaise idée. #donthackcore
— george stephanis (@daljo628) 11 mai 2015
Un représentant de cPanel a vu le tweet et a répondu qu'il aimerait recevoir plus d'informations.
https://twitter.com/cpanelcares/status/597886956945711107
Stephanis a engagé une longue conversation avec des représentants de cPanel expliquant pourquoi c'est une mauvaise idée de désactiver les mises à jour principales. cPanel désactive le système de mise à jour natif de WordPress car cela pourrait provoquer des conflits avec la version du logiciel de site cPanel de WordPress.
Nous publions généralement la dernière version de WordPress dans les 1 à 5 jours suivant la dernière mise à jour de WordPress. Au minimum, les administrateurs de serveur sont informés chaque nuit de toutes les applications logicielles du site qui doivent être mises à jour. Il appartient aux utilisateurs de configurer leurs notifications dans cPanel pour recevoir ces mises à jour.
La façon dont notre outil cPAdons suit le logiciel n'est pas compatible avec la façon dont WordPress met à jour, c'est pourquoi nous désactivons les mises à jour automatiques afin que nous puissions le suivre via cPAdons.
cPanel poursuit en expliquant comment les mises à jour sont gérées pour les logiciels installés à l'aide de son logiciel de site cPAddon.
- Chaque fois que WP publie une version de maintenance qui répond à des problèmes de sécurité, nous réagissons très rapidement pour mettre à jour notre logiciel afin qu'il soit disponible pour les clients.
- Par défaut, nous définissons que les logiciels gérés/installés via cPAdons sont automatiquement mis à jour lorsqu'une nouvelle mise à jour est disponible.
- Sur la base des informations ci-dessus, si l'administrateur du serveur laisse les valeurs par défaut activées, une fois que WP introduit une version de maintenance qui corrige les problèmes de sécurité et que nous avons testé et mis à jour notre source, les clients recevront la version automatiquement.
- Si l'administrateur du serveur décide de désactiver les mises à jour logicielles automatiques, l'utilisateur final et l'administrateur système recevront toujours des notifications indiquant que leur installation est obsolète, accompagnées des étapes de mise à jour de leur application.
Par défaut, les logiciels installés par cPanel sont configurés pour se mettre à jour automatiquement, mais certains sites de Munson n'ont pas été mis à jour. Il n'a pas non plus reçu de notifications de mise à jour pour ces sites. cPanel pense qu'il y a un problème avec la configuration du serveur de Munson et s'est engagé à le contacter pour obtenir plus d'informations.
D'après ce que Drumology2001 a rapporté sur le forum, il semble que quelque chose ne va pas sur ce serveur. Nous aimerions examiner ce serveur pour déterminer pourquoi les mises à jour de WordPress n'étaient pas disponibles pour l'utilisateur.
Sur la base des dates floues utilisées sur le forum et comparées à nos enregistrements internes, la mise à jour 4.1.1 était disponible pour le système du logiciel du site avant la publication initiale. Nous le contacterons pour déterminer s'il y a quelque chose que nous pouvons faire là-bas.
Réceptif au changement
La bonne nouvelle est que cPanel est réactif et prêt à apporter les modifications nécessaires pour améliorer le processus de mise à jour. Compte tenu du nombre de sociétés d'hébergement Web offrant aux clients la possibilité d'installer WordPress avec un programme d'installation en un clic, il est important que les sites reçoivent les mises à jour dès que possible.
Si vous avez installé WordPress via le programme d'installation en un clic de cPanel, vérifiez que votre site exécute WordPress 4.2.2, qui est la dernière version stable.
