Si vous développez avec WordPress, il est préférable de configurer un environnement local où vous avez installé un serveur, un outil de base de données et quelques sites Wordpress ainsi que d'autres outils dont vous avez besoin. C'est bien si vous ne travaillez que sur quelques projets. Mais quand ils se multiplient, des problèmes surviennent. Et aussi les maux de tête liés à la maintenance de plusieurs environnements, car le client a une configuration différente de la vôtre.
Pour contourner ce problème, nous pouvons utiliser ce que nous appelons Vagrant. Vagrant est un outil pour travailler avec des environnements virtuels. Il fournit un moyen simple de configurer un environnement de développement local avec quelques commandes, et vous pouvez répliquer une configuration complète autant de fois que vous le souhaitez, facilement et sans avoir à tout installer manuellement. Pour exécuter Vagrant, vous devez définir un ensemble de règles. Vagrant configure votre machine virtuelle en fonction de ces règles. Vagrant a besoin de deux fichiers pour cela :Vagrantfile, qui indique à Vagrant le type de matériel dont la machine virtuelle a besoin, et un fichier de déploiement, qui indique à Vagrant quoi faire sur la machine virtuelle.
Étant donné que Vagrant fonctionne avec des environnements virtuels, vous avez besoin d'un logiciel de machine virtuelle pour exécuter Vagrant. Pour nos besoins, nous utiliserons la Virtualbox Open Source.
Installer VirtualBox
Rendez-vous sur la page de téléchargement de Virtualbox et téléchargez un fichier binaire correspondant à votre hôte invité. (L'hôte invité est le système d'exploitation à partir duquel vous exécuterez votre environnement de développement.) Installez Virtualbox.
Installer Vagrant
Téléchargez le binaire correspondant à votre système d'exploitation depuis la page de téléchargement de Vagrant et installez-le.
Pour tester si son installation a réussi, tapez la commande suivante dans la ligne de commande de votre système d'exploitation.
$ vagrant -v
Installation du plug-in de mise à jour Vagrant Hosts
Le plug-in vagrant-hostupdater modifiera le fichier d'hôtes de votre système d'exploitation afin que les domaines configurés par Vagrant fonctionnent. Pour l'installer, exécutez la commande suivante
$ vagrant plugin install vagrant-hostsupdater
Redémarrez votre système d'exploitation après avoir installé Vagrant/Virtualbox afin qu'il n'y ait pas de problèmes de réseau.
Installer Git
Linux
Nous aurons également besoin du contrôle de version Git pour ce tutoriel. Si vous ne l'avez pas installé, installez-le en utilisant la commande suivante si vous avez une distribution Debian/Ubuntu
$ sudo apt install git
ou si vous avez Fedora
$ sudo dnf install git
ou si vous avez CentOS/RHEL
$ sudo yum install git
Vérifiez la version de Git installée via la commande suivante
$ git --version
Vous verrez quelque chose comme
$ git version 2.20.1
Vous devez configurer Git via les commandes suivantes.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
Windows
Pour installer Git sous Windows, rendez-vous sur la page de téléchargement de Git et installez le binaire.
Mac OS
Si vous avez installé homebrew, vous pouvez installer Git via la commande suivante.
$ brew install git
ou vous pouvez télécharger un package binaire depuis la page de téléchargement de Git et l'installer.
Installer des vagabonds variables
Au lieu de créer une configuration Vagrant à partir de zéro, nous utiliserons Varying Vagrants Vagrant (VVV) - une configuration Vagrant open source visant spécifiquement à créer des environnements de développement WordPress. Un VVV standard configurera votre machine virtuelle basée sur Ubuntu 18.04 avec le serveur Nginx, la base de données MariaDB, PHP, WP-CLI, Node.js, MailHog, Composer, memcached, phpMyAdmin, git et divers autres outils. VVV vous donnera plusieurs installations WordPress par défaut, l'une d'entre elles étant la dernière version à la pointe de la technologie pour vous aider à expérimenter.
La première étape consiste à cloner le référentiel Git de VVV dans un répertoire local de votre système.
$ git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vvv
Ici, nous clonons la branche master du référentiel sur le système. Si vous souhaitez des mises à jour plus rapides, vous pouvez utiliser la branche develop.
VVV de démarrage
Accédez au répertoire dans lequel vous avez cloné VVV.
$ cd vvv
Lancez l'environnement Vagrant qui installera la machine virtuelle et configurera tout.
$ vagrant up
Ce processus peut prendre un certain temps alors soyez patient. Votre mot de passe root peut vous être demandé lors du processus requis pour configurer le fichier hosts de votre système.
Remarque pour les utilisateurs de Windows 8/10
Si vous êtes sous Windows, vous pouvez obtenir l'erreur suivante
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6", "--type", "headless"]
Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only
Ethernet Adapter #3' (VERR_INTNET_FLT_IF_NOT_FOUND).
VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
Notez l'adaptateur mentionné ici :
VirtualBox Host-Only Ethernet Adapter #3
Ouvrez le Panneau de configuration>> Centre Réseau et partage. Cliquez maintenant sur Modifier les paramètres de l'adaptateur. Faites un clic droit sur l'adaptateur dont le nom ou le nom du périphérique correspond à Adaptateur Ethernet VirtualBox Host-Only # 3 et cliquez sur Propriétés . Cliquez sur Configurer bouton.
Cliquez maintenant sur le Pilote languette. Cliquez sur Mettre à jour le pilote . Sélectionnez Parcourir mon ordinateur pour les pilotes . Choisissez maintenant Me laisser choisir parmi une liste de pilotes disponibles sur mon ordinateur . Sélectionnez le choix que vous obtenez et cliquez sur Suivant. Cliquez sur Fermer pour terminer la mise à jour. Revenez maintenant à votre fenêtre Terminal/Powershell/Command et répétez le vagabond vers le haut commande. Cela devrait bien fonctionner cette fois.
Une fois cette opération terminée, vous pouvez visiter votre tableau de bord VVV à l'adresse http://vvv.test url.
VVV est livré avec deux installations WordPress par défaut - http://one.wordpress.test et http://two.wordpress.test Les deux sites ont les mêmes informations de connexion, admin comme nom d'utilisateur et mot de passe comme mot de passe. Les informations d'identification de la base de données pour les deux sites sont wp comme nom d'utilisateur et mot de passe. Les informations d'identification de l'utilisateur MySQL Root sont root comme nom d'utilisateur et mot de passe. Et les informations d'identification de l'utilisateur root de la VM sont root comme nom d'utilisateur et vagabond comme mot de passe.
Il existe une installation de développeur wordpress sur http://trunk.wordpress.net mais cela ne fonctionnera pas car il n'a pas été provisionné. Cette installation est utile si vous êtes un contributeur WordPress qui travaille avec des tickets et des correctifs Trac. Pour l'activer, ouvrez vvv-custom.yml et modifiez la valeur de skip_provisioning sous wordpress-trunk à false puis reprovisionnez la VM à l'aide de la commande
$ vagrant reload --provision
Il existe une autre installation wordpress sans URL étiquetée wordpress-meta-environment. Cette installation créera un environnement utile pour les contributions à la méta-équipe WordPress, par exemple WordCamps, .org, etc. Pour activer cette installation, ajoutez la ligne suivante sous wordpress-meta-environment dans le fichier vvv-custom.yml.
hosts:
- wpmeta.test
Et puis changez la valeur de skip_provisioning à faux et reprovisionnez la machine virtuelle.
$ vagrant reload --provision
Ajouter un nouveau site
Si vous souhaitez ajouter un autre site à la VM, vous devrez modifier le vvv-custom.yml fichier que vous pouvez trouver dans le vvv annuaire. Si ce n'est pas là, copiez simplement vvv-config.yml et créez-le. Il s'agit d'un processus unique et vous n'aurez pas besoin de le refaire. Effectuez toujours vos modifications dans vvv-custom.yml car vvv-config.yml est écrasé lorsque vous mettez à jour VVV.
Ajoutez le code suivant sous la section sites à vvv-custom.yml pour ajouter un nouveau site.
newsite: repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template description: "A WordPress subdir multisite install"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
branch: master
nginx_upstream: php skip_provisioning: false hosts: - newsite.test custom: wp_type: subdirectory
Variables
variable de dépôt fait référence à un référentiel Github prédéfini qui contient des informations sur la configuration d'un nouveau site WordPress sur la machine virtuelle. Pour l'instant, nous utilisons un dépôt géré par VVV.
description variable s'explique d'elle-même.
vm_dir est le répertoire réel à l'intérieur de la machine virtuelle où votre site résidera.
rép_local est le répertoire sur votre machine hôte où vit votre site.
succursale indique à Vagrant d'extraire la branche principale du dépôt dans l'exemple ici.
nginx_upstream est utilisé pour définir où Nginx transmet les demandes et est généralement utilisé pour modifier la version de PHP nécessaire à votre installation. php fait ici référence à la version PHP par défaut qui est 7.2. Vous pouvez utiliser php71 pour le changer en PHP 7.1 ou php56 pour le changer en PHP 5.6.
skip_provisioning est défini sur false, ce qui signifie que nous devons inclure ce site sur la machine virtuelle.
hôtes La variable est utilisée pour définir l'URL dont nous aurons besoin pour accéder au site.
personnalisé est utile si vous avez besoin d'un contrôle supplémentaire sur votre site WordPress. Vous pouvez utiliser cette section pour configurer une installation multisite ou installer une version différente de WordPress et même changer le nom de la base de données ou de votre site qui sera utilisé pour votre installation.
wp_type La variable décide si votre installation sera unique, multisite avec domaines ou multisite avec sous-répertoire. wp_type prend quatre valeurs :single, subdomain, subdirectory et none. Avec l'installation de sous-domaine, vous pouvez définir plusieurs hôtes pour votre installation multisite au format suivant
hosts:
- multisite.test
- site1.multisite.test
- site2.multisite.test
custom:
wp_type: subdomain
Vous pouvez ajouter une autre variable sous la section personnalisée qui est wp_version . Vous pouvez le définir sur Nightly si vous souhaitez installer la version Nightly de WordPress. Il prend trois valeurs :nightly, latest et un numéro de version.
custom: wp_version: nightly
Il existe une autre variable, db_name qui vous permet de définir le nom de la base de données pour votre installation.
custom:
db_name: super_secet_db_name
Et enfin, site_title La variable vous permet de définir le titre de votre site WP.
custom:
site_title: My Awesome Dev Site
Cela devrait couvrir toutes les variables et options dont vous auriez besoin pour ajouter votre propre site Web dans VVV. Après avoir modifié le fichier vvv-custom.yml, exécutez simplement la commande suivante pour faire fonctionner votre nouveau site.
$ vagrant reload --provision
Ajouter un site existant
Jusqu'à présent, nous avons appris à ajouter un site entièrement nouveau à VVV. Mais que se passe-t-il si vous travaillez déjà sur un site et souhaitez l'ajouter sous VVV. Voyons comment nous pouvons faire cela.
Pour ajouter un site existant, la première étape est la même qu'auparavant, c'est-à-dire modifier le fichier vvv-custom.yml et ajouter le code suivant.
howtoforge: repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template description: "A WordPress site"
vm_dir: /srv/www/newsite
local_dir: /home/user/vvv/www/newsite
hosts: - howtoforge.local
Cela indiquera à VVV de configurer un nouveau site accessible via http://howtoforge.local Mais c'est un site entièrement nouveau. Ce que nous devons faire est de le convertir dans notre installation existante. Pour cela, nous devons copier les fichiers de notre installation WordPress existante dans le répertoire local, c'est-à-dire /home/user/vvv/www/newsite
$ cp /var/www/howtoforge/ /home/user/vvv/www/newsite/
Maintenant, nous devons copier la base de données. Une façon simple de le faire est d'exporter votre base de données existante sous forme de fichier .sql, de copier ce fichier dans le répertoire de notre blog et d'importer à nouveau la base de données en SSH sur notre VM.
Tout d'abord, connectez-vous à mysql dans la ligne de commande de votre système local et utilisez la commande suivante pour exporter la base de données.
$ cd /home/user/vvv/www/newsite $ mysqldump -u username -p database_name > data-dump.sql
Nous pouvons maintenant provisionner à nouveau la machine virtuelle.
$ vagrant reload --provision
Connectez-vous en SSH à votre machine virtuelle.
$ vagrant ssh
Réimportez maintenant la base de données dans votre machine virtuelle.
$ cd /srv/www/newsite $ mysql -u root -p newsite < data-dump.sql
VVV a déjà créé une nouvelle base de données lors de l'approvisionnement de notre blog nommé newsite. Le mot de passe pour l'utilisateur root est root ici. La commande ci-dessus importera notre base de données existante dans la nouvelle.
Ceci termine la configuration d'un site existant dans VVV.
Activer SSL
Les installations Localhost ne sont généralement pas sécurisées. Et l'installation de votre propre certificat sur localhost peut être un processus long et fastidieux, même avec Let's Encrypt. Mais VVV rend ce processus assez simple et SSL est activé par défaut sur toutes vos installations WordPress. Commencez simplement à utiliser https avec vos sites. Pour la première fois, votre navigateur se plaindra d'un certificat invalide, mais ajoutez-le comme exception et tout devrait bien se passer à partir de maintenant.
Mettre à jour WordPress
Vous pouvez mettre à jour votre installation WordPress à partir de votre tableau de bord. De plus, VVV mettra à jour votre wordpress chaque fois que vous reprovisionnerez la VM. Vous pouvez également mettre à jour WordPress manuellement en le téléchargeant depuis WordPress.org et en extrayant le fichier zip. Et vous pouvez également utiliser WP CLI qui est fourni avec VVV. Pour mettre à jour votre site avec WP CLI, utilisez les commandes suivantes.
$ cd /srv/www/newsite $ wp core update
Mettre à jour VVV
La première étape consiste à arrêter la machine Vagrant.
$ vagrant halt
Assurez-vous maintenant que votre vagabond et Virtualbox sont à jour. Sinon, téléchargez-les à nouveau et installez-les.
Exécutez la commande suivante pour mettre à jour votre boîte Vagrant. C'est facultatif, mais il vaut mieux que vous le fassiez.
$ vagrant box update
Maintenant, extrayez la dernière version VVV de Github.
$ git pull
Reprovisionnez à nouveau la boîte pour terminer la mise à jour.
$ vagrant up --provision
Outils supplémentaires
VVV est livré avec divers utilitaires que vous pouvez installer. Vous les trouverez répertoriés dans la section utilitaires de votre fichier vvv-custom.yml. Par défaut, tls-ca et phpmyadmin sont activés. Vous pouvez également installer les versions memcached, opcache, webgrind, mongodb, tideways et php de 5.6 à 7.3 en supprimant le # devant eux dans la section utilitaires.
Vous pouvez même ajouter votre propre logiciel que vous souhaitez installer. Vous auriez besoin de modifier le vvv-custom.yml fichier avec quelque chose comme
utilities:
core:
- tls-ca
- phpmyadmin
java:
- java7
utility-sources:
java:
repo: https://github.com/example/java-utilities.git
branch: master
Vous allez ajouter une nouvelle section, java ici, par exemple. Le code de l'installation proviendra d'un dépôt git. Votre dépôt git devrait être structuré comme
java7/
provision.sh
Le fichier provision.sh contiendra le code nécessaire pour installer java dans votre VM. Le nom du dossier doit correspondre au nom que vous avez utilisé ci-dessus dans le vvv-custom.yml fichier.
Conclusion
Cela conclut notre tutoriel sur la configuration d'un environnement de développement WordPress local avec Vagrant. Faites-nous savoir si vous avez des questions.