Installer WordPress avec LAMP sur un serveur Debian

WordPress est aujourd’hui un CMS incontournable, que vous souhaitiez créer un blog, un site de e-commerce ou encore votre portfolio. Nous allons voir dans cet article comment mettre en place LAMP (acronyme de Linux, Apache MySQL et PHP), puis installer la dernière version de WordPress.

Installer LAMP

Avec un utilisateur ayant les droits sudo, exécutez la commande suivante :
sudo apt-get install apache2 apache2-utils php libapache2-mod-php php-mysql php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip mariadb-server mariadb-client

Installation de LAMP

Vérifier le statut du serveur Apache

Pour vérifier que le serveur web Apache est bien actif, exécutez la commande suivante :
sudo systemctl status apache2

Au cas où il est inactif, activez-le avec :
sudo systemctl start apache2

Pour qu’il soit activé par défaut au démarrage du serveur :
sudo systemctl enable apache2

Pour le redémarrer :
sudo systemctl restart apache2

Configurer le firewall pour autoriser les connexions HTTP (80) et HTTPS (443)

Une seule commande UFW suffit pour ouvrir les ports 80 et 443 :
sudo ufw allow 'WWW Full'

« WWW Full » correspond à un profil UFW. Vous pouvez voir les profils existants sur votre système dans le répertoire /etc/ufw/applications.d/ . Exemple :

En regardant le contenu de ufw-webserver, vous pouvez voir à quoi correspond « WWW Full » :

Vérifier la connexion au serveur Apache

Si les étapes précédents se sont bien déroulées, si vous ouvrez votre navigateur et entrez l’adresse IP de votre serveur (sur un réseau local elle ressemblerait à 192.168.0.2) la page suivante doit s’afficher :

Création d’un hôte virtuel (Virtual Host)

Vous pouvez héberger plusieurs sites sur votre serveur web Apache, chacun correspondant à ce qu’on appelle un VirtualHost. Ces derniers sont définis par un fichier de configuration distinct que l’on crée dans le répertoire /etc/apache2/sites-available/ .

Nous allons donc créer un hôte virtuel pour notre site WordPress, en considérant que nous avons déjà un nom de domaine pour ce dernier.

Créer le fichier de configuration suivant à l’aide d’un éditeur de texte :
sudo vi /etc/apache2/sites-available/[votre nom de domaine].conf

Copiez-coller ensuite l’exemple suivant et compléter avec les informations relatives à votre domaine :

<VirtualHost *:80>
    ServerAdmin admin@[votre nom de domaine]
    ServerName [votre nom de domaine]
    ServerAlias www.[votre nom de domaine]
    DocumentRoot /var/www/[votre nom de domaine]/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Activez ensuite votre nouvel hôte virtuel et redémarrer l’Apache avec les commandes suivantes :
sudo a2ensite [votre nom de domaine].conf
sudo systemctl reload apache2

Sécuriser l’instance MySQL

Tout d’abord, sécurisons notre instance MySQL en exécutant le script suivant :
sudo mysql_secure_installation

Vous pouvez répondre oui à toutes les questions (sauf peut-être le changement de mot de passe root).

Créer la base de données MySQL en ligne de commande

Il est temps de créer notre base de donnée WordPress en nous connectant à l’invite de commande mysql en tant qu’utilisateur root.

$ sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE monSite;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON monSite.* TO 'monSiteAdmin'@'localhost' IDENTIFIED BY  'MotDePasseSecurisé!';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Récupérer la dernière version de WordPress

Depuis votre répertoire /home, récupérez la dernière archive de WordPress avec la commande suivante :
wget http://wordpress.org/latest.tar.gz

Extraire le contenu de l’archive WordPress et le copier dans le dossier de notre hôte virtuel

Exécutez les commandes à la suite :

$ sudo tar xvzf latest.tar.gz
$ sudo mkdir -p  /var/www/[votre nom de domaine]
$ sudo cp -r wordpress/*  /var/www/[votre nom de domaine]

Avant de vous lancer dans la configuration de l’instance WordPress, lancez les commandes ci-dessous. Elles permettent de s’assurer que les services Apache et MySQL ont bien pris en compte nos dernières modification en les redémarrant, puis de modifier les droits du répertoire /var/www/[votre nom de domaine] afin que WordPress puisse y avoir accès en écriture.

$ sudo service apache2 restart
$ sudo service mysql restart
$ sudo chown -R www-data  /var/www/[votre nom de domaine]
$ sudo chmod -R 755  /var/www/[votre nom de domaine]

Se connecter à l’assistant d’installation WordPress et configurer le site

Ouvrez un navigateur et entrez l’adresse IP de votre serveur.

L’assistant d’installation WordPress s’affiche et vous aurez à suivre les étapes suivantes :
– Choix du langage
– Configuration de la BDD (avec les paramètres que nous avons défini dans les étapes précédentes)
– Configuration du site

A l’issue de l’installation, vous serez invités à vous logger puis serez redirigé vers le dashboard WordPress.

Modifier les permissions du répertoires /var/www/[votre nom de domaine]

Avant de commencer à customiser notre site WordPress, n’oublions pas de remettre les permissions de notre dossier à l’état initial.

Exécutez la commande :
sudo chown -R root /var/www/[votre nom de domaine]

Remarque : si vous faites cela vous ne pourrez pas faire les mises à jour WordPress à partir de l’interface car l’utilisateur qui fait tourner votre serveur web (www-data) ne pourra pas modifier les fichiers. Vous pouvez soit laisser les permissions de départ à www-data, soit les modifier avant chaque mise à jour via la commande :
sudo chown www-data:www-data -R *

Ce n’est pas fini !

WordPress est maintenant installé, nous avons un serveur Web Apache et une base de données MySQL qui tournent, mais il reste encore quelques points à voir pour que l’environnement soit complètement terminé :

Partager sur :