Téléchargement automatique de WordPress et modules

Nous installons tellement de WordPress en local ou en ligne que nous avons créé un petit script qui automatise tout ça. L’opération est trop chronophage et pour peu que votre connexion soit un peu lente ou que vous ayez un quota internet (bonjour à nos amis quebecois), cela devient fastidieux.

L’avantage de notre solution est que c’est le serveur qui va télécharger tous vos fichiers. Puis il va décompresser les archives (wordpress et modules) et préparer l’installation.

Les modules pré-installé dans la v1 font partie de ceux que nous utilisons le plus, c’est à dire :

  • WordPress SEO
  • cForms
  • Redirection
  • Google XML Sitemap
  • WP to Twitter
  • W3 Total Cache
(amené à changer)

 

La version téléchargé par le script est la 3.3.1. Vous pouvez bien sur modifier le fichier. La ligne 4 permet de modifier la version de WordPress que vous voulez. Pour ajouter, supprimer ou modifier les versions des modules téléchargés, il faudra un peu plus fouiller dans le code. Le tout a été codé rapidement. Il peut être grandement amélioré.

Téléchargez le script : LIJE WordPress Downloader v3.1

Puis placez le dans le dossier dans lequel vous souhaitez installer le tout.

PS : notez qu’il vous faut PHP5.

 

Edit v2.1 :

Le script a été mis à jour pour améliorer le téléchargement des modules et de WP ainsi que de permettre une modification plus facile de l’ensemble. Au programme :

  • possibilité de modifier la liste des modules. Pour cela, vous avez deux possibilités : soit vous donnez l’url de l’archive en .zip, soit vous donner l’url de la page du plugin sur wordpress.org.
  • possibilité de modifier le User Agent (modification mineure par rapport à l’utilisé du script)
  • la dernière version française de WordPress est téléchargée automatiquement sans avoir besoin de mettre à jour l’url de l’archive
Edit v3 :
  • téléchargement aléatoire d’un des thèmes dont l’url est fournie dans la configuration du script
  • possibilité de ne pas télécharger de thème (mettre $instal_theme à false)
  • lien pour supprimer tous les fichiers du dossier si cela est nécessaire

 

Edit v3.1

  • possibilité de configurer les accès à la bdd dès la première étape (optionnel)
  • légère modification graphique
  • redirection automatique une fois les opérations terminées
  • téléchargement de 3 autres modules : BackWPup, Broken Link Checker, Login LockDown

 

L’installation complètement automatisée n’est pas (encore?) possible. Elle nécessite de gérer beaucoup plus d’informations. Le script peut de cette façon être utilisé sur un dédié, sur un mutu, chez OVH ou sur n’importe quel autre type de serveur. La création de la bdd et l’installation pure reste donc à faire manuellement.
La configuration du script se fait tout en haut du fichier.

N’hésitez pas à me contacter si vous rencontrez un bug ou une amélioration à y apporter et de Plusser la page si le script vous a été utile ;)

 

Voici le rendu (de la v1) :

telecharger wordpress automatiquement

telecharger wordpress automatique

[…]

 

Visuel de la v3.1 :

wordpress configuration sql

Mise en place d'une backup ftp sur serveur dédié OVH
Prestashop : nombre de produits par page

16 Comments on “Téléchargement automatique de WordPress et modules”

  1. C’est génial! Ca marche vraiment bien. Un grand merci à l’équipe LIJE créative, toujours très professionnels et rapides!

  2. Merci pour ce script qui va faire gagner beaucoup de temps à beaucoup de monde, surtout pour les fans de MFA. Après il est évident qu’il ne faut pas faire son barbare acnénique ! Bien moins lourd et bien plus performant qu’un autre script qui a été mis en ligne il y a peu ;)

  3. Bien vu ton script, très utile pour lancer un site tout prêt. Je l’ai d’ailleurs utiliser pour lancer 4 nouveaux WP, ça m’a fait gagner pas mal de temps. C’est également bien pratique de directement ajouter certains modules comme tu le proposes automatiquement.

  4. Bonjour ici Jérôme.

    Je ne saurais trop te conseiller de rajouter trois extensions utiles en sécurité et SEO :
    – BackWPup pour la sauvegarde automatique et programmée de tout le site (fichiers comme BD) ;
    – Broken Link Checker qui est tout aussi utile pour avoir un contenu frais et disponible que pour éviter les soucis SEO ;
    – Login LockDown pour verrouiller un peu les tentatives de hack de l’administration.

    Hormis ceci, ton script est très intéressant, merci pour le partage :)

    1. Bonjour,
      Merci pour la contribution, j’ai ajouté les modules au script.
      Pour le second script, il a tendance à générer beaucoup de mail lorsque certain robot crawl le site pour y chercher des fichiers qui n’y figurent pas.
      J’en profite pour mettre en ligne la nouvelle version dont les fonctionnalités sont listées plus haut.

      1. J’y ai pensé dans la nuit mais j’avais oublié de mentionner Akismet pour tout ce qui est spam.

        M’enfin, merci des ajouts et de ta recherche de perfection dans ton script. Bonne continuation ;)

  5. Quelques remarques :
    – la fonction currentFileName() peut être remplacée par __FILE__,
    – plus qu’à plugger l’API d’OVH pour en profiter et configurer les ndd dans la foulée (sur un multi domaines), la SOAPI est très maniable et facile d’utilisation, ya même un générateur de code,
    – enfin, si on veut vraiment vraiment automatiser sur des dizaines de domaines à la fois, on peut tout centraliser depuis un « master script » qui va se connecter en FTP aux différents espaces, copier coller une variante du script que tu as fait adapté à chaque domaine, et lancer ça, le tout en cURL.

    1. Merci pour le retour sur les fonctions, je vais corriger ça lors de la prochaine version.
      Je veux que le script puisse fonctionner pour tous les hébergeurs et sur tous les serveurs (mutu, dédié, etc).
      J’utilise effectivement l’API d’OVH pour l’achat de mes domaines par exemple, mais orienter le script de cette façon risque de le limiter pas mal non ?

      1. Alors il suffit de développer tout ça en mode orienté-objet.

        En gros tu prends ton code, tu le mets dans une classe, et tu mets ta fonction « setup_ovh() ».

        Et il te suffit de faire un switch sur une variable publique déclarée lors de l’instanciation du script (= un bouton à cocher pour l’utilisateur).
        A partir de ce switch, si c’est ovh, tu appelles setup_ovh(), si c’est tartampion tu appelles setup_tartampion(), etc.

        Ton code gagnera en portabilité et donc en pérennité si tu le mets en mode POO (déjà en mettant ta classe PHP dans un fichier, ton UI dans un autre fichier).

        Enfin bon ce n’est que mon avis, car au final, tant que ça fait gagner du temps, l’objectif est atteint ;)

        Keep going :)

      1. Vous avez eu le temps de le tester ? Un petit retour à me faire ?

        N’hésitez pas à me faire part de vos impressions afin que je puisse améliorer le script :)

      2. Hello,

        Désolé du retard, j’ai pas mal de travail en ce moment.

        J’ai effectivement testé le script. J’ai plusieurs remarques :
        – Il comporte plusieurs fichiers. Quand j’installe un WP (j’en installe toutes les semaines), je préfère utiliser un seul fichier même si l’idée du .ini est bonne. Je fais au plus simple et cela me permet de télécharger mon SSH en une fois ou de modifier les paramètres ou le script d’un traite.
        – Tu oublies de ‘unlink’ ton data.ini et ton script. Si quelqu’un sait que tu l’utilises, il relance le script et écrase toute ton installation.
        – Ton script s’appelle index.php, ça ne fonctionne pas pour un WordPress il me semble. L’installation va écraser ton script et donc stopper les opérations en cours non ?
        – Ton fichier css charge des images mais je n’ai pas de dossier images dans le zip téléchargé de github. Un oubli de ma part ?
        – Tu as un bug quand tu installes WP dans un dossier. J’ai testé en local, je suis dans wamp/www/WP-Quick-Install sauf qu’il m’a tout mis dans wamp/www/. En général, je place le fichier là ou je souhaite installer mon WordPress.

        Les plus :
        – Ta fonction supprimer le contenu de base est vraiment top.
        – La gestion des champs vide est bien faite.
        – Ta progress bar est cool pour avoir un visuel sur l’avancement de l’installation.

        PS : tu m’as fait perdre l’index.php de mon WAMP :p

        En tout cas, tu as déjà bien bossé dessus, bravo ;)

      3. « – Ton script s’appelle index.php, ça ne fonctionne pas pour un WordPress il me semble. L’installation va écraser ton script et donc stopper les opérations en cours non ?

        – Tu as un bug quand tu installes WP dans un dossier. J’ai testé en local, je suis dans wamp/www/WP-Quick-Install sauf qu’il m’a tout mis dans wamp/www/. En général, je place le fichier là ou je souhaite installer mon WordPress. »

        Je le précise dès le départ dans la page d’installation : Ce fichier doit obligatoirement se trouver dans le dossier wp-quick-install. Il ne doit pas être présent à la racine du projet ou de votre FTP.

        Il faut obligatoirement laisser le fichier index.php dans le dossier wp-quick-install (ou un dossier d’un autre nom, mais dans un dossier). Il ne faut pas mettre juste le fichier index.php à la racine du projet !

        En gros, le fichier index.php doit se trouver dans wamp/www/projet/wp-quick-install/index.php

        – Tu oublies de ‘unlink’ ton data.ini et ton script.
        Le fichier data.ini est protégé et il n’est pas accessible via un navigateur. C’est volontaire de le laisser pour pouvoir ré-utiliser le formulaire. Si on souhaite installer plusieurs wordpress dans plusieurs dossiers au même niveau, c’est bien pratique.

        « – Ton fichier css charge des images mais je n’ai pas de dossier images dans le zip téléchargé de github. Un oubli de ma part ? »

        Non, c’est un oubli de ma part :)

      4. Le problème de laisser les fichiers peut représenter une faille. C’est pour cela que je les supprime toujours. Dans ton cas, c’est différent comme tu présumes que les utilisateurs du script vont installer plusieurs WordPress sur le même serveur.
        Au fait, tu as testé ton script sur un dédié ? Si je le met dans /home/monsite/www/wp-quick-install/ et que j’oublie de renseigner le champ « dossier de destination » (ou que tout bêtement je raisonne racine du site = racine de l’installation et que je ne renseigne rien), ça va tout me mettre à la racine du serveur ?

  6. Le script a été testé sur un serveur local, mutualisé et dédié. Dans le cas de cette configuration /home/monsite/www/wp-quick-install/ et si le dossier de destination est vide, le WordPress sera installé à ce niveau /home/monsite/www/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *