Comment installer WordPress avec LEMP sur Debian 9

introduction

WordPress est le plus populaire des CMS (systèmes de gestion de contenu) sur Internet. Il vous permet de configurer facilement des blogs et des sites Web flexibles sur un serveur MySQL avec un traitement PHP. WordPress a connu une adoption incroyable et constitue un excellent choix pour la mise en place rapide d’un site Web. Après l’installation, presque toute l’administration peut être effectuée via l’interface Web.

Dans ce guide, nous allons nous concentrer sur la configuration d’une instance WordPress sur une pile LEMP (Linux, Nginx, MySQL et PHP) sur un serveur Debian 9.

Conditions préalables

Afin de compléter ce didacticiel, vous aurez besoin d’un accès à un serveur Debian 9.

Avant de pouvoir commencer ce guide, vous devez effectuer les tâches suivantes:

  • * Créer un utilisateur + sudo + sur votre serveur *: Nous allons suivre les étapes de ce guide en utilisant un utilisateur non root avec les privilèges + sudo +. Vous pouvez créer un utilisateur avec les privilèges sudo + en suivant notre Debian 9 - Guide de configuration du serveur initial.

  • * Installer une pile LEMP *: WordPress aura besoin d’un serveur Web, d’une base de données et de PHP pour fonctionner correctement. La configuration d’une pile LEMP (Linux, Nginx, MySQL et PHP) répond à toutes ces exigences. Suivez this guide pour installer et configurer ce logiciel.

  • * Sécurisez votre site avec SSL *: WordPress fournit un contenu dynamique et gère l’authentification et l’autorisation des utilisateurs. TLS / SSL est la technologie qui vous permet de chiffrer le trafic de votre site afin que votre connexion soit sécurisée. Ce tutoriel supposera que vous avez un nom de domaine pour votre blog. Vous pouvez utiliser Let’s Encrypt pour obtenir un certificat SSL gratuit pour votre domaine. Suivez notre Le guide de cryptage de Nginx pour le configurer.

Lorsque vous avez terminé les étapes de configuration, connectez-vous à votre serveur en tant qu’utilisateur + sudo + et continuez ci-dessous.

Étape 1 - Création d’une base de données MySQL et d’un utilisateur pour WordPress

La première étape que nous allons franchir est une étape préparatoire. WordPress utilise MySQL pour gérer et stocker les informations relatives au site et aux utilisateurs. MySQL est déjà installé, mais nous devons créer une base de données et un utilisateur pour WordPress.

Pour commencer, connectez-vous au compte MySQL root (administratif). Si MySQL est configuré pour utiliser le plugin d’authentification + auth_socket + (par défaut), vous pouvez vous connecter au compte administratif MySQL en utilisant + sudo +:

sudo mysql

Si vous avez modifié la méthode d’authentification pour utiliser un mot de passe pour le compte racine MySQL, utilisez plutôt le format suivant:

mysql -u root -p

Vous serez invité à saisir le mot de passe que vous avez défini pour le compte racine MySQL.

Premièrement, nous pouvons créer une base de données distincte que WordPress peut contrôler. Vous pouvez appeler cela comme vous voulez, mais nous allons utiliser + wordpress + dans ce guide pour que ce soit simple. Vous pouvez créer la base de données pour WordPress en tapant:

CREATE DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Ensuite, nous allons créer un compte utilisateur MySQL distinct que nous utiliserons exclusivement pour fonctionner sur notre nouvelle base de données. La création de bases de données et de comptes à fonction unique est une bonne idée du point de vue de la gestion et de la sécurité. Nous utiliserons le nom + wordpressuser + dans ce guide. N’hésitez pas à changer cela si vous le souhaitez.

Nous allons créer ce compte, définir un mot de passe et accorder l’accès à la base de données que nous avons créée. Nous pouvons le faire en tapant la commande suivante. N’oubliez pas de choisir un mot de passe fort ici pour votre utilisateur de base de données:

GRANT ALL ON .* TO ''@'localhost' IDENTIFIED BY '';

Vous avez maintenant une base de données et un compte utilisateur, chacun spécialement créé pour WordPress. Nous devons supprimer les privilèges pour que l’instance actuelle de MySQL connaisse les modifications récentes que nous avons apportées:

FLUSH PRIVILEGES;

Quittez MySQL en tapant:

EXIT;

La session MySQL va se terminer, vous retournant au shell Linux habituel.

Étape 2 - Installation d’extensions PHP supplémentaires

Lors de la configuration de notre pile LEMP, nous n’avions besoin que d’un ensemble très minimal d’extensions afin de permettre à PHP de communiquer avec MySQL. WordPress et nombre de ses plugins exploitent des extensions PHP supplémentaires.

Nous pouvons télécharger et installer certaines des extensions PHP les plus populaires à utiliser avec WordPress en tapant:

sudo apt update
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

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:

sudo systemctl restart php7.0-fpm

Nous avons maintenant toutes les extensions PHP nécessaires installées sur le serveur.

Étape 3 - Configuration de Nginx

Nous allons ensuite apporter quelques modifications mineures aux fichiers de blocage de notre serveur Nginx. Selon les didacticiels prérequis, vous devriez avoir un fichier de configuration pour votre site dans le répertoire + / etc / nginx / sites-available / + configuré pour répondre au nom de domaine de votre serveur et protégé par un certificat TLS / SSL. Nous allons utiliser + / etc / nginx / sites-available / + à titre d’exemple, mais vous devez remplacer le chemin d’accès à votre fichier de configuration, le cas échéant.

De plus, nous utiliserons + / var / www / + comme répertoire racine de notre installation WordPress. Vous devez utiliser la racine Web spécifiée dans votre propre configuration.

Ouvrez le fichier de configuration Nginx de votre site avec les privilèges + sudo + pour commencer:

sudo nano /etc/nginx/sites-available/

Nous devons ajouter quelques directives + location + dans notre bloc + serveur + principal. Après avoir ajouté des certificats SSL, votre configuration peut avoir deux blocs + serveur. Si tel est le cas, recherchez celle qui contient + root / var / www / + et vos autres directives + emplacement + et appliquez vos modifications à cet emplacement.

Commencez par créer des blocs d’emplacement correspondant exactement aux requêtes ` / / favicon.ico et + / robots.txt, pour lesquels nous ne souhaitons pas enregistrer les requêtes.

Nous utiliserons un emplacement d’expression régulière pour répondre à toutes les demandes de fichiers statiques. Nous allons à nouveau désactiver la journalisation pour ces demandes et les marquer comme hautement cachables car ce sont des ressources coûteuses à servir. Vous pouvez ajuster cette liste de fichiers statiques pour qu’elle contienne toute autre extension de fichier que votre site pourrait utiliser:

/ etc / nginx / sites-available / votre_domaine

server {
   . . .







   . . .
}

À l’intérieur du bloc + location / + existant, nous devons ajuster la liste + try_files + afin qu’au lieu de renvoyer une erreur 404 comme option par défaut, le contrôle soit passé au fichier + index.php + avec la requête arguments.

Cela devrait ressembler à ceci:

/ etc / nginx / sites-available / wordpress

server {
   . . .
   location / {
       try_files $uri $uri/ =404;

   }
   . . .
}

Lorsque vous avez terminé, enregistrez et fermez le fichier.

Maintenant, nous pouvons vérifier les erreurs de syntaxe dans notre configuration en tapant:

sudo nginx -t

Si aucune erreur n’a été signalée, rechargez Nginx en tapant:

sudo systemctl reload nginx

Ensuite, nous allons télécharger et configurer WordPress lui-même.

Étape 4 - Télécharger WordPress

Maintenant que notre logiciel serveur est configuré, nous pouvons télécharger et configurer WordPress. Pour des raisons de sécurité notamment, il est toujours recommandé de se procurer la dernière version de WordPress sur leur site.

Basculez dans un répertoire accessible en écriture, puis téléchargez la version compressée en tapant:

cd /tmp
curl -LO https://wordpress.org/latest.tar.gz

Extrayez le fichier compressé pour créer la structure de répertoires WordPress:

tar xzvf latest.tar.gz

Nous allons transférer ces fichiers dans notre racine de document dans un instant. Avant de faire cela, nous pouvons copier le fichier de configuration exemple dans le nom de fichier que WordPress lit réellement:

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Maintenant, nous pouvons copier tout le contenu du répertoire dans notre racine de document. Nous utilisons l’indicateur + -a + pour nous assurer que nos autorisations sont maintenues. Nous utilisons un point à la fin de notre répertoire source pour indiquer que tout ce qui se trouve dans le répertoire doit être copié, y compris tous les fichiers cachés:

sudo cp -a /tmp/wordpress/. /var/www/

Maintenant que nos fichiers sont en place, nous allons en attribuer la propriété à l’utilisateur et au groupe + www-data +. Il s’agit de l’utilisateur et du groupe sous lesquels Nginx s’exécute. Nginx devra être en mesure de lire et d’écrire des fichiers WordPress afin de servir le site Web et d’effectuer des mises à jour automatiques.

sudo chown -R www-data:www-data /var/www/

Nos fichiers se trouvent maintenant dans la racine du document de notre serveur et ont la propriété correcte, mais nous avons encore besoin de terminer la configuration.

Étape 5 - Configuration du fichier de configuration WordPress

Ensuite, nous devons apporter quelques modifications au fichier de configuration principal de WordPress.

Lorsque nous ouvrirons le fichier, notre premier travail consistera à ajuster certaines clés secrètes afin de sécuriser notre installation. WordPress fournit un générateur sécurisé pour ces valeurs afin que vous n’ayez pas à essayer de créer vous-même de bonnes valeurs. Celles-ci sont uniquement utilisées en interne, il n’est donc pas gênant d’avoir des valeurs complexes et sûres.

Pour récupérer les valeurs sécurisées du générateur de clé secrète WordPress, tapez:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Vous obtiendrez des valeurs uniques ressemblant à ceci:

Outputdefine('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9  c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X  {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF  2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+  #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf   07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY  C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3  t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7  1% ^qUswWgn+6&xqHN&%');

Ce sont des lignes de configuration que nous pouvons coller directement dans notre fichier de configuration pour définir des clés sécurisées. Copiez le résultat que vous avez reçu maintenant.

Maintenant, ouvrez le fichier de configuration WordPress:

sudo nano /var/www//wp-config.php

Recherchez la section contenant les valeurs factices pour ces paramètres. Cela ressemblera à ceci:

/var/www/wordpress/wp-config.php

. . .

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:

/var/www/wordpress/wp-config.php

. . .

define('AUTH_KEY',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');

. . .

Ensuite, nous devons modifier certains paramètres de connexion à la base de données au début du fichier. Vous devez ajuster le nom de la base de données, l’utilisateur de la base de données et le mot de passe associé que nous avons configuré dans MySQL.

L’autre modification à apporter consiste à définir la méthode que WordPress doit utiliser pour écrire dans le système de fichiers. Étant donné que nous avons donné au serveur Web le droit d’écrire à l’endroit voulu, nous pouvons explicitement définir la méthode du système de fichiers sur «direct». Si nous ne définissons pas cela avec nos paramètres actuels, WordPress demanderait les informations d’identification FTP lorsque nous effectuons certaines actions. Ce paramètre peut être ajouté sous les paramètres de connexion à la base de données ou n’importe où dans le fichier:

/var/www/wordpress/wp-config.php

. . .

define('DB_NAME', '');

/** MySQL database username */
define('DB_USER', '');

/** MySQL database password */
define('DB_PASSWORD', '');

. . .

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 6 - Fin de l’installation via l’interface Web

Maintenant que la configuration du serveur est terminée, nous pouvons terminer l’installation via l’interface Web.

Dans votre navigateur Web, accédez au nom de domaine ou à l’adresse IP publique de votre serveur:

http://

Sélectionnez la langue que vous souhaitez utiliser:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/language_selection.png [sélection de la langue WordPress]

Ensuite, vous arriverez à la page de configuration principale.

Sélectionnez un nom pour votre site WordPress et choisissez un nom d’utilisateur (il est recommandé de ne pas choisir quelque chose comme «admin» pour des raisons de sécurité). Un mot de passe fort est généré automatiquement. Enregistrez ce mot de passe ou sélectionnez un autre mot de passe fort.

Entrez votre adresse électronique et indiquez si vous souhaitez dissuader les moteurs de recherche d’indexer votre site:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/setup_installation.png [Installation de l’installation WordPress]

Lorsque vous cliquez en avant, vous accédez à une page qui vous invite à vous connecter:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/login_prompt.png [invite de connexion WordPress]

Une fois connecté, vous serez dirigé vers le tableau de bord d’administration WordPress:

image: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/admin_screen.png [invite de connexion WordPress]

Conclusion

WordPress doit être installé et prêt à être utilisé! La prochaine étape courante consiste à choisir le paramètre de permalien pour vos publications (se trouvant dans + Paramètres> Permaliens +) ou à sélectionner un nouveau thème (dans + Apparence> Thèmes +). Si vous utilisez WordPress pour la première fois, explorez un peu l’interface pour vous familiariser avec votre nouveau CMS.