Formation « Développer un thème WordPress sur mesure »

Pourquoi travailler son site localement ?

Lecture : 6 minutes • 33

Beaucoup travaillent leur site en ligne par mesure de simplicité. Mais lorsque l’on en vient à développer des thèmes sur WordPress, il est préférable d’opter pour un environnement de développement local.

Certains d’entre vous se demandent quelle est la meilleure façon de travailler sur son site :

  • Installer le site directement sur l’hébergement et travailler depuis Internet ?
  • Installer un serveur local sur son ordinateur et travailler depuis sa machine ?

Nous allons voir que la bonne pratique est la deuxième solution :  travailler en local avant de mettre son site en ligne à la vue de tous.

Serveur local

Définition

Un serveur local permet de faire tourner un site Internet sur son propre ordinateur et simule au mieux les conditions réelles d’un serveur d’hébergement web. En général un serveur local est composé d’Apache (ou Nginx) qui traite les requêtes (accès à une URL), de MySQL pour les bases de données et PHP pour interpréter le code et générer du HTML.

Traduction : Local server environment

Les défauts du travail en ligne

Lorsque vous commencez un site, il est tentant de l’installer directement en ligne et de travailler au travers de son FTP.

Cette technique ne fonctionne que si vous travaillez seul.

Et le jour où vous décidez de rendre enfin le site accessible aux internautes, et que quelques semaines plus tard vous avez besoin de faire des modifications, vous êtes bloqué : des modifications à chaud risquent d’entrainer des bugs et bloquer la navigation.

Si votre client vend des produits depuis son site et que vous faites une boulette, il ne va pas être content de son manque à gagner !

Il est essentiel d’avoir une approche propre et efficace lorsque l’on développe des sites pour son client ou pour soi-même, c’est pour ça que nous allons travailler pour le moment en local !

Romain est développeur PHP et WordPress depuis des années et c’est également son conseil :

Romain Etchegoyhen
Développeur PHP
Expert WordPress

Le conseil de Romain Etchegoyhen

Développeur Web

Attention à ne jamais faire de modification directement en production, il vaut mieux avoir une copie locale du site ou un environnement dit de « staging » afin de tester en amont les modifications et bien veiller à ce qu’elles ne cassent pas le site !

Suivez-moi sur Twitter : @snapeuh • Mon site : Site personnel

Travailler en local

Il est essentiel de pouvoir coder sur une instance isolée de son site, afin de pouvoir faire tous les tests nécessaires avant la mise en production.

Si je devais faire une métaphore, je dirais que travailler en ligne c’est comme réparer un avion en plein vol. Ça ne se fait pas pour des raisons évidentes. On attend donc que l’avion soit au sol, dans son hangar, pour lui faire tous les ajustements nécessaires.

Travailler en local, c'est plus agréable
Travailler en local, c’est plus agréable

Les avantages du travail en local

Le principal avantage est que vous pouvez travailler une copie de votre site, pendant que le vrai reste fonctionnel en ligne. Vous pouvez tester, casser, ajouter du code : le site en ligne n’est pas impacté et ne risque pas l’interruption.

Vous pourrez créer du faux contenu en local pour effectuer tous types de tests les plus extrêmes et vous assurer du bon fonctionnement du code. Vous pourrez par exemple passer autant de fausses commandes sur WooCommerce que nécessaire ou encore créer des faux articles via un outil comme FakerPress.

Il faut voir votre site local comme un brouillon de votre site réel.

Enfin, travailler en local ne requiert pas Internet ! Du coup vous pouvez continuer de travailler dans le train, dans l’avion où à la campagne chez mémé Ginette.

Les problématiques apportées par le travail local

On va voir que travailler en local amène aussi son lot de problématiques :

Avoir deux instances du même site

Du coup avec cette méthode on se retrouve avec 2 sites différents : un sur l’ordinateur et un en ligne. Les modifications effectuées sur l’un ne se reflètent pas automatiquement sur l’autre. Lorsqu’un contenu est modifié en ligne, il n’est pas répercuté sur la base de données locale. Idem pour les extensions, si vous en installez une en ligne il faudra également l’installer en local.

Comment synchroniser le site local et en ligne ?

Pour envoyer les fichiers modifiés vers le site en ligne, il suffit d’un logiciel FTP. Mais sur le long terme en effet cette solution peut être un peu limitante.  Sachez simplement pour le moment qu’il existe des outils pour automatiser l’envoi des fichiers modifiés vers le site en ligne.

Concernant la base de données, il existe des extensions comme Migrate DB Pro pour facilement les synchroniser. Elle vaut son prix mais peut s’avérer très vite nécessaire. Une alternative gratuite est VersionPress.

Je ne m’attarde pas sur le sujet pour l’instant, dans cette formation nous n’aurons pas ces problèmes. Si vous êtes une agence intéressée par l’Industrialisation de sites avec WordPress, j’ai une formation pour vous !

Quel logiciel pour travailler en local ?

Logos des logiciels de serveur local

Il existe aujourd’hui principalement 3 solutions mais selon moi la plus efficace sera la première :

1. Local

Local est un logiciel permettant de créer des serveurs locaux spécialement pour WordPress et d’installer le CMS en un clic. Il s’est très vite imposé car il marche bien et permet de gagner énormément de temps.

L’interface de Local By Flywheel

Initialement payant, il a rapidement été racheté par la la société d’hébergement spécialisée WordPress FlyWheel, puis WPEngine qui le proposent désormais gratuitement. D’ailleurs si vous êtes hébergé chez eux, sachez qu’ils ont ajouté une fonctionnalité pour envoyer le site en ligne en un clic ! Pratique !

On va s’occuper de télécharger et installer Local dès le prochain cours.

2. Mamp, Wamp, Easy PHP

Plus classiquement, il existe des logiciels permettant de créer sans trop d’efforts un serveur local sur votre machine. Parmi eux MAMPWAMP et Easy PHP.  Ils ne sont pas dédiés qu’à WordPress et s’avéreront utiles si vous utilisez d’autres plateformes.

Chacun propose une version gratuite et une version payante. Nous n’aurons pas besoin de passer à la caisse pour cette formation : la version gratuite suffira amplement.

Capture d'écran de Mamp
Mamp Pro en action

D’expérience je sais que MAMP est celui qui pose le moins de soucis sur Windows et j’y trouve l’interface plus sympathique.

Mes étudiants ont dans le passé rencontré pas mal de soucis avec WAMP et Easy PHP selon leur version de Windows. Il faut notamment bien vérifier que le Microsoft Visual C++ Redistribuable soit installé sur la machine car il contient des librairies nécessaires au bon fonctionnement du serveur.

Un autre souci souvent rencontré est le conflit de ports, notamment le port 80. Cette erreur apparait si Skype (qui utilise aussi ce port) ou un logiciel antivirus est lancé.

Il n’y a pas ces soucis avec Local car votre site est dans une bulle contenant un système virtuel (un système dans le système en quelque sorte).

Conseil

Même si vous êtes un habitué de ces logiciels, je vous conseille de tenter l’expérience avec Local pour cette formation !

3. Installer un serveur natif sur le système

Une troisième solution est d’installer le nécessaire directement sur votre machine (sur Mac ou Linux) : un serveur Apache, MySQL pour la base de données et PHP. Apache est déjà présent sur les systèmes, il ne reste qu’à installer les deux autres.

Le principal avantage est la rapidité de votre serveur. Cette technique est notamment utile lorsque vous développez des sites & applications pas exclusivement basés sur WordPress.

Cette solution est un peu moins facile à mettre en place mais si l’approche vous intéresse je vous conseille le tutoriel d’EdenPulse, à réserver toutefois aux développeurs les plus motivés.

D’ailleurs son article date d’avant l’arrivée de Local. Voyons aujourd’hui son avis sur la question :

Matthieu Bousendorfer
Geek Master
Spécialiste UX

Le conseil de Matthieu Bousendorfer

Directeur Artistique chez WP Media

Le natif est intéressant uniquement dans le cas où l’on cherche les meilleures performances, qu’on se limite à apache, et qu’on fait autre chose que du WP. L’intérêt est aussi d’éviter les problèmes avec un deuxième apache installé à coté de celui déjà présent dans macOS, ce qui peut aboutir à des conflits. Mais la version d’apache du système est rarement la dernière sous macOS.

En ce qui concerne Flywheel, le fait que l’on puisse basculer d’une configuration à une autre simplement avec est un gros avantage qui justifie à lui seul cet outil. L’interface utilisateur simplifie largement la configuration : plus besoin d’être un expert et comprendre la stack complète pour arriver à quelque chose rapidement.

Suivez-moi sur Twitter : @edenpulse • Mon site : Site personnel

Travailler sur un projet en équipe

En équipe il faut encore s’organiser autrement : bien souvent plusieurs personnes travaillent en même temps sur le même site. Il n’est alors pas installé en local mais sur un serveur de l’entreprise afin que chacun puisse y accéder au besoin.

Un autre souci de taille s’impose : que se passe-t-il si plusieurs développeurs modifient les mêmes fichiers en même temps ?

C’est là qu’entre en jeu Git, qui permet de versionner votre code, c’est-à-dire créer des enregistrements à des étapes clés (un peu comme lorsque l’on sauvegardait manuellement un jeu vidéo jadis, avant d’entamer une partie difficile où d’affronter un boss).

Git permet également, lorsque plusieurs personnes éditent un fichier, de fusionner toutes les modifications automatiquement. Et si d’aventure 2 développeurs ont modifié la même ligne, ils sont informés du conflit et peuvent le régler facilement en indiquant quelle version conserver.

Si à la base Git se manipule en ligne de commande, il existe toutefois une application native bien pratique.

Capture d'écran de l'application Mac de GitHub
L’application Mac de GitHub

Vos codes peuvent ensuite être hébergés hors site sur les plateformes Github ou Bitbucket par exemple, de manière privée ou publique, si jamais vous faites un projet open source que vous voulez partager avec la communauté.

D’ailleurs c’est là que j’héberge les fichiers des exercices de cette formation !

Et même si vous travaillez seul, je vous conseille de versionner votre code. En cas de souci vous pourrez toujours revenir à une version plus ancienne ou retrouver un bout effacé. Personnellement tous mes projets sont « GITtés » et hébergés sur Bitbucket et Github pour dormir sur mes deux oreilles la nuit.

Mais cette partie n’est pas au programme ici car elle est traitée dans la formation Industrialisation de sites avec WordPress, que je vous recommande si vous devez travailler en équipe.

Le saviez-vous ?

WordPress utilise SVN plutôt que Git pour versionner son coeur et permettre aux équipes de bénévoles de participer au projet. SVN est un équivalent de Git, un peu plus ancien, et reconnu pour sa complexité.

Si vous venez à faire une extension WordPress, vous pourrez utiliser Git pour le développement mais il faudra passer par SVN pour la mise en ligne sur le répertoire des extensions.


Alors maintenant que vous êtes convaincu de travailler en local (enfin j’espère) nous allons continuer en installant Flywheel et notre premier site WordPress.

33

Questions, réponses et commentaires

  1. Ahmed

    Le 4 décembre 2018

    Bonjour,

    J ai installé Flywheel, mais lorsque j essaie d accéder au site où à l admin, il me signale un erreur EPREM … rendant impossible la demande.

    J ai essayé de régler le problème, mais je n’ ai pas réussi.

    Pouvez vous m’ aider ?

    Merci

    1. Maxime BJ

      Le 7 décembre 2018

      Est-ce que tu peux m’envoyer une capture d’écran via le formulaire contact du site afin de voir l’erreur ?

  2. Evard joël

    Le 5 mars 2019

    Bonsoir, j’ai cette erreur qui est apparut hier ! Votre installation PHP ne dispose pas de MySQL. Extension requise pour WordPress. Avez-vous un remède ? Merci d’avance.

    1. Maxime BJ

      Le 6 mars 2019

      De ce que je lis sur Internet visiblement c’est lorsque tu passes en PHP 7 et que le module MySQL n’est pas compatible. Tu travailles avec quel logiciel localement ? Local by Flywheel, Mamp ?

  3. Oliv

    Le 7 mars 2019

    Bonjour, je teste le travail en local avec MAMP, ça fonctionne plutôt bien. Par contre je me pose des questions pour faire migrer mon site lorsqu’il sera fini. Lorsque je vais dans les paramètres généraux de mon WP créé en local j’ai à Adresse web de WordPress (URL) et Adresse web du site (URL) une adresse de type http://nom-donné-à l-hote:8888 alors que normalement une fois migré cela devrait être monndd.fr. Comment cela va-t-il se passer à la migration, les liens ne vont-ils pas êtres perdu ? Je teste aussi la version Pro qui devrait importer et exporter un site wordpress (pour l’instant j’ai une erreur -3120 et je n’y parviens pas). Merci

    1. Maxime BJ

      Le 8 mars 2019

      Je te conseille de bosser avec Local By Flywheel c’est bien plus pratique. Pour la migration, je n’ai pas encore rappatrié l’article ici mais voici celui que j’avais écrit sur GeekPress, il explique tout dont le changement d’URL : http://www.geekpress.fr/comment-mettre-en-ligne-un-site-wordpress-local/

  4. Emy D.

    Le 27 mars 2019

    Bonjour, je suis allée sur Local by Fly wheel et voudrais y insérer un site WP Premium de Studiopress. FLywheel propose trois thème, mais celui là. Impossible d’ajouter un thème dans appareance. Pouvez-vous me conseiller et m’indiquer la procédure… j’ai plusieurs sites à faire tourner en local et je découvre cette pratique… j’avais essayé en son temps avec WAMP sans succès. Merci de votre réponse

    1. Maxime BJ

      Le 27 mars 2019

      Alors ce n’est pas en rapport avec Local. WordPress propose par défaut les 3 derniers thèmes officiels pour toute nouvelle installation. Pour ajouter un thème premium c’est toujours la même pratique : mettre le dossier du thème dans wp-content/themes ou l’importer depuis le menu Apparence > Thèmes > Ajouter > Téléverser un thème.

      Pour consolider les bases de WordPress, je te recommande ma formation débutant sur https://wpchef.fr/wordpress

  5. Aurélie D

    Le 2 juillet 2019

    Bonjour,
    Pourriez-vous me dire s’il est possible de créer un site un local et qu’il soit visitable par le client.
    À ce que j’ai pu voir, Local by Fly wheel, le propose via un lien. Déjà testé avec un client, ce pendant le client ne pouvait consulter le site que lorsque j’étais connecté sur Local by Fly wheel. Donc pas super pratique, surtout quand le client souhaite le consulter le week-end…

    1. Maxime BJ

      Le 2 juillet 2019

      Dans ce cas il vaut mieux migrer le site en ligne (dans un sous-dossier par exemple, ou dans une lune sur o2switch). Il y a des extensions pour ça, par exemple Migrate DB Pro ou All-in-one WP Migration pour t’aider dans cette tâche.

  6. marine

    Le 16 octobre 2019

    Bonjour,
    Je travaille actuellement sur un site WP, que j’ai mis en local sur wampserveur, et je souhaiterai qu’une autre personne puisse travailler sur ce wordpress (changement de code, visuels…) Comment lui donner accès au fichiers et serveur depuis un autre ordinateur ? afin que nous puissions travailler dessus sans avoir a le mettre en ligne.

    Merci pour votre retour et bonne continuation Marine

    1. Maxime BJ

      Le 16 octobre 2019

      Dans ce cas ce serait plus simple de travailler en ligne, dans un sous-dossier sécurisé. Sinon il y a NGrok, intégré par défaut dans Local by Flywheel qui permet à une personne externe d’accéder à ton site via Internet par l’intermédiaire d’une URL provisoire. Mais ça voudrait dire qu’il faut que ton ordinateur soit allumé constamment.

      Mais s’il souhaite changer du code, alors il vaut mieux qu’il travaille en local lui aussi de son côté, et qu’il versionne son code via git. Bref comme tu le comprends, ça prend une toute autre dimension, et donc une organisation plus poussée

  7. Kambro

    Le 25 novembre 2019

    Bonjour,
    Merci pour cet article fort intéressant.
    j’ai un site hébergé chez o2Switch, et j’ai créé une lune afin d’avoir un environnement test pour vérifier les modifications avant de les mettre sur le serveur principal.
    Par ailleurs, j’ai un compte Git pour que je puisse travailler en équipe.
    Y a-t-il moyen de synchroniser la lune avec le principal dès que les travaux s’avèrent réussis ? Je vous remercie d’avance. Kambro

    1. Maxime BJ

      Le 25 novembre 2019

      Il faudrait demander à o2swtich s’ils permettent de faire du SSH sur leurs serveurs afin de pouvoir lancer des commandes git et de mise en production. Auquel ca ce serait possible. Ils ont aussi une interface nommée WPTiger qui te permet de gérer sur un seul des interfaces de staging/préprod et du coup ça te permettrait même de t’affranchir d’une lune. Pour les données j’utilise WP Migrate DB Pro de Delicious brains pour synchroniser les bases local / prod / prépod facilement.

  8. Claire

    Le 4 septembre 2020

    Bonjour,

    J’ai un site local WP avec Mamp et j’aimerais passer sur localflywheel pour pouvoir faire voir mon site en ligne à ma cliente.
    Je n’arrive pas à faire fonctionne ngrok.

    Merci d’avance pour l’aide ♥ ça se complique un peu 😉

    1. Maxime BJ

      Le 4 septembre 2020

      Ngrok même s’il marche, n’affichera pas correctement les images à ton client. Du coup le mieux c’est de faire une migration dans un dossier protégé (ou avec un plugin de maintenance) comme ça tu donnes le mot de passe seulement à ton client, et il pourra vérifier le site. C’est le plus simple.

  9. Delphine V.

    Le 7 novembre 2020

    Bonjour, lorsqu’on on a un site ecommerce qu’on veut complètement retravailler, comment en exporter une copie en local et garder l’autre en ligne? J’ai local byflywheel. Merci d’avance

    1. Maxime BJ

      Le 9 novembre 2020

      Il existe plusieurs solution pour migrer ou rappatrier un site, et je n’ai pas encore écrit le cours à ce sujet mais voici quelques informations : tu peux utiliser WP All in One Migration par exemple, ou plus pro encore : WP Migrate DB Pro de Delicious Brains. Du coup tu vas pouvoir rappatrier le site en local. Par contre tu ne pourras pas faire la procédure inverse, au risque d’écraser des commandes. Là, il va falloir faire au cas par cas et c’est un peu plus compliqué.

      1. Kiara

        Le 5 février 2021

        Bonjour,

        Après de mettre en ligne mon site web WP créé localement, est -il nécessaire de garder la version local. En cas où je voulais changer mon PC, comment puis-je avoir le contrôle sur mon site.

        Merci

        1. Maxime BJ

          Le 6 février 2021

          Tu peux conserver une version locale oui mais il faut bien penser que le site en ligne sera la source de vérité en terme de source de vérité. L’idéal c’est de migrer le site en ligne vers le local à chaque fois que tu voudras y apporter des modifications (autre que du simple contenu, qui se fera en ligne).

  10. jay duboll

    Le 27 septembre 2021

    Je poserai tout de meme les limites suivantes. Il faut impérativement etre en mesure de reproduire des conditions de prod souvent liées à l’hébergeur ( version PHP, parametres PHP, version MySQL ou MariaDB, paramètres apache. Exemple typique, quota DB chez OVH sur les offres sous dimensionnées. maxfilsesize, memory_limit. Donc OK avec tout en posant comme précédent qu’il faut travailler en condition réel de miroir de la prod ou on va expoliter le site.

    1. Maxime BJ

      Le 28 septembre 2021

      WordPress n’a pas besoin d’autant de rigueur. Si la version de PHP ou SQL n’est pas exactement la même, et peu importe le serveur, ça fonctionnera car c’est un CMS relativement souple. C’est toujours mieux en effet de le faire surtout pour un gros site. Mais sinon, dans 99% des cas, on ne s’embête pas et on peut laisser la configuration par défaut. En général, les bons hébergeurs n’imposent pas de limite dans le SQL et les variables PHP sont déjà configurées pour être hautes. Il n’y a qu’OVH qui soit aussi pingre sur le sujet, c’est pour cela notamment que je les déconseille (ça, et le support inexistant).

  11. Damien

    Le 26 octobre 2021

    Bonjour Maxime (et les autres ^^ )

    Déjà, félicitations pour cette formation, j’en reviens limite à être déçu de ne pas pouvoir acheter un compte premium tellement que tu mérite d’être récompensé pour tout ce travail excellent et didactique. Codeur “brut” à la base, t’es en train de me réconcilier avec WordPress (que je trouvais trop limité avec les thèmes, justement 😉 ). Ma question est la suivante : que pense-tu d’un environnement créé avec Docker ? Surtout que WP a une image officielle dans Docker, j’ai fais une petite install hier, tout a l’air de fonctionner pas trop mal, mais avant d’aller plus loin, il y a cette décision à prendre de :
    – soit continuer avec Docker ;
    – soit passer à Local.

    Aurais-tu une suggestion ?

    1. Maxime BJ

      Le 26 octobre 2021

      DevKinsta utilise Docker (Local le faisait avant, mais a fait marche arrière à cause d’une mauvaise gestion des environnements virtuels). Avec DevKinsta tu auras donc toute la simplicité que l’on trouve à Local, mais avec un environnement Docker que tu pourras personnaliser en plus.

      Merci pour les compliments !

  12. MG

    Le 26 juillet 2022

    Bonjour, est-il possible de créer un site WP en local pour un client, puis lors du rendu du site le passer en ligne en lui donnant un accès afin qu’il puisse le modifier par lui même ?

    1. Maxime BJ

      Le 27 juillet 2022

      Oui tout à fait, c’est justement la procédure “standard”. Tu créées le site en local avec LocalWP ou DevKinsta, et puis tu migres le site en ligne lorsqu’il est prêt. On va voir ça dans la formation justement.

      1. MG

        Le 28 juillet 2022

        Merci pour votre retour !

  13. Malia

    Le 30 octobre 2022

    Bonjour je travail un blog en local et je me demandais à partir de quand je devrais le mettre en ligne? En vous remerciant par avance

    1. Maxime BJ

      Le 30 octobre 2022

      Eh bien ça dépend ! Lorsque tu penses qu’il est assez abouti, tu peux le mettre en ligne (mais pas forcément consultable). Ca va dépendre de s’il existe un site déjà en ligne à remplacer. Auquel cas il faut le mettre en ligne au dernier moment ou le mettre sur un hébergement/domaine provisoire pour vérifier que tout va bien avant la publication officielle. Dans tous les cas, une fois le site en ligne, il faudra continuer à le travailler en ligne et plus en local.

  14. Damien

    Le 27 mars 2023

    Bonjour, je découvre votre tuto, c’est très clair je me réjouis d’avance de tout ce que je vais apprendre grâce à vous, merci !
    Question : j’ai vu que certain cours n’étaient pas encore disponible, mais je vois aussi que cette formation a commencé en 2018. Votre cours est il toujours mis à jour ?

    Merci !

    1. Maxime BJ

      Le 28 mars 2023

      Les cours sont à jour en effet. A part la formation ACF où les captures d’écrans sont issues de la V5, mais en substance, les menus et fonctionnement n’ont pas changé. Quant aux cours non disponibles, je ne sais pas encore quand je vais pouvoir les avancer.

  15. Dada Love

    Le 23 mai 2023

    Bonjour, je m’arrache les cheveux et suis sûr que tu vas pouvoir répondre à cette question qu’on est beaucoup à se poser : comment peut-on travailler sur un même site en local avec Localwp depuis différents postes (en utilisant un dossier partagé type iCloud) ? Ce serait tellement confortable et satisfaisant ! 🙂

    1. Maxime BJ

      Le 23 mai 2023

      Dans ce cas il vaut mieux travailler en ligne directement. Tu peux soit :
      – le mettre en ligne le site sur le nom de domaine prévu et mettre une extension de page de travaux pour bloquer l’accès aux visiteurs
      – le mettre en ligne en “préprod” sur un autre domaine ou sur un sous-domaine s’il y a déjà un site sur le domaine principal (voir les lunes chez o2switch par exemple)

Laisser un commentaire