Introduction
À mesure que votre application ou site web se développe, il peut arriver un moment où vous avez dépassé votre configuration serveur actuelle. Si vous hébergez votre serveur web et votre base de données sur la même machine, il peut être judicieux de séparer ces deux fonctions afin que chacune puisse fonctionner sur son propre matériel et partager la charge de réponse aux demandes de vos visiteurs.
Dans ce guide, vous configurerez un serveur de base de données MySQL distant auquel votre application web pourra se connecter. WordPress est utilisé comme exemple afin d’avoir quelque chose avec quoi travailler, mais la technique est largement applicable à toute application basée sur MySQL.
Prérequis
Avant de commencer ce tutoriel, vous aurez besoin de :
- Deux serveurs Ubuntu 20.04. Chacun devrait avoir un utilisateur non root avec des privilèges sudo et un pare-feu UFW activé, comme décrit dans notre tutoriel Configuration initiale du serveur avec Ubuntu 20.04. L’un de ces serveurs hébergera votre backend MySQL et sera désigné comme le serveur de base de données tout au long de ce guide. L’autre se connectera à votre serveur de base de données à distance et agira en tant que serveur web; de même, il sera désigné comme le serveur web au cours de ce guide.
- Sur votre serveur de base de données: MySQL installé. Suivez Comment installer MySQL sur Ubuntu 20.04 pour le configurer.
- Sur votre serveur web : Nginx et PHP installés. Notre tutoriel Comment installer Linux, Nginx, MySQL, PHP (pile LEMP) sous Ubuntu 20.04 vous guidera à travers le processus, mais notez que vous devriez sautez l’étape 2 de ce tutoriel, qui se concentre sur l’installation de MySQL, car vous installerez MySQL sur votre serveur de base de données.
- Facultativement (mais fortement recommandé), des certificats TLS/SSL de Let’s Encrypt installés sur votre serveur web. Vous devrez acheter un nom de domaine et avoir des enregistrements DNS configurés pour votre serveur, mais les certificats eux-mêmes sont gratuits. Notre guide Comment sécuriser Nginx avec Let’s Encrypt sous Ubuntu 20.04 vous montrera comment obtenir ces certificats.
Étape 1 — Configuration de MySQL pour écouter les connexions à distance sur le serveur de base de données
Avoir ses données stockées sur un serveur séparé est un bon moyen de s’étendre de manière élégante après avoir atteint le plafond de performance d’une configuration sur une seule machine. Cela fournit également la structure de base nécessaire pour équilibrer la charge et étendre votre infrastructure encore plus à un moment ultérieur. Après avoir installé MySQL en suivant le tutoriel préalable, vous devrez modifier certaines valeurs de configuration pour permettre les connexions à partir d’autres ordinateurs.
La plupart des modifications de configuration du serveur MySQL peuvent être effectuées dans le fichier mysqld.cnf
, qui est stocké dans le répertoire /etc/mysql/mysql.conf.d/
par défaut. Ouvrez ce fichier sur votre serveur de base de données avec les privilèges root dans votre éditeur préféré. Cet exemple utilise nano
:
Ce fichier est divisé en sections indiquées par des libellés entre crochets ([
et ]
). Recherchez la section étiquetée mysqld
:
. . .
[mysqld]
. . .
Dans cette section, recherchez un paramètre appelé bind-address
. Cela indique au logiciel de base de données quelle adresse réseau écouter pour les connexions.
Par défaut, cela est défini sur 127.0.0.1
, ce qui signifie que MySQL est configuré pour rechercher uniquement les connexions locales. Vous devez modifier cela pour faire référence à une adresse IP externe où votre serveur peut être atteint.
Si vos deux serveurs se trouvent dans un centre de données avec des capacités de réseau privé, utilisez l’adresse IP du réseau privé de votre serveur de base de données. Sinon, vous pouvez utiliser son adresse IP publique :
[mysqld]
. . .
bind-address = db_server_ip
Étant donné que vous vous connecterez à votre base de données via Internet, il est recommandé d’exiger des connexions chiffrées pour protéger vos données. Si vous ne chiffrez pas votre connexion MySQL, n’importe qui sur le réseau pourrait capturer des informations sensibles entre vos serveurs web et de base de données. Pour chiffrer les connexions MySQL, ajoutez la ligne suivante après la ligne bind-address
que vous venez de mettre à jour :
[mysqld]
. . .
require_secure_transport = on
. . .
Enregistrez et fermez le fichier lorsque vous avez terminé. Si vous utilisez nano
, faites ceci en appuyant sur CTRL + X
, Y
, puis ENTER
.
Pour que les connexions SSL fonctionnent, vous devrez créer des clés et des certificats. MySQL est livré avec une commande qui les configurera automatiquement. Exécutez la commande suivante, qui crée les fichiers nécessaires. Il les rend également lisibles par le serveur MySQL en spécifiant l’UID de l’utilisateur mysql :
Pour forcer MySQL à mettre à jour sa configuration et à lire les nouvelles informations SSL, redémarrez la base de données :
Pour confirmer que le serveur écoute désormais sur l’interface externe, exécutez la commande ss
suivante :
Outputtcp LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=4053,fd=22))
tcp LISTEN 0 151 db_server_ip:3306 0.0.0.0:* users:(("mysqld",pid=4053,fd=24))
ss
imprime des statistiques sur le système de mise en réseau de votre serveur. Cette sortie montre qu’un processus appelé mysqld
est attaché à l’adresse IP du serveur de base de données db_server_ip
sur le port 3306
, le port MySQL standard, confirmant que le serveur écoute sur l’interface appropriée.
Ensuite, ouvrez ce port sur le pare-feu pour permettre le passage du trafic:
Ce sont tous les changements de configuration que vous devez apporter à MySQL. Ensuite, vous configurerez une base de données et quelques profils d’utilisateurs, dont l’un sera utilisé pour accéder au serveur à distance.
Étape 2 — Configuration d’une base de données WordPress et d’identifiants à distance sur le serveur de base de données
Même si MySQL lui-même écoute maintenant sur une adresse IP externe, aucun utilisateur ou base de données activé à distance n’est actuellement configuré. Créez une base de données pour WordPress et une paire d’utilisateurs pouvant y accéder.
Commencez par vous connecter à MySQL en tant qu’utilisateur MySQL root:
Remarque: Si vous avez activé l’authentification par mot de passe, comme décrit dans l’étape 3 du didacticiel préalable sur MySQL, vous devrez utiliser la commande suivante pour accéder à l’invite de commandes MySQL:
Après avoir exécuté cette commande, vous serez invité à saisir votre mot de passe root MySQL, puis, après l’avoir entré, vous obtiendrez un nouveau prompt mysql>
.
À partir du prompt MySQL, créez une base de données que WordPress utilisera. Il peut être utile de donner à cette base de données un nom reconnaissable afin de pouvoir l’identifier facilement ultérieurement. Ici, elle est nommée wordpress
:
Maintenant que vous avez créé votre base de données, vous devez ensuite créer une paire d’utilisateurs. Créez un utilisateur uniquement local ainsi qu’un utilisateur distant lié à l’adresse IP du serveur Web.
Tout d’abord, créez votre utilisateur local, local_db_user, et assurez-vous que ce compte ne correspond qu’aux tentatives de connexion locales en utilisant localhost dans la déclaration:
Accordez ensuite à ce compte un accès complet à la base de données wordpress
:
Cet utilisateur peut désormais effectuer n’importe quelle opération sur la base de données pour WordPress, mais ce compte ne peut pas être utilisé à distance, car il ne correspond qu’aux connexions provenant de la machine locale. Avec cela à l’esprit, créez un compte compagnon qui ne correspondra qu’aux connexions de votre serveur web. Pour cela, vous aurez besoin de l’adresse IP de votre serveur web.
Veuillez noter que vous devez utiliser une adresse IP qui utilise le même réseau que celui que vous avez configuré dans votre fichier mysqld.cnf
. Cela signifie que si vous avez spécifié une adresse IP de réseau privé dans le fichier mysqld.cnf
, vous devrez inclure l’adresse IP privée de votre serveur web dans les deux commandes suivantes. Si vous avez configuré MySQL pour utiliser Internet public, vous devez faire correspondre cela avec l’adresse IP publique de votre serveur web.
Après avoir créé votre compte à distance, donnez-lui les mêmes privilèges que votre utilisateur local.
Enfin, rafraîchissez les privilèges pour que MySQL commence à les utiliser.
Ensuite, quittez l’invite MySQL en tapant:
Maintenant que vous avez configuré une nouvelle base de données et un utilisateur activé à distance, vous pouvez passer à la vérification si vous pouvez vous connecter à la base de données depuis votre serveur web.
Étape 3 — Test des connexions à distance et locales
Avant de continuer, il est préférable de vérifier si vous pouvez vous connecter à votre base de données à la fois depuis la machine locale — votre serveur de base de données — et depuis votre serveur web.
D’abord, testez la connexion locale depuis votre serveur de base de données en essayant de vous connecter avec votre nouveau compte:
Lorsque vous y êtes invité, saisissez le mot de passe que vous avez défini pour ce compte.
Si vous obtenez un invite MySQL, alors la connexion locale a réussi. Vous pouvez à nouveau quitter en tapant:
Ensuite, connectez-vous à votre serveur web pour tester les connexions à distance:
Vous devrez installer quelques outils clients pour MySQL sur votre serveur web afin d’accéder à la base de données à distance. Tout d’abord, mettez à jour votre cache de paquets local si vous ne l’avez pas fait récemment:
Ensuite, installez les utilitaires clients MySQL:
Suivez ensuite ces étapes pour vous connecter à votre serveur de base de données en utilisant la syntaxe suivante:
Encore une fois, assurez-vous d’utiliser la bonne adresse IP pour le serveur de base de données. Si vous avez configuré MySQL pour écouter sur le réseau privé, saisissez l’adresse IP du réseau privé de votre base de données. Sinon, saisissez l’adresse IP publique de votre serveur de base de données.
On vous demandera le mot de passe de votre compte remote_user. Après l’avoir saisi, et si tout fonctionne comme prévu, vous serez dirigé vers l’invite MySQL. Vérifiez que la connexion utilise SSL avec la commande suivante:
Si la connexion utilise effectivement SSL, la ligne SSL :
l’indiquera, comme illustré ici:
Output--------------
mysql Ver 8.0.29-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
Connection id: 14
Current database:
Current user: remote_user@web_server_ip
SSL: Cipher in use is TLS_AES_256_GCM_SHA384
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.29-0ubuntu0.20.04.2 (Ubuntu)
Protocol version: 10
Connection: db_server_ip via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 3306
Binary data as: Hexadecimal
Uptime: 1 hour 8 min 28 sec
Threads: 2 Questions: 69 Slow queries: 0 Opens: 206 Flush tables: 3 Open tables: 125 Queries per second avg: 0.016
--------------
Après avoir vérifié que vous pouvez vous connecter à distance, quittez l’invite:
Vous avez vérifié l’accès local et l’accès depuis le serveur web, mais vous n’avez pas vérifié que les autres connexions seront refusées. Pour une vérification supplémentaire, essayez de faire la même chose depuis un troisième serveur pour lequel vous n’avez pas configuré de compte utilisateur spécifique afin de vous assurer que cet autre serveur ne reçoit pas d’accès.
Notez qu’avant d’exécuter la commande suivante pour tenter la connexion, vous devrez peut-être installer les utilitaires clients MySQL comme vous l’avez fait précédemment:
Cela ne devrait pas réussir et devrait renvoyer une erreur similaire à celle-ci:
OutputERROR 1130 (HY000): Host '203.0.113.12' is not allowed to connect to this MySQL server
C’est prévu, car vous n’avez pas créé d’utilisateur MySQL autorisé à se connecter depuis ce serveur, et c’est également souhaitable, car vous voulez être sûr que votre serveur de base de données refusera l’accès aux utilisateurs non autorisés à votre serveur MySQL.
Après avoir testé avec succès votre connexion à distance, vous pouvez procéder à l’installation de WordPress sur votre serveur web.
Étape 4 — Préparation du serveur Web pour l’installation de WordPress
Si vous avez suivi les tutoriels préalables, vous devriez avoir à la fois Nginx et PHP installés. WordPress, ainsi que bon nombre de ses extensions, utilisent de nombreuses extensions PHP supplémentaires. Avant d’installer WordPress sur votre serveur Web, préparez votre serveur en installant certaines de ces extensions PHP pour les utiliser avec WordPress :
Remarque : Chaque extension WordPress a ses propres exigences. Certaines peuvent nécessiter l’installation de packages d’extensions PHP supplémentaires. Consultez la documentation de votre extension pour découvrir ses exigences PHP. Si elles sont disponibles, elles peuvent être installées avec apt comme dans l’exemple précédent.
Lorsque vous avez terminé d’installer les extensions, redémarrez le processus PHP-FPM afin que le processeur PHP en cours d’exécution puisse exploiter les fonctionnalités nouvellement installées :
Ensuite, effectuez quelques ajustements sur vos fichiers de blocs serveur Nginx. Selon les tutoriels préalables, vous devriez avoir un fichier de configuration pour votre site dans le répertoire /etc/nginx/sites-available/
. Il devrait également être configuré pour répondre au nom de domaine ou à l’adresse IP de votre serveur et protégé par un certificat TLS/SSL. /etc/nginx/sites-available/votre_domaine
est utilisé ici comme exemple de répertoire. Remplacez le chemin vers votre fichier de configuration lorsque cela est approprié.
De plus, /var/www/your_domain
sera utilisé comme répertoire racine dans cet exemple d’installation de WordPress. Encore une fois, utilisez le répertoire de documents spécifié dans votre propre configuration.
Remarque : Il est possible que vous utilisiez la configuration par défaut /etc/nginx/sites-available/default
avec /var/www/html
comme répertoire de documents. C’est acceptable si vous allez héberger un seul site web sur ce serveur. Sinon, il est préférable de diviser la configuration nécessaire en morceaux logiques, un fichier par site.
Ouvrez le fichier de bloc serveur de votre site avec votre éditeur préféré. Cet exemple utilise nano
:
Dans ce bloc serveur, ajoutez quelques blocs de localisation. Commencez par créer des blocs de localisation correspondant exactement aux demandes de /favicon.ico
et /robots.txt
, pour lesquels vous ne souhaitez pas enregistrer les demandes.
Vous ferez cela en utilisant une expression régulière de localisation pour correspondre à toutes les demandes de fichiers statiques, désactiver l’enregistrement pour ces demandes, et les marquer comme hautement mis en cache car ce sont généralement des ressources coûteuses à servir. Vous pouvez ajuster cette liste de fichiers statiques pour contenir toute autre extension de fichier que votre site peut utiliser:
server {
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
. . .
}
À l’intérieur du bloc de localisation location /
existant, vous pouvez ajuster la liste try_files
. Tout d’abord, commentez le paramètre par défaut en préfixant la première ligne avec un dièse (#
). Ensuite, ajoutez les lignes suivantes:
server {
. . .
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
. . .
}
Avec cette nouvelle ligne dans votre configuration, au lieu de renvoyer une erreur 404 comme option par défaut, le contrôle est passé au fichier index.php
avec les arguments de demande.
Dans l’ensemble, la partie supérieure de votre fichier devrait ressembler à ceci :
server {
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location / {
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
...
}
Une fois terminé, enregistrez et fermez le fichier.
Vérifiez votre configuration pour les erreurs de syntaxe en tapant :
Si aucune erreur n’est signalée, rechargez Nginx en tapant :
Après avoir préparé votre serveur web, vous êtes maintenant prêt à installer WordPress.
Étape 5 – Installation de WordPress sur le serveur Web
Pour démontrer les capacités de votre nouveau serveur MySQL distant, vous allez passer par le processus d’installation et de configuration de WordPress — le système de gestion de contenu populaire — sur votre serveur web. Avec votre logiciel serveur configuré, vous pouvez télécharger WordPress. Pour des raisons de sécurité, il est toujours recommandé d’obtenir la dernière version de WordPress directement sur le site web du projet.
Tout d’abord, changez vers un répertoire inscriptible (un temporaire comme /tmp
est recommandé) :
Cela change votre répertoire de travail vers le dossier temporaire. Ensuite, saisissez la commande suivante pour télécharger la dernière version de WordPress sous forme de fichier compressé :
Extrayez le fichier compressé pour créer la structure de répertoires de WordPress :
Vous allez déplacer ces fichiers dans votre racine de document momentanément, mais avant de le faire, copiez le fichier de configuration d’exemple vers le nom de fichier que lit WordPress :
Copiez l’intégralité du contenu du répertoire dans votre racine de document. Le drapeau -a
garantira que vos autorisations sont maintenues, et un point à la fin de votre répertoire source pour indiquer que tout à l’intérieur du répertoire doit être copié (y compris les fichiers cachés) :
Avec vos fichiers en place, attribuez la propriété à l’utilisateur et au groupe www-data. C’est l’utilisateur et le groupe sous lesquels Nginx s’exécute, et Nginx devra pouvoir lire et écrire des fichiers WordPress pour servir le site Web et effectuer des mises à jour automatiques :
Vos fichiers WordPress sont maintenant dans la racine de document du serveur et ont la propriété correcte. Maintenant, vous êtes prêt à configurer WordPress.
Étape 6 — Configuration du fichier de configuration de WordPress
Lorsque vous ouvrez le fichier de configuration de WordPress, vous commencerez par ajuster certaines clés secrètes pour fournir une certaine sécurité à votre installation. WordPress fournit un générateur sécurisé pour ces valeurs afin que vous n’ayez pas à trouver des valeurs par vous-même. Elles ne sont utilisées qu’en interne, donc cela n’affectera pas l’utilisabilité d’avoir des valeurs complexes et sécurisées ici.
Pour obtenir des valeurs sécurisées à partir du générateur de clés secrètes de WordPress, tapez :
Vous recevrez des valeurs uniques qui ressemblent à une sortie similaire à ce qui suit :
Attention ! Il est important que vous demandiez vos propres valeurs uniques à chaque fois. Ne copiez pas les valeurs affichées ici !
Outputdefine('AUTH_KEY', 'L4|2Yh(giOtMLHg3#] DO NOT COPY THESE VALUES %G00o|te^5YG@)');
define('SECURE_AUTH_KEY', 'DCs-k+MwB90/-E(=!/ DO NOT COPY THESE VALUES +WBzDq:7U[#Wn9');
define('LOGGED_IN_KEY', '*0kP!|VS.K=;#fPMlO DO NOT COPY THESE VALUES +&[%8xF*,18c @');
define('NONCE_KEY', 'fmFPF?UJi&(j-{8=$- DO NOT COPY THESE VALUES CCZ?Q+_~1ZU~;G');
define('AUTH_SALT', '@qA7f}2utTEFNdnbEa DO NOT COPY THESE VALUES t}Vw+8=K%20s=a');
define('SECURE_AUTH_SALT', '%BW6s+d:7K?-`C%zw4 DO NOT COPY THESE VALUES 70U}PO1ejW+7|8');
define('LOGGED_IN_SALT', '-l>F:-dbcWof%4kKmj DO NOT COPY THESE VALUES 8Ypslin3~d|wLD');
define('NONCE_SALT', '4J(<`4&&F (WiK9K#] DO NOT COPY THESE VALUES ^ZikS`es#Fo:V6');
Ce sont des lignes de configuration que vous pouvez coller directement dans votre fichier de configuration pour définir des clés sécurisées. Copiez la sortie que vous avez reçue maintenant.
Ouvrez le fichier de configuration WordPress :
Trouvez la section qui contient les valeurs d’exemple pour ces paramètres :
. . .
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
. . .
Supprimez ces lignes et collez les valeurs que vous avez copiées à partir de la ligne de commande :
. . .
define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
. . .
Ensuite, modifiez certains des paramètres de connexion à la base de données au début du fichier. Vous devrez ajuster le nom de la base de données, l’utilisateur de la base de données et le mot de passe associé qui a été configuré dans MySQL.
Entrez les informations de connexion pour votre base de données distante. N’oubliez pas d’utiliser la même adresse IP et les mêmes identifiants que ceux que vous avez utilisés lors de votre test de base de données distante précédent :
. . .
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'remote_user');
/** MySQL database password */
define('DB_PASSWORD', 'remote_user_password');
/** MySQL hostname */
define('DB_HOST', 'db_server_ip');
. . .
Et enfin, après la ligne define( 'DB_COLLATE', '' );
, ajoutez cette ligne en surbrillance qui indique à WordPress d’utiliser une connexion SSL vers votre base de données MySQL :
...
define( 'DB_COLLATE', '' );
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
...
Enregistrez et fermez le fichier.
Avec votre configuration configurée, WordPress est installé et vous êtes prêt à passer par sa routine de configuration basée sur le web.
Étape 7 — Configuration de WordPress via l’interface web
WordPress dispose d’un processus de configuration basé sur le web. Au fur et à mesure que vous avancez, il vous posera quelques questions et installera toutes les tables nécessaires dans votre base de données. Ici, vous allez effectuer les étapes initiales de configuration de WordPress, que vous pouvez utiliser comme point de départ pour construire votre propre site web personnalisé utilisant une base de données distante en arrière-plan.
Naviguez vers le nom de domaine (ou l’adresse IP publique) associé à votre serveur web suivi d’un /wp-admin
:
http://your_domain.com/wp-admin
Vous serez invité à sélectionner la langue que vous souhaitez utiliser:
Ensuite, vous arriverez à la page principale de configuration.
Sélectionnez un nom pour votre site WordPress et choisissez un nom d’utilisateur. Il est recommandé de choisir quelque chose d’unique et d’éviter les noms d’utilisateur courants tels que « admin » à des fins de sécurité. Un mot de passe fort est généré automatiquement. Sauvegardez ce mot de passe ou sélectionnez un autre mot de passe fort.
Entrez votre adresse e-mail et sélectionnez si vous souhaitez décourager les moteurs de recherche d’indexer votre site:
Une fois que vous avez soumis vos informations, vous devrez vous connecter à l’interface d’administration de WordPress en utilisant le compte que vous venez de créer. Vous serez alors dirigé vers un tableau de bord où vous pourrez personnaliser votre nouveau site WordPress.
Conclusion
En suivant ce tutoriel, vous avez configuré une base de données MySQL pour accepter les connexions protégées par SSL à partir d’une installation WordPress distante. Les commandes et techniques utilisées dans ce guide sont applicables à toute application web écrite dans n’importe quel langage de programmation, mais les détails d’implémentation spécifiques différeront. Référez-vous à la documentation de votre application ou de votre langage de programmation pour plus d’informations.