Comment installer WordPress sur Ubuntu 22.04 avec une pile LAMP

De Get Docs
Aller à :navigation, rechercher

Introduction

WordPress est un système de gestion de contenu (CMS) populaire et open source qui permet aux utilisateurs de créer, personnaliser et gérer le contenu de leur site Web. Un CMS fournit l'infrastructure de base pour créer un site Web, ce qui est utile pour les utilisateurs qui n'ont peut-être pas les connaissances nécessaires pour créer et coder leur propre site Web à partir de zéro. Le CMS WordPress dispose de nombreux outils de personnalisation, tels qu'un tableau de bord administratif avec une interface conviviale pour créer de nouvelles pages Web, ajouter des médias, etc. Pour ces raisons, WordPress est l'un des CMS les plus utilisés sur le marché aujourd'hui.

Il existe de nombreuses approches différentes pour accéder à WordPress, mais certains processus de configuration sont plus complexes que d'autres. Ce tutoriel est destiné à ceux qui souhaitent installer et administrer une instance WordPress sur un serveur cloud non géré via la ligne de commande. Bien que cette approche nécessite plus d'étapes qu'une installation WordPress prête à l'emploi, elle offre aux administrateurs un meilleur contrôle sur leur environnement WordPress.

Ce tutoriel utilisera une pile LAMP (Linux, Apache, MySQL et PHP), qui est une option pour une architecture de serveur prenant en charge WordPress en fournissant le système d'exploitation Linux, le serveur Web Apache, la base de données MySQL et le langage de programmation PHP. Nous allons installer et configurer WordPress via LAMP sur un serveur Linux Ubuntu 22.04.

En fonction de vos besoins et de vos objectifs, vous trouverez peut-être d'autres options plus adaptées. En tant que logiciel open source, WordPress peut être téléchargé et installé gratuitement, mais pour être disponible sur le Web, vous devrez probablement acheter une infrastructure cloud et un nom de domaine. Continuez à suivre ce guide si vous souhaitez travailler sur l'installation et la configuration côté serveur d'un site WordPress.

Si vous cherchez à accéder à une installation WordPress prête à l'emploi, DigitalOcean Marketplace propose une application en un clic pour vous permettre de démarrer avec WordPress via l'installation lors de la mise en marche de votre serveur.


Conditions préalables

Pour terminer ce tutoriel, vous aurez besoin de :

  • Un serveur Ubuntu 22.04 configuré en suivant le Guide de configuration initiale du serveur Ubuntu 22.04. Assurez-vous d'avoir un utilisateur et un pare-feu non root sudo activés.
  • Une pile LAMP installée sur votre serveur. Suivez notre guide sur Comment installer la pile Linux, Apache, MySQL, PHP (LAMP) sur Ubuntu 22.04 pour installer et configurer ce logiciel.
  • Votre site sécurisé avec des certificats TLS/SSL. WordPress prend en compte les entrées des utilisateurs et stocke les données des utilisateurs, il est donc important qu'il ait une couche de sécurité. TLS/SSL est la technologie qui vous permet de crypter le trafic de votre site afin que votre connexion et celle de vos utilisateurs soient sécurisées. Voici deux options disponibles pour répondre à cette exigence : Si vous avez un nom de domaine, vous pouvez sécuriser votre site avec Let's Encrypt, qui fournit des certificats gratuits et fiables. Suivez notre guide Let's Encrypt pour Apache pour le configurer. Si vous n'avez pas de domaine et que vous n'utilisez cette configuration qu'à des fins de test ou à des fins personnelles, vous pouvez utiliser un certificat auto-signé à la place. Cela fournit le même type de cryptage, mais sans validation de domaine. Suivez notre guide SSL auto-signé pour Apache pour vous installer.

Lorsque vous avez terminé la configuration, connectez-vous à votre serveur en tant qu'utilisateur sudo et passez à la première étape.

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

La première étape est préparatoire. WordPress utilise MySQL pour gérer et stocker les informations sur le site et les utilisateurs. MySQL est déjà installé, mais vous devez créer une base de données et un utilisateur pour WordPress.

Pour commencer, connectez-vous au compte MySQL root (administrateur) en exécutant la commande suivante (notez qu'il ne s'agit pas de l'utilisateur root de votre serveur) :

sudo mysql

Remarque : Si vous avez installé MySQL en suivant un didacticiel autre que celui répertorié dans les prérequis, vous avez peut-être activé l'authentification par mot de passe pour votre utilisateur root MySQL. Si c'est le cas, vous pouvez vous connecter à MySQL avec la commande suivante :

mysql -u root -p

Dans la base de données, créez une base de données dédiée à contrôler par WordPress. Vous pouvez l'appeler comme vous le souhaitez, mais nous utiliserons le nom wordpress dans ce guide. Créez la base de données pour WordPress en exécutant la commande suivante :

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Remarque : Chaque instruction MySQL doit se terminer par un point-virgule (;). Assurez-vous que cela est présent si vous rencontrez des problèmes.


Ensuite, vous allez créer un compte utilisateur MySQL distinct que vous utiliserez exclusivement pour faire fonctionner votre nouvelle base de données. La création de bases de données et de comptes spécifiques peut vous aider du point de vue de la gestion et de la sécurité. Nous utiliserons le nom wordpressuser dans ce guide, mais n'hésitez pas à utiliser le nom que vous préférez pour cette utilisation.

Vous pouvez créer cet utilisateur en exécutant la commande suivante. N'oubliez pas de choisir ici un mot de passe fort pour votre utilisateur de base de données où nous avons password :

CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Ensuite, faites savoir à la base de données que votre wordpressuser devrait avoir un accès complet à la base de données que vous avez configurée :

GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

Vous avez maintenant une base de données et un compte utilisateur, chacun spécialement conçu pour WordPress. Vous devez vider les privilèges pour que l'instance actuelle de MySQL soit informée des modifications récentes apportées :

FLUSH PRIVILEGES;

Quittez MySQL en écrivant ce qui suit :

EXIT;

Dans l'étape suivante, vous poserez les bases des plugins WordPress en téléchargeant des extensions PHP pour votre serveur.

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

Lors de la configuration de notre pile LAMP, nous n'avions besoin que d'un ensemble très minimal d'extensions pour que PHP puisse communiquer avec MySQL. Cependant, WordPress et bon nombre de ses plugins exploitent des extensions PHP supplémentaires.

Vous pouvez télécharger et installer certaines des extensions PHP les plus populaires à utiliser avec WordPress. Mais d'abord, utilisez les outils de gestion de packages APT pour mettre à jour votre index de packages local :

sudo apt update

Ensuite vous pouvez installer les différentes extensions PHP pour WordPress :

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

Cela jettera les bases pour l'installation de plugins supplémentaires sur votre site WordPress.

Remarque : Chaque plugin WordPress a son propre ensemble d'exigences. Certains peuvent nécessiter l'installation de packages PHP supplémentaires. Consultez la documentation de votre plugin pour découvrir ses exigences PHP. S'ils sont disponibles, ils peuvent être installés avec apt comme illustré dans l'exemple précédent.


Vous devrez redémarrer Apache pour charger ces nouvelles extensions. Dans la section suivante, vous apporterez quelques modifications supplémentaires à la configuration d'Apache, vous pouvez donc attendre jusque-là ou redémarrer maintenant pour terminer le processus d'extension PHP :

sudo systemctl restart apache2

Après avoir redémarré, ou si vous choisissez d'attendre, vous pouvez passer à la section suivante pour commencer à apporter des modifications à la configuration d'Apache.

Étape 3 - Ajustement de la configuration d'Apache pour autoriser les remplacements et les réécritures .htaccess

Ensuite, vous apporterez quelques ajustements mineurs à votre configuration Apache. Sur la base des tutoriels prérequis, vous devriez avoir un fichier de configuration pour votre site dans le répertoire /etc/apache2/sites-available/.

Dans ce guide, nous utiliserons /etc/apache2/sites-available/wordpress.conf comme exemple, mais vous devez remplacer le chemin de votre fichier de configuration existant, le cas échéant. De plus, nous utiliserons /var/www/wordpress comme répertoire racine de notre installation WordPress. Vous devez utiliser la racine Web spécifiée dans votre propre configuration. Si vous avez suivi notre tutoriel LAMP, il se peut qu'il s'agisse de votre nom de domaine au lieu de wordpress dans ces deux cas.

Remarque : Il est possible que vous utilisiez la configuration par défaut 000-default.conf (avec /var/www/html comme racine Web). C'est très bien à utiliser si vous n'allez héberger qu'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.


Une fois vos chemins identifiés, vous pouvez passer à l'utilisation de .htaccess afin qu'Apache puisse gérer les modifications de configuration par répertoire.

Activation des remplacements .htaccess

Actuellement, l'utilisation des fichiers .htaccess est désactivée. WordPress et de nombreux plugins WordPress utilisent largement ces fichiers pour les ajustements dans le répertoire du comportement du serveur Web.

Ouvrez le fichier de configuration Apache de votre site Web avec votre éditeur de texte préféré. Ici, nous utiliserons nano :

sudo nano /etc/apache2/sites-available/wordpress.conf

Pour autoriser les fichiers .htaccess, vous devez définir la directive AllowOverride dans un bloc Directory pointant vers la racine de votre document. Ajoutez le contenu suivant dans le bloc VirtualHost de votre fichier de configuration, en vous assurant d'utiliser le répertoire racine Web correct :

/etc/apache2/sites-available/wordpress.conf

<VirtualHost *:80>
. . .
    <Directory /var/www/wordpress/>
        AllowOverride All
    </Directory>
. . .
</VirtualHost>

Lorsque vous avez terminé, enregistrez et fermez le fichier. Dans nano, vous pouvez le faire en appuyant simultanément sur CTRL et X, puis sur Y et ENTER.

Activation du module de réécriture

Ensuite, vous pouvez activer mod_rewrite afin de pouvoir utiliser la fonctionnalité de permalien de WordPress :

sudo a2enmod rewrite

Cela vous permet d'avoir plus de permaliens lisibles par l'homme vers vos messages, comme les deux exemples suivants :

http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name

La commande a2enmod appelle un script qui active le module spécifié dans la configuration Apache.

Activer les modifications

Avant d'implémenter les modifications que vous avez apportées, vérifiez que vous n'avez pas fait d'erreurs de syntaxe en exécutant le test suivant :

sudo apache2ctl configtest

Vous pouvez recevoir une sortie comme celle-ci :

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Si vous souhaitez supprimer la première ligne, ajoutez une directive ServerName à votre fichier de configuration Apache principal (global) à /etc/apache2/apache2.conf. Le ServerName peut être le domaine ou l'adresse IP de votre serveur. Cependant, il ne s'agit que d'un message d'avertissement qui n'affecte pas la fonctionnalité de votre site. Tant que la sortie contient Syntax OK, vous êtes prêt à continuer.

Redémarrez Apache pour implémenter les modifications. Assurez-vous de redémarrer maintenant même si vous avez redémarré plus tôt dans ce tutoriel :

sudo systemctl restart apache2

Ensuite, vous téléchargerez et configurerez WordPress lui-même.

Étape 4 — Téléchargement de WordPress

Maintenant que votre logiciel serveur est configuré, vous pouvez télécharger et configurer WordPress. Pour des raisons de sécurité, il est toujours recommandé d'obtenir la dernière version de WordPress sur leur site.

Tout d'abord, accédez à un répertoire accessible en écriture (nous recommandons un répertoire temporaire comme /tmp) :

cd /tmp

Téléchargez ensuite la version compressée avec la commande curl suivante :

curl -O https://wordpress.org/latest.tar.gz

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

tar xzvf latest.tar.gz

Vous déplacerez momentanément ces fichiers dans la racine de votre document. Avant de le faire, vous pouvez ajouter un fichier factice .htaccess afin qu'il soit disponible pour WordPress pour une utilisation ultérieure.

Créez le fichier en exécutant la commande suivante :

touch /tmp/wordpress/.htaccess

Vous copierez également l'exemple de fichier de configuration dans le nom de fichier lu par WordPress :

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

De plus, créez le répertoire upgrade afin que WordPress ne rencontre pas de problèmes d'autorisations en essayant de le faire seul suite à une mise à jour de son logiciel :

mkdir /tmp/wordpress/wp-content/upgrade

Vous pouvez maintenant copier tout le contenu du répertoire dans la racine de votre document. 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 les fichiers cachés (comme le fichier .htaccess que nous avons créé). Assurez-vous de remplacer le répertoire /var/www/wordpress par le répertoire que vous avez configuré sur votre serveur :

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

Vous êtes maintenant prêt à configurer votre répertoire WordPress.

Étape 5 - Configuration du répertoire WordPress

Avant de commencer la configuration Web de WordPress, vous devez ajuster certains éléments de votre répertoire WordPress.

Ajustement de la propriété et des autorisations

Une autre étape importante consiste à configurer des autorisations de fichiers raisonnables et la propriété des fichiers et des répertoires que WordPress utilise pour fonctionner.

Commencez par attribuer la propriété de tous les fichiers à l'utilisateur et au groupe www-data. Il s'agit de l'utilisateur sous lequel le serveur Web Apache s'exécute, et Apache devra être capable de lire et d'écrire des fichiers WordPress afin de servir le site Web et d'effectuer des mises à jour automatiques.

Mettez à jour la propriété avec la commande chown qui vous permet de modifier la propriété du fichier. Assurez-vous de pointer vers le répertoire pertinent de votre serveur :

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

Ensuite, exécutez deux commandes find pour définir les autorisations correctes sur les répertoires et fichiers WordPress. Cette première commande find définit chaque répertoire dans le répertoire /var/www/<>^wordpress<^> et définit les autorisations de chacun sur 750 :

sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;

Celui-ci trouve chaque fichier dans le répertoire et définit leurs autorisations sur 640 :

sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Ces autorisations devraient vous permettre de travailler efficacement avec WordPress, mais notez que certains plugins et procédures peuvent nécessiter des ajustements supplémentaires.

Configuration du fichier de configuration WordPress

Maintenant, vous devez apporter quelques modifications au fichier de configuration principal de WordPress.

Lorsque vous ouvrez le fichier, votre première tâche sera d'ajuster certaines clés secrètes pour fournir un niveau de sécurité à votre installation. WordPress fournit un générateur sécurisé pour ces valeurs afin que vous n'ayez pas à essayer de trouver de bonnes valeurs par vous-même. Ceux-ci ne sont utilisés qu'en interne, donc cela ne nuira pas à la convivialité d'avoir des valeurs complexes et sécurisées ici.

Pour récupérer les valeurs sécurisées du générateur de clé secrète WordPress, exécutez ce qui suit :

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

Vous recevrez des valeurs uniques qui ressemblent à une sortie semblable à ce qui suit :

Attention ! Il est important que vous demandiez des valeurs uniques à chaque fois. Ne copiez PAS les exemples de valeurs suivants !


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

Ce sont des lignes de configuration que vous pouvez placer directement dans votre fichier de configuration pour définir des clés sécurisées. Copiez la sortie que vous avez reçue maintenant.

Ensuite, ouvrez le fichier de configuration WordPress :

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

Recherchez la section contenant les exemples de valeurs pour ces paramètres :

/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 insérez les valeurs que vous avez copiées à partir de la ligne de commande :

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

. . .

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, vous allez 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 vous avez configuré dans MySQL.

L'autre changement que vous devez apporter est de définir la méthode que WordPress doit utiliser pour écrire dans le système de fichiers. Puisque vous avez donné au serveur Web la permission d'écrire là où il le faut, vous pouvez définir explicitement la méthode du système de fichiers sur "direct". Si vous ne définissez pas cela avec vos paramètres actuels, WordPress vous demandera des informations d'identification FTP lors de l'exécution de certaines actions.

Ce paramètre peut être ajouté sous les paramètres de connexion à la base de données, ou n'importe où ailleurs dans le fichier :

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

. . .

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

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

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

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );


. . .

define('FS_METHOD', 'direct');

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 6 - Terminer l'installation via l'interface Web

Maintenant que la configuration du serveur est terminée, vous pouvez 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 :

https://server_domain_or_IP

Vous serez invité à sélectionner la langue que vous souhaitez utiliser :

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 choisir quelque chose d'unique et d'éviter les noms d'utilisateur courants 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.

Saisissez votre adresse e-mail et indiquez si vous souhaitez décourager les moteurs de recherche d'indexer votre site :

Lorsque vous cliquez dessus, vous serez redirigé vers une page qui vous invite à vous connecter :

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

À ce stade, vous pouvez commencer à concevoir votre site Web WordPress. Si c'est la première fois que vous utilisez WordPress, explorez l'interface pour vous familiariser avec votre nouveau CMS.

Conclusion

Félicitations, WordPress est maintenant installé et prêt à être utilisé.

À ce stade, vous voudrez peut-être commencer à faire ce qui suit :

  • Choisissez votre paramètre de permaliens pour les publications WordPress, qui se trouve dans Paramètres > Permaliens.
  • Sélectionnez un nouveau thème dans Apparence > Thèmes.
  • Installez de nouveaux plugins pour augmenter les fonctionnalités de votre site sous Plugins > Ajouter un nouveau.
  • Si vous avez l'intention de collaborer avec d'autres personnes, vous pouvez également ajouter des utilisateurs supplémentaires à ce stade sous Utilisateurs > Ajouter un nouveau.

Vous pouvez vous référer à d'autres ressources sur d'autres façons d'installer WordPress, apprendre à installer WordPress sur différentes distributions de serveurs, automatiser vos installations WordPress et faire évoluer vos sites WordPress en consultant notre WordPress Community tag.