Comment installer WordPress à l'aide de Composer : Guide d'installation étape par étape
Publié: 2023-02-28Introduction : Pourquoi Composer base WordPress ?
Comme toute autre application, votre site WordPress est plus sécurisé lorsque vous pouvez garantir des versions reproductibles et des mises à jour pouvant être validées pour votre code et ses dépendances. Votre infrastructure est validée via un ensemble de fichiers de configuration qui spécifient la version de PHP et de MariaDB que vous souhaitez utiliser. C'est le meilleur moyen de vous assurer que votre projet reste reproductible lors du développement de nouvelles fonctionnalités.
Le cœur de WordPress, ainsi que ses thèmes et plugins, devrait idéalement fonctionner de la même manière, mais ce n'est souvent pas le cas. Le panneau d'administration WordPress fournit des boutons en un clic pour mettre à jour tous ces composants lorsqu'ils sont obsolètes ou s'attendre à un accès en écriture au système de fichiers pour apporter des modifications de configuration au moment de l'exécution. Cependant, développer cette voie a ses conséquences.
Tout d'abord, vous n'aurez pas toujours accès en écriture au système de fichiers lors de l'exécution. Ainsi, dépendre de ce mécanisme pour les mises à jour et les changements de configuration est totalement limité pour de nombreuses solutions d'hébergement. D'un autre côté, si vous avez un accès en écriture au moment de l'exécution où vous hébergez actuellement, l'installation d'un nouveau module ou thème présente un risque de sécurité non négligeable (lorsque la source est inconnue).
Mais, peut-être le plus important, la mise à jour de WordPress au moment de l'exécution dissocie l'état de votre site du code de votre référentiel. Un collègue travaillant sur une nouvelle fonctionnalité sur son clone local du projet pourrait très bien être une version complète derrière le site en direct. À la suite de ce flux de travail, vous pourriez introduire des bogues aux conséquences inconnues (et non testées).
Avantages d'utiliser Composer
Compte tenu des faits ci-dessus, la gestion de votre site WordPress avec le Composer présente des avantages évidents. Tout d'abord, il vous permet de définir explicitement vos dépendances dans un fichier validé (composer.lock). Ce fichier de verrouillage est généré à partir d'une liste plus descriptive de contraintes de dépendance (composer.json) lorsque vos dépendances sont installées, et il devient une partie de l'historique de validation de votre projet. Dès lors, toute nouvelle branche fonctionnera à partir de la même collection de dépendances jusqu'au hachage de validation exact. À ce stade, peu importe qui contribue au projet ou même où il est déployé - c'est le même code pour tout le monde partout.
Le compositeur supprime également le besoin de valider de nombreux codes externes dans votre référentiel. Dans le cas de WordPress, ne pas utiliser Composer vous oblige généralement à valider tout le code d'un thème, et même pour le noyau et les plugins WordPress lui-même, dans votre propre projet. En plus de rendre le référentiel inutilement volumineux et lent à cloner, la mise à jour de ces copies devient un acte de jonglage auquel personne n'a besoin de s'occuper.
Avec Composer, vous pouvez ajouter et mettre à jour des dépendances à votre projet, puis verrouiller leurs versions exactes afin que chaque nouvelle branche reçoive la même mise à jour. Si la mise à jour avait été effectuée sur le site déployé au moment de l'exécution, vous auriez dû vous rappeler de commencer par git pull.
Installation du noyau WordPress avec Composer
De la même manière, l'utilisation de Composer vous évite de valider tout WordPress dans votre référentiel puisque vous pouvez l'ajouter en tant que dépendance. Il existe plusieurs façons de procéder (comme Bedrock), en fonction du nombre d'hypothèses que vous souhaitez faire pour votre configuration et la structure de votre projet. Le plus simple utilise le fork John Bloch Composer pour ajouter un programme d'installation à vos builds pour WordPress :
$ composer nécessite johnpbloch/wordpress-core-installer $ composer nécessite johnpbloch/wordpress-core
La commande ci-dessus créera un fichier composer.json et installera le noyau WordPress dans le répertoire WordPress. Le composer.json ressemblera à ceci
{ "exiger": { "johnpbloch/wordpress-core-installer": "^2.0", "johnpbloch/wordpress-core": "^6.1" }, "config": { "allow-plugins": { "johnpbloch/wordpress-core-installer": vrai } } }
Nous avons le noyau WordPress dans le dossier WordPress. Mais nous devons copier index.php en dehors du répertoire WordPress afin de pouvoir pointer le serveur Web vers le répertoire racine.
Pour gérer pleinement WordPress avec Composer , nous devons utiliser un répertoire différent pour wp-content au lieu de celui par défaut, WordPress/wp-content.
Créons un nouveau répertoire à la racine du projet appelé wp-content.
Copiez une fois le fichier index.php à partir du dossier WordPress. Nous devons changer l'emplacement du fichier wp-blog-header.php où se trouve notre répertoire WordPress.
Après le changement, l'index.php ressemblera à ceci
<?php définir('WP_USE_THEMES', vrai); require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );
Nous devons créer un fichier .htaccess dans le répertoire racine avec le contenu suivant :
# COMMENCER WordPress <IfModule mod_rewrite.c> Moteur de réécriture activé RéécrireBase / Règle de réécriture ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Réécrire la règle . /index.php [L] </IfModule> # FIN WordPress
Continuons et copions l'exemple de fichier wp-config.php puis ajoutons le code suivant :
$domain = 'mondomaine.com; définir('WP_SITEURL', "https://{$domain}/wordpress"); définir('WP_HOME',"https://{$domain}"); $httpHost = isset($_SERVER['HTTPS_HOST']) ? $_SERVER['HTTPS_HOST'] : $domaine; définir( 'WP_CONTENT_DIR', dirname( __FILE__ ) . '/wp-content' ); définir( 'WP_CONTENT_URL', 'https://' . $httpHost . '/wp-content' ); /** Chemin absolu vers le répertoire WordPress. */ if ( !defined('ABSPATH') ) { define('ABSPATH', dirname(__FILE__) . '/wordpress'); }
Nous avons ajouté WordPress dans ABSPATH puisque le noyau de WordPress est dans /WordPress
Étant donné que le fichier wp-config.php contient des données sensibles ; nous ne le committerons pas dans notre dépôt en créant un fichier .gitignore :
/wp-config.php /wordpress/ /wp-contenu/ /fournisseur/
Les répertoires WordPress, wp-content et vendor doivent également être ignorés afin que nous les ajoutions également au fichier .gitignore.
Remarque : Vous devez modifier le répertoire wp-content au cas où vous voudriez ajouter une convention de dénomination différente pour votre wp-content.
Notre répertoire racine de projet devrait ressembler à ceci
.git .gitignore compositeur.lock compositeur.json fournisseur wp-config.php index.php wordpress
Vous devez créer une base de données et modifier les détails dans wp-config.php. Votre site Web WordPress s'appellera "mondomaine.com" et le backend WordPress sera accessible par mondomaine.com/wordpress/wp-admin
Ajout de plugins et de thèmes à partir du référentiel WordPress
Par défaut, Composer ne regardera que le référentiel packagist.org. Mais il ne contient pas de plugins ni de thèmes WordPress.

Pour pouvoir extraire des plugins et des thèmes WordPress, vous devez pointer Composer vers le référentiel wpackagist.org. Pour ce faire, ajoutez ce morceau de configuration dans votre fichier composer.json :
"dépôts": [ { "type": "compositeur", "url": "https://wpackagist.org", "seul": [ "wpackagist-plugin/*", "wpackagist-theme/*" ] } ],
Nous devons également indiquer à Composer où placer les plugins et les thèmes. Cela implique d'ajouter un peu plus de configuration dans composer.json :
"supplémentaire": { "chemins d'installation": { "wp-content/mu-plugins/{$nom}/": [ "type:wordpress-mplugin" ], "wp-content/plugins/{$name}/": [ "type:plugin-wordpress" ], "wp-content/themes/{$nom}/": [ "type:thème-wordpress" ] } }
Avec cela en place, vous pouvez maintenant installer n'importe quel plugin ou thème à partir des référentiels officiels à l'aide de la commande composer require, comme nous l'avons fait pour l'installation de WordPress.
# Pour installer un plugin, utilisez ce format :
composer requiert "wpackagist-plugin/:"
# Pour installer un thème, utilisez ce format :
composer nécessite "wpackagist-theme/:"
Les contraintes de version sont compliquées, mais la forme la plus simple à retenir consiste probablement à utiliser un caractère générique *. Pour installer la version gratuite de notre plugin WP Migrate, en utilisant la version 2.x, vous exécuteriez :
composer require "wpackagist-plugin/wp-migrate-db:2.*"
Si vous avez toujours voulu que vos mises à jour vous offrent la dernière version, vous pouvez utiliser un * comme contrainte de version :
composer require "wpackagist-plugin/wp-migrate-db:*"
La première fois que vous exécutez une commande comme celle-ci, il se peut qu'on vous demande si vous voulez "faire confiance aux "compositeurs/installateurs" pour exécuter le code". Ceci est sûr à faire, mais sachez que cela permet à Composer d'exécuter du code sur votre ordinateur.
Si tout va bien, vous devriez installer le plugin (mais pas l'activer). Je recommanderais également de valider vos modifications dans Git à ce stade.
Ajout de plugins et de thèmes personnalisés ou tiers
Tout va bien si vous voulez des plugins et des thèmes du référentiel. Mais que se passe-t-il si vous souhaitez ajouter des plugins tiers qui ne sont pas sur le référentiel wordpress.org, ou votre propre code personnalisé ? Le répertoire WordPress n'est pas dans Git, alors comment contrôlez-vous la version de vos propres choses ?
Certains auteurs de thèmes et de plugins prennent en charge les référentiels personnalisés pour leurs plugins.
Et certains thèmes et plugins ne sont pas autorisés à utiliser un référentiel pour leurs plugins, par exemple, les plugins payants.
Mais si cela ne s'applique pas, l'astuce ici consiste à désignorer sélectivement des répertoires spécifiques à l'aide du fichier .gitignore et d'ajouter ces plugins et thèmes personnalisés dans composer.json.
Nous pouvons également placer ces plugins dans un autre répertoire pour les installer à partir de composer.json.
Comme nous ignorons le dossier plugins dans .gitignore, nous devons créer un autre dossier appelé dist,
Dans la distribution, nous pouvons avoir des plugins payants et personnalisés et nous pouvons les installer à partir du Composer.
- distance/
- plugins/
- thèmes/
- mu-plugins/
Nous devons copier nos plugins et thèmes personnalisés dans le dossier approprié.
Et nous devons créer composer.json pour chaque plugin ajouté dans le dist/plugins.
Actuellement, nous avons advanced-custom-fields-pro, qui est payant. Nous voulons également ajouter ce plugin via composer pour une installation en un clic et automatiser les déploiements.
Nous devons télécharger ce plugin à partir du portail du site Web de l'auteur et extraire ce plugin dans le dossier dist/plugins/advanced-custom-fields-pro. Et créez composer.json dans le même dossier avec le contenu suivant,
{ "name": "plugins-personnalisés/acf-pro", "description": "Champs personnalisés avancés PRO", "version": "5.12.2", "type": "plugin-wordpress", "exiger": { "compositeur/installateurs": "^1.0", "johnpbloch/wordpress-core": ">=5.4" } }
Nous pouvons ajouter la version et le nom avec des préfixes personnalisés ici. Et ajoutez du code dans le fichier root composer.json pour appeler ce plugin pendant l'installation.
Dans la section "repositories": ajouter le code suivant en dernier,
"dépôts": [ { "type": "chemin", "url": "dist/plugins/*", "options": { "lien symbolique": faux }
Vous avez également d'autres entrées dans la section des référentiels. Pour installer ce plugin, nous avons deux façons, d'abord d'ajouter le nom du plugin avec la version dans le
"exiger": { "plugins-personnalisés/acf-pro": ">=5.12.2" }
Ou exécutez la commande suivante, elle installera le plugin et ajoutera l'entrée ci-dessus dans le composer.json.
$ composer nécessite des plugins personnalisés/acf-pro
De la même manière, nous pouvons installer des thèmes et des plugins mu.
Pour le thème, nous devons ajouter l'emplacement du dossier de thème,
"dépôts": [ { "type": "chemin", "url": "dist/thèmes/*", "options": { "lien symbolique": faux }
Vous devez ajouter composer.json dans votre thème personnalisé avec les détails du nom et de la version. En utilisant ce nom, nous pouvons installer le thème à l'aide de la commande composer require.
En conclusion
L'utilisation de Composer est l'approche la plus efficace pour garantir que votre WordPress reste sécurisé, à jour et reproductible. Composer permet aux développeurs d'ajouter et de mettre à jour facilement des dépendances dans leurs projets et de verrouiller leurs versions exactes pour garantir que chaque nouvelle branche fonctionne avec le même code.
Avec ces avantages, Composer est un excellent choix pour gérer les projets WordPress, garantissant des versions reproductibles et des mises à jour pouvant être validées.
Nous comprenons que commencer avec Composer peut être un peu écrasant. Si vous avez des questions, n'hésitez pas à nous contacter. Nous sommes là pour vous aider à tirer le meilleur parti de votre expérience WordPress.
Les références:
- https://docs.platform.sh/guides/wordpress/composer.html
- https://deliciousbrains.com/storing-wordpress-in-git/
- https://time2hack.com/composer-wordpress-deployment/