Comment installer WordPress avec LAMP sur Ubuntu 18.04

Introduction

WordPress est le CMS (système de gestion de contenu) le plus populaire sur Internet. Il vous permet de facilement créer des blogs et des sites Web flexibles en s’appuyant sur un back-end MySQL avec traitement PHP. WordPress a rencontré un succès incroyable, et c’est un excellent choix pour créer rapidement un site Web. Une fois WordPress configuré, presque toute l’administration peut se faire via l’interface Web.

Dans ce guide, nous allons nous concentrer sur la mise en place d’une instance WordPress sur une pile LAMP (Linux, Apache, MySQL et PHP) sur un serveur Ubuntu 18.04.

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

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

Pour commencer, connectez-vous au compte root (administratif) de MySQL en exécutant cette commande :

mysql -u root -p

Le mot de passe que vous avez défini pour le compte root MySQL lors de son installation vous sera demandé.

Pour commencer, nous pouvons créer une base de données séparée que WordPress contrôlera. Vous pouvez l’appeler comme vous le souhaitez, mais nous la nommerons** wordpress** dans ce guide par souci de simplicité. Créez la base de données pour WordPress en tapant :

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Remarque : chaque instruction MySQL doit se terminer par un point-virgule (;). Vérifiez qu’il est bien présent si vous rencontrez des problèmes.

Ensuite, nous allons créer un compte utilisateur MySQL distinct que nous utiliserons exclusivement pour exploiter notre nouvelle base de données. La création de bases de données et de comptes n’ayant qu’une seule fonction 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 à le modifier si vous le souhaitez.

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

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

Vous disposez désormais d’une base de données et d’un compte d’utilisateur, chacun spécialement conçu pour WordPress. Nous devons purger les privilèges afin que l’instance actuelle de MySQL soit au courant des récents changements que nous avons apportés :

FLUSH PRIVILEGES;

Sortez de MySQL en tapant :

EXIT;

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

Lors de la mise en place de notre pile LAMP, nous n’avons eu besoin que d’un ensemble très limité d’extensions pour que PHP puisse communiquer avec MySQL. WordPress et beaucoup de ses plugins utilisent des extensions PHP supplémentaires.

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

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

Remarque : chaque plugin WordPress a ses propres exigences. Certains peuvent nécessiter l’installation de packages PHP supplémentaires. Consultez la documentation de votre plugin pour connaître ses besoins en matière de PHP. S’ils sont disponibles, ils peuvent être installés avec apt comme illustré ci-dessus.

Nous allons redémarrer Apache pour charger ces nouvelles extensions dans la prochaine section. Si vous revenez ici pour installer des plugins supplémentaires, vous pouvez redémarrer Apache maintenant en tapant :

sudo systemctl restart apache2

Étape 3 – Ajustement de la configuration d’Apache pour autoriser .htaccess à remplacer et réécrire

Nous allons maintenant procéder à quelques ajustements mineurs de notre configuration Apache. Après avoir suivi les tutoriaux préalables, vous devez disposer d’un fichier de configuration pour votre site dans le répertoire /etc/apache2/sites-available/. Nous utiliserons ici /etc/apache2/sites-available/wordpress.conf comme exemple, mais vous devez le remplacer par le chemin d’accès à votre fichier de configuration s’il est différent.

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.

Remarque : il est possible que vous utilisiez la configuration par défaut 000-default.conf (avec /var/www/html comme racine Web). Cette configuration fonctionnera si vous ne souhaitez héberger qu’un seul site Web sur ce serveur. Sinon, il est préférable de diviser la configuration nécessaire en blocs logiques, un fichier par site.

Autoriser les remplacements .htaccess

Actuellement, l’utilisation des fichiers .htaccess est désactivée. WordPress et beaucoup de ses plugins utilisent ces fichiers de manière intensive pour ajuster dans le répertoire le comportement du serveur Web.

Ouvrez le fichier de configuration Apache pour votre site Web :

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

Pour autoriser les fichiers .htaccess, nous devons paramétrer la directive AllowOverride dans un bloc Directory pointant vers la racine de notre document. Ajoutez le bloc de texte suivant dans le bloc VirtualHost de votre fichier de configuration, en veillant à utiliser le bon répertoire racine Web : /etc/apache2/sites-available/wordpress.conf

<Directory /var/www/wordpress/>
    AllowOverride All
</Directory>

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

Activer le module de réécriture

Ensuite, nous pouvons activer mod_rewrite afin de pouvoir utiliser la fonction de permalien de WordPress :

sudo a2enmod rewrite

Activer les modifications

Avant d’implémenter les modifications que nous avons apportées, vérifions que nous n’avons pas fait d’erreurs de syntaxe :

sudo apache2ctl configtest

La sortie pourrait avoir un message qui ressemble à ceci :

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 simplement une directive ServerName à votre fichier de configuration principal (global) d’Apache à l’emplacement /etc/apache2/apache2.conf. Le ServerName peut être le domaine ou l’adresse IP de votre serveur. Ce n’est toutefois qu’un simple message qui n’affecte pas la fonctionnalité de notre site. Tant que la sortie contient Syntax OK, vous êtes prêt à continuer.

Redémarrez Apache pour implémenter les modifications :

sudo systemctl restart apache2

Nous allons ensuite télécharger et mettre en place WordPress lui-même.

Étape 4 – Téléchargement de WordPress

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

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

cd /tmp
curl -O https://fr-ca.wordpress.org/latest-fr_CA.tar.gz

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

tar xzvf latest-fr_CA.tar.gz

Nous allons déplacer ces fichiers à la racine de notre document dans un instant. Avant cela, nous pouvons ajouter un fichier .htaccess factice afin qu’il soit disponible pour une utilisation ultérieure par WordPress.

Créez le fichier en tapant :

touch /tmp/wordpress/.htaccess

Nous allons également copier le fichier de configuration type au nom de fichier que WordPress lit réellement :

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

Nous pouvons également créer le répertoire upgrade afin que WordPress ne rencontre pas de problèmes d’autorisations lorsqu’il essaie de le faire seul suite à une mise à jour logicielle :

mkdir /tmp/wordpress/wp-content/upgrade

Nous pouvons maintenant copier l’intégralité du contenu du répertoire à la racine de notre document. Nous ajoutons 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 (tels que le fichier .htaccess que nous avons créé) :

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

Étape 5 – Configuration du répertoire WordPress

Avant de procéder à la configuration Web de WordPress, nous devons ajuster certains éléments de notre répertoire WordPress.

Ajuster la propriété et les autorisations

L’une des choses les plus importantes que nous devons faire est de mettre en place des autorisations de fichiers raisonnables et d’en définir la propriété.

Nous allons commencer par donner 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 fonctionne, et Apache devra pouvoir lire et écrire des fichiers WordPress afin de servir le site Web et d’effectuer des mises à jour automatiques.

Mettez à jour la propriété avec chown :

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

Nous allons ensuite lancer deux commandes find pour définir les autorisations correctes sur les répertoires et les fichiers WordPress :

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

Cet ensemble d’autorisations devrait être raisonnable pour commencer. Certains plugins et certaines procédures peuvent nécessiter des ajustements supplémentaires.

Modifier le fichier de configuration WordPress

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

À l’ouverture du fichier, notre première tâche consistera à ajuster certaines clés secrètes pour assurer un minimum de sécurité à notre 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. Elles ne sont utilisées qu’en interne, si bien qu’il n’est pas gênant d’avoir des valeurs complexes et sûres ici.

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

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

Vous récupérerez des valeurs uniques qui ressemblent à ceci :

Attention ! Il est important que vous demandiez des valeurs uniques à chaque fois. Ne copiez PAS les valeurs indiquées ci-dessous !

Outputdefine('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
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&%');

Il s’agit de lignes de configuration que nous pouvons coller directement dans notre fichier de configuration pour définir des clés sécurisées. Copiez la sortie que vous venez d’obtenir.

Maintenant, ouvrez le fichier de configuration de WordPress :

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

Trouvez la section qui contient les valeurs factices pour ces paramètres. Elle ressemblera à cela : /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 depuis 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, nous devons modifier certains des 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 que nous devons apporter est de définir la méthode que WordPress doit utiliser pour écrire dans le système de fichiers. Comme nous avons donné au serveur Web la permission d’écrire là où il en a besoin, nous pouvons explicitement définir la méthode du système de fichiers sur « direct ». Si nous ne configurons pas la méthode avec nos paramètres actuels, WordPress demandera les informations d’identification FTP lorsque nous effectuerons 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

. . .

define('DB_NAME', 'wordpress');

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

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

. . .

define('FS_METHOD', 'direct');

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 6 – Finalisation de l’installation via l’interface Web

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

Dans votre navigateur Web, naviguez jusqu’au nom de domaine ou à l’adresse IP publique de votre serveur :

https://server_domain_or_IP

Sélectionnez la langue que vous souhaitez utiliser :

WordPress language selection

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 choisissez un autre mot de passe fort.

Entrez votre adresse e-mail et choisissez si vous voulez demander aux moteurs de recherche de ne pas indexer votre site :

WordPress setup installation

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

WordPress login prompt

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

Conclusion

WordPress devrait être installé et prêt à l’emploi ! Les étapes suivantes consistent généralement à choisir le réglage des permaliens pour vos messages dans Settings > Permalinks (Réglages > Permaliens) ou à sélectionner un nouveau thème dans Appearance > Themes​​​ (​Apparence > Thèmes). Si c’est la première fois que vous utilisez WordPress, explorez un peu l’interface pour vous familiariser avec votre nouveau CMS.