console linux

Ebauche : Mise à jour multiple WordPress sans plugin sur un mutualisé OVH

Si vous souhaitez faire les mises à jour de nombreux sites web, ce n’est pas évident à faire manuellement… Il faut bien en faire un de test manuellement pour voir que les mises à jour ne « cassent » rien. Mais pour les dizaines de sites à mettre à jour après, cela risque d’être long et pénible….

Vous pouvez passer par des plugins qui permettent de centraliser la gestions de vos sites WordPress, mais cela vous fait un plugin de plus et surtout un accès depuis l’extérieur vers vos sites… Niveau sécurité il y a mieux….

Mais il y a une solution à cela : La mise à jour en Bash depuis une connexion SSH. Que ce soit sur un VPS ou sur un hébergeur, il est tout à fait possible de le faire. Dans le cadre d’un VPS ou d’un dédié, vous avez tous les droits et cela ne posera aucun souci. Dans un hébergement mutualisé comme OVH, vous n’avez pas accès au réseau de base en ssh… Il faut donc ruser…

Mettre à jour WordPress via wp-cli

Il existe un très bon script qui permet de mettre à jour WordPress via la ligne de commande, d’où son nom : wp-cli pour WordPress Command Line Interface.

Installation sur un dédié ou VPS

Sur un dédié ou VPS, vous n’avez pas grand chose à faire :

Vous récupérez le script via wget ou curl :

C’est un script php dans une archive qui contient tous les lib nécessaires. Pratique pour un déploiement rapide 🙂

Essayez le script via cette commande en ayant php5.3 minimum :

Vous pouvez le renommer en « wp »

ou bien faire un alias dans votre fichier  ~/.bash_profile :

Auto-completion

Vous pouvez même activer l’auto-completion via le téléchargement du fichier suivant : wp-completion.bash

Vous éditez de nouveau votre fichier ~/.bash_profile :

Pour prendre les changements pour votre session en cours, exécutez cette commande une fois dans votre shell.

Installation de wp-cli sur un hébergement mutualisé OVH

Je n’ai pas trouvé d’information pertinente ou même partielle pour savoir comment utiliser wp-cli sur un hébergement mutualisé OVH. Je partage donc mes avancées. Mais comme le titre l’indique, ce n’est qu’une ébauche.

J’ai une solution qui me convient, mais qui n’est pas 100% autonome via un cron chez OVH. Ce qui est très bien car lors de mise à jour massive, il faut mieux que ce soit un humain qui les fasse, en ayant testé sur une demo au préalable 🙂

Vous aurez besoin de :

  • l’adresse d’un proxy, même un publique fait l’affaire (si vous n’en avez pas Google est là pour ça)
  • d’un linux ou d’un putty avec redirection de port sous Windows

Connectez vous en SSH avec une redirection de port inverse cette fois :

  • 24123 sera le port ouvert en localhost sur le serveur distant, qui pointera dans votre réseau local jusque « proxy » sur le port d’écoute 8080

Vous exportez la variable suivante pour utiliser votre proxy en http et https si besoin :

Si vous utilisez un utilisateur et mot de passe pour le proxy :

Importez le script wp via scp, wget ou curl :

De base sur les serveurs dédiés ovh, la commande « php » renvoi vers php4…

Il faut exécuter ceci pour utiliser php 5.4 par exemple :

Je vous conseille d’éditer votre fichier ~/.bash_profile comme ceci, en remplaçant le path /homez.nnn/votreuser par ce que vous renvoi la commande « pwd » :

Pour les détails d’auto-completion, voir le point « Installation sur un dédié ou VPS »

Allez dans un répertoire d’un site WordPress à mettre à jour et faite un test :

Cela fonctionne pour les thèmes mais quelques mineures erreurs à la fin :

==> Pour mettre les thèmes à jour, je n’ai pas trop de soucis, mais pour les plugins, impossible de les mettre à jour. C’est sur ce point que je cale actuellement. Je n’ai pas trouvé le temps de débugger cette partie, donc si quelqu’un s’y est mis, qu’il mette un commentaire pour partager 😉

Utilisation wp-cli pour un site

Les commandes les plus utiles vous serons surement les suivantes. Vous devez vous déplacer dans la racine du site en question (genre /var/www/public_html/monsite)

Mise à jour de WordPress :

Mise à jour des plugins :

Mise à jour des thèmes :

Il ne reste maintenant plus qu’à avoir un script pour mettre tous vos sites à jour automatiquement 🙂

Script de mise à jour de plusieurs WordPress via wp-cli

Pour les serveurs dédiés, je vous conseil ce script, qui est déjà tout fait, donc pourquoi ne pas en profiter 😉

Pour ceux qui ont un hébergement mutualisé OVH, il faudra le modifier un peu ou attendre que je finisse le mien…

 

Erreurs possibles

Si vous vous déplacez dans un site et que rien ne se passe, il peut y avoir un souci de répertoire. En effet on le voit avec un strace :

==> access(« /home/brogniau/index.php », F_OK) = -1 ENOENT (No such file or directory)

wp ne regarde pas le path actuel « demo » mais par rapport à son emplacement…

Il faut spécifier le path via la commande suivante, tous les détails sont sur le site wp-cli :

N’hésitez pas à commenter…

2 thoughts on “<span>Ebauche : Mise à jour multiple WordPress sans plugin sur un mutualisé OVH</span>”

  1. denny says:

    Hello,
    J’ai eu le même souci après tout avoir paramétré, impossible de l’utiliser via l’alias.
    pour que cela fonctionne, il faut tout retaper php wp-cli.phar help par exemple.
    Par contre j’ai laissé l’alias pour php

  2. Renaud says:

    Hello, je découvre ton blog à l’instant. Merci pour le partage de tes connaissances.

    J’essaye moi aussi de mettre WP-CLI sur un mutualisé OVH (offre performance). Assez bizarre car cela semble marcher « à moitié ».

    J’ai adapté le .bash_profile de la façon suivante :

    alias wp='php /homez.xxx/identifiant/wp-cli.phar --allow-root'
    alias php='php.ORIG.5_4'

    si je lance un wp –info dans la console, pas de problème, j’ai bien un affichage :

    PHP binary: /usr/local/php5.4/bin/php-cgi
    PHP version: 5.4.38
    php.ini used: /usr/local/php5.4/etc/php.ini
    WP-CLI root dir: phar://wp-cli.phar
    WP-CLI global config:
    WP-CLI project config:
    WP-CLI version: 0.20.0

    Par contre, dès que je tape la moindre commande WP (par exemple wp help), j’ai ça :

    X-Powered-By: PHP/5.4.38
    Content-type: text/html

    Tout simplement comme si rien ne se passait.
    Tu aurais des pistes de ton côté ?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">