Mettre à jour WordPress sur un serveur dédié en lignes de commandes

Si le serveur est bien configuré, il est alors simple de mettre à jour WordPress depuis son panneau d'administration. Mais si vous n'avez pas ajouté de serveur FTP il faudra le faire soit via un explorateur connecté en SSH (ce qui peut être très long), soit directement depuis le serveur dans un terminal, en lignes de commande. C'est cette dernière que je vous explique ici. Elle n'est pas très compliquée, et de surcroît très rapide.

Parmi les étapes on se place dans le répertoire temporaire, on télécharge avec wget la dernière version de wordpress, on extrait l'archive, on supprime le dossier wp-content de l'archive (pour ne pas écraser ses thèmes et autres plugins lors de la future copie) et on copie les nouveaux fichiers dans son répertoire habituel. On pense aussi à supprimer les fichiers readme, license et config-sample en passant, le tout en mode verbose pour suivre les étapes...

cd /tmp
wget http://fr.wordpress.org/latest-fr_FR.zip #version française
wget http://wordpress.org/latest.tar.gz #version anglaise
unzip latest-fr_FR.zip #ou tar -xvzf latest.tar.gz pour l'anglaise
rm -rfv wordpress/wp-content/
rm -fv wordpress/wp-config-sample.php wordpress/readme.html wordpress/license.txt
cp -rfv wordpress/* /var/www/ #mn dossier racine

Il ne reste plus qu'à aller sur votre backoffice pour que la mise à jour de la base de donnée se fasse.

Petite cerise sur le gâteau ; comme cette étape sera toujours la même, vous pouvez la sauvegarder dans une commande de raccourci comme je vous l'expliquais avec la commande alias.

nano ~/.bash_aliases

Dans le fichier, on ajoute cette unique ligne :

alias majwordpress='clear && cd /tmp && wget http://fr.wordpress.org/latest-fr_FR.zip && unzip latest-fr_FR.zip && rm -rfv wordpress/wp-content/ && rm -fv wordpress/wp-config-sample.php wordpress/rreadme.html wordpress/license.txt && cp -rfv wordpress/* /var/www/ && echo "Mise à jour de Wordpres faite"'

Il ne reste plus qu'à désactiver toutes vos extensions, lancer la commande, et tout se fera en quelques secondes :

majwordpress

Si vous avez des ajouts à faire, ou des remarques, n'hésitez pas à le faire savoir.


Partager par mail ou sur Google Twitter Identi.ca facebook SeenThis
flattr this!
  • http://twitter.com/poupi Ghislain Phu

    Il est également possible de passer par Git (ou SVN). Ce n’est pas forcément plus simple pour un « utilisateur classique », mais pas forcément plus compliqué non plus. J’imagine qu’en lisant la doc, on doit être capable d’écrire un .gitignore et de faire un clone en moins de dix minutes.

    L’avantage, c’est que comme Git fonctionne de manière incrémentale, on va pouvoir le lancer régulièrement sans qu’il se passe quoi que ce soit s’il n’y a pas de mise à jour disponible (là où le script proposé dans l’article re-téléchargera le zip pour l’extraire à chaque fois). Du coup, c’est peut-être un poil plus pratique dans une optique d’automatisation (un git pull en cronjob et c’est terminé).

    L’autre aspect sympa c’est qu’en utilisant les git tags on va pouvoir passer d’une version de WordPress à une autre en un claquement de doigts. Pour les développeurs, ça veut dire être capable de tester les plugins et thèmes facilement sur les anciennes versions. Pour les autres, ça va permettre de revenir à une version plus ancienne en cas de souci (si on a un plugin important ou un thème qui ne fonctionne pas sur la dernière version par exemple).

    Le dépôt Git : https://github.com/WordPress/WordPress
    Le dépôt SVN : http://core.svn.wordpress.org/

  • http://neosting.net/ NeoSting

    Merci pour ces liens pratiques et ce commentaire. Oui, c’est une autre méthode que je n’ai pas encore expérimentée, et même si elle est plus riche en praticité et plus souple, elle est aussi de mon point de vue plus « contraignante » sur un serveur de prod. Et puis, avant d’utiliser un tel système, il vaut mieux avoir expérimenté avant et connaître plutôt bien le fonctionnement. Il m’arrive d’installer quelques logiciels sur mon PC linux en Git, mais j’y réfléchirais à deux fois avant de le faire sur un serveur de prod.

    La méthode proposée ici est juste native Linux, donc d’un grand classique mais demande aussi d’avoir une sauvegarde avant, de la structure et de la bdd.