Installation de WordPress “from scratch”

Logos Wordpress & Debian
Installer Wordpress sur Debian from scratch

Si vous venez d’acquérir un VPS pour mettre en place votre site web utilisant WordPress alors vous êtes au bon endroit. Nous allons détailler dans ce guide l’installation d’un site web utilisant WordPress sur un Serveur Privé Virtuel tout neuf utilisant debian (Installation dite “from scratch”.

Pré-requis :

  • Un accès SSH à votre VPS
  • Un VPS sous linux (Nous utilisons DEBIAN 10 sur ce guide)

Comme précisé nous utilisons un serveur qui tourne sous Debian 10 (Buster) il se peut que certaines étapes diffèrent légèrement en fonction de la distribution que vous utilisez.

Commençons par réaliser la mise à jour des paquets avec :

sudo apt-get update
sudo apt-get upgrade

1 – Installation de la pile (stack) LAMP

Tout d’abord nous allons installer la partie dite “serveur” des applications. Nous allons utiliser une pile (Stack en Anglais) LAMP, LAMP est un acronyme de :

  • Linux
  • Apache
  • MySQL
  • PHP

A – Apache et Firewall

On commence par installer Apache2 et UFW. Apache2 est le serveur WEB qui affichera les pages aux utilisateurs et UFW est installé par précaution pour protéger votre serveur.

sudo apt install ufw
sudo ufw allow OpenSSH
sudo ufw allow SSH
sudo ufw allow https
sudo ufw allow in "WWW Full"
sudo ufw enable
sudo apt install apache2

Une fois apache2 installé on peut alors voir en se rendant via un navigateur sur notre serveur la page d’accueil par défaut :

Ca veut dire qu’apache est bien installé et opérationnel.

2 – MariaDB (MySQL)

Avec Debian nous installons MariaDB pour utiliser MySQL :

sudo apt install mariadb-server

Puis nous lancons le script d’installation de MySQL avec :

sudo mysql_secure_installation

Puisqu’il s’agit de notre première installation il va falloir créer un mot de passe root, il faut donc répondre de la manière suivante aux prompts :

  • Enter
  • Y
  • Le mot de passe root de votre choix
  • Y
  • N
  • Y
  • Y

Création de l’utilisateur et la base de donnée pour WordPress

Maintenant que MySQL est paramétré nous allons nous y connecter, créer un utilisateur et une base de données.

sudo mysql
CREATE USER 'web'@'localhost' IDENTIFIED BY 'leMotDePasseDeVotreChoix';
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress . * TO 'web'@'localhost';  
FLUSH PRIVILEGES;
quit

Nous avons donc créé une base de donnée appelée “wordpress” et un utilisateur appelé “web” qui y a accès.
Pour vérifier que cela fonctionne bien, nous pouvons nous connecter avec le compte créé et voir la base :

mysql -u web -p

Saisissez votre mot de passe, puis :

SHOW DATABASES;

Vous devriez avoir un output similaire à :

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wordpress          |
+--------------------+
2 rows in set (0.000 sec)

3 – Installation de PHP

Nous allons maintenant installer PHP et ses dépendances, afin d’installer PHP 7.4 sous Debian nous devons d’abord ajouter les dépôts correspondants à APT :

sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt install php7.4
sudo apt install -y php7.4-common php7.4-xml php7.4-mysql php7.4-pdo php7.4-phar php7.4-simplexml php7.4-curl php7.4-mbstring php7.4-imagick php7.4-zip php7.4-gd libapache2-mod-php php-gd php-mysql sendmail
sudo a2enmod php7.4
sudo systemctl restart apache2

Pour vérifier que PHP est bien installé vous pouvez taper : pvp -v

Et vous devriez avoir un output similaire à :

PHP 7.4.20 (cli) (built: Jun  4 2021 23:17:27) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.20, Copyright (c), by Zend Technologies

4 – Installation de WordPress

Nous allons nous placer dans le dossier par défaut d’apache et y placer WordPress :

cd /var/www
sudo wget https://wordpress.org/latest.tar.g
sudo tar -xzvf latest.tar.g
sudo rm latest.tar.gz

Nous avons désormais un dossier wordpress contenant les fichiers pret à l’emploi. Il est possible de le renommer en utilisant :

sudo mv wordpress leNomQueVousVoulez

Nous allons modifier le fichier de configuration de wordpress avec les informations de la base de donnée que nous avons créé :

sudo nano wordress/wp-config-sample.php

Et modifier les lignes comme suit :

// ** 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', 'web' );

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

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

Puis nous allons renommer le fichier config en utilisant :

sudo mv wp-config-sample.php wp-config.php

5 – Mise en place du VHOST

Maintenant que wordpress est installé et configuré nous allons configurer apache pour qu’il nous serve notre site.

On duplique le vhost éxistant :

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/wordpress.conf

Puis on l’édite :

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

Votre fichier doit ressembler à ceci :

<VirtualHost *:80>
        # However, you must set it for any further virtual host explicitly.
        ServerName VotreNomDeDomaine.com
        ServerAlias www.VotreNomDeDomaine.com
        ServerAdmin webmaster@example.com
        DocumentRoot /var/www/html/wordpress
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Nous allons ensuite activer le site via apache2 avec :

sudo a2ensite wordpress.conf

Puis on redémarre Apache avec :

systemctl restart apache2

6 – Touches finales

Pour que tout soit bien configuré avec les bons droits nous allons modifier les droits d’écriture de certains dossiers et notamment du .htaccess de notre site avec :

sudo chown -R :www-data /var/www/wordpress/
sudo chown -v :www-data /var/www/wordpress/.htaccess

De cette manière Apache (Et par conséquent WordPress) peut éditer votre fichier htaccess et s’en servir pour mettre en place les permaliens / redirections.

Vous n’avez plus qu’à vous connecter à votre site en vous rendant sur votre nom de domaine et terminer de configurer votre site ! Voilà, vous avez procédé à l’installation de votre site WordPress sur votre Debian from scratch !

Pensez également à mettre en place votre ceritificat HTTPS avec Certbot !

0 Shares:
Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

You May Also Like