Dans ce tutoriel je vous décris pas à pas la procédure pour installer un serveur Apache 2 et PHP 7.3 sur un serveur VPS Linux sous Debian 10 en vue d’héberger votre site web sous WordPress.
Cette procédure est exactement celle que j’ai utilisée pour déployer mon serveur VPS pour SysKB. Elle est donc comme vous pouvez le constater parfaitement fonctionnelle.
En préambule
Il existe de nombreuses solutions pour héberger un site site WordPress.
Les plus basiques sont les offres d’hébergements mutualisées où vous partagez des ressources logicielles avec de nombreux autres utilisateurs. Il en résulte des performances très limitées qui se ressentent nettement sur la réactivité de votre site. Vous avez peu de contrôle sur votre environnement et le jour ou vous devez faire évoluer votre site les choses se compliquent sérieusement.
C’est sur ce type d’offre mutualisée que j’ai démarré SysKB en 2007 et le succès venant j’ai dû dans l’urgence trouver une solution alternative. La migration a été compliquée car je n’avais pas totalement le contrôle sur le site, la récupération de ma base de données était sportive et la copie du contenu assez laborieuse.
Cette expérience compliquée m’a définitivement convaincu de m’orienter vers une solution que j’installerai et gérerai moi même malgré mon manque de connaissance à cette époque. J’ai donc opté pour la location d’un VPS chez l’opérateur 1&1.
Après 10 ans d’utilisation je ne regrette absolument pas mon choix. Déjà parce que je n’ai rencontré AUCUNE panne compromettant le fonctionnement de SysKB, mais aussi parce que ces nouvelles compétences me donnent une liberté totale sur la gestion de SysKB. Et à bien y regarder ce n’est pas si compliquée.
Je sais désormais déployer un certificat SSL, faire des mises à jours mineures ou des mises à jours majeures sans aucun risque, mettre en place des sauvegardes de mon contenu ou encore activer des fonctionnalités avancées dans PHP impossibles à faire avec hébergement mutualisé.
Je suis capable désormais de migrer SysKB vers un nouveau VPS en quelques heures seulement sans prendre le moindre risque.
Les étapes pour déployer un site WordPress sur un VPS dédié ?
Pour installer votre propre environnement WordPress sur un VPS (Serveur virtuel) loué chez un hébergeur vous devez simplement déployer un stack de composants appelé LAMP. Ce stack LAMP est l’acronyme de Linux / Apache / MySQL ou MariaDB et PHP.
- Linux : C’est le système d’exploitation de votre VPS. Lorsque vous louez votre VPS chez un hébergeur le système d’exploitation est pré-installé. Veillez juste à bien sélectionner la distribution Linux que vous souhaitez déployer, dans mon cas j’ai choisi Debian 10. En cas d’erreur vous pouvez réinitialiser le VPS, c’est gratuit et ça ne prend que 5 minutes.
- Apache : C’est le moteur de votre serveur Web qui permet à vos visiteurs s’accéder à votre site en HTTP ou en HTTPS.
- MySQL : C’est le moteur de base de données requis pour l’exécution de la base de données WordPress.
- PHP : C’est l’interpréteur capable d’exécuter le code de WordPress.
Dans ce tuto je décris uniquement la partie Linux, Apache et PHP.
L’installation de MySQL est traité dans mon article comment installer MySQL sur un serveur Linux Debian. Ce n’est pas très compliqué en soit mais je trouve que ça méritait un article complet sur le sujet pur éviter de surcharger celui là.
Pour conclure mon introduction (!?!) je précise que tout ce qui suit est précisément ce que que j’ai fait pour déployer le VPS qui exécute SysKB lorsque je l’ai migré de Debian 8 Jessie vers Debian 10 Buster en Mars 2020.
Etape 1 – Obtenir votre VPS avec Linux Debian 10 “Buster”
Comme abordé en préambule je loue un VPS chez 1&1. Actuellement je loue un VPS de type L capable de supporter les 20 000 visiteurs quotidiens de SysKB. Je n’utile que 15 à 20% de mes ressources CPU/ RAM disponibles.
Lorsque vous commandez votre VPS celui ci est livré en quelques minutes seulement avec la distribution Linux de votre choix pré-installée.
Si jamais pendant l’installation vous faites des mauvaises manipulations ne vous inquiétez pas vous pouvez simplement réinitialiser le VPS avec le même OS ou un OS différent.
Notez également que chez 1&1 IONOS vous pouvez tester le VPS jusqu’à 30 jours gratuitement et sans engagement. Si ça ne vous convient pas vous résiliez directement depuis l’interface, il y a vraiment 0 embrouille avec eux. De même que leur service client est juste parfait, vous avez un humain au bout du fil en cas de besoin. Lorsque j’ai migré mon VPS le mois dernier j’ai appelé pour m’assurer que le transfert du nom de domaine et du certificat SSL d’un contrat vers un autre était transparent et le technicien m’a bien expliqué la procédure.
Etape 2 – Installer Apache sur Debian 10
Votre VPS est livré ? Vous allez donc sur votre interface d’administration de votre VPS afin de récupérer votre adresse IP dédiée et le mot de passe de votre compte root.
On se connecte en SSH avec PuTTY sur le serveur VPS et on tape la commande suivante pour s’assurer que le système Debian 10 dispose bien des dernières mises à jour. Le paramètre -y est pratique car il vous évite de taper Yes pour accepter des mises à jour.
sudo apt update && sudo apt -y upgrade
On installe maintenant la dernière version Apache ainsi que le module Apache permettant de supporter PHP. Il ne s’agit pas encore de l’installation de PHP.
apt install apache2 libapache2-mod-php
On indique au système que le service Apache doit démarrer automatiquement.
systemctl enable apache2
On active le module Apache Permalinks qui permet de personnaliser les liens de vos articles.
a2enmod rewrite
Activation du module Apache Rewrite permettant la réécriture des URL du site.
a2enmod rewrite
Activation du module Apache Headers permettant le support des entêtes sur votre site afin par exemple d’activer des fonctionnalité de cache permettant d’optimiser le chargement des pages.
a2enmod headers
Activation du module Apache Expires pour indiquer un délai d’expiration des pages dans les navigateurs des visiteurs.
a2enmod expires
Il s’agit maintenant d’autoriser l’utilisation des fichiers de configuration de site .htaccess permettant d’effectuer des paramétrages directement au niveau du répertoire racine de mon site plutôt que via les fichiers de configurations natifs de Apache. On édite le fichier 000-default.conf avec l’éditeur Nano.
nano /etc/apache2/sites-available/000-default.conf
On ajoute le code suivant dans le Virtual Host par défaut.
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
Etape 3 – Installer PHP sur Debian 10
L’installation du moteur PHP dans Linux est encore plus simple que le moteur Apache car il n’y a aucune configuration avancée à effectuer.
On installe la dernière version PHP et son interpréteur de commande, il s’agissait de la version 7.3.14 au moment de cette installation.
apt install php php-cli
On installe maintenant tous les paquets recommandés pour WordPress. Certains sont obligatoires, d’autres optionnels mais fortement recommandés.
apt install {php-curl,gd,intl,imagick,memcache,mysql,xml,zip,mbstring,json}
On vérifie la version de PHP qui a été installée.
php --version
On obtient le retour suivant qui indique précisément la version PHP installée précédemment.
PHP 7.3.14-1~deb10u1 (cli) (built: Feb 16 2020 15:07:23) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.14-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
On redémarre le service Apache afin qu’il prennent en compte l’installation de PHP
systemctl reload apache2
Etape 4 – Test du fonctionnement de Apache et PHP
Pour tester le fonctionnement de PHP et Apache on créé une page de test.
Pour cela on se positionne dans le répertoire du site Web (celui défini plus haut dans la section Apache lorsque l’on a paramétré le Virtual Host
cd /var/www/html
On créé la page test.php qui contient uniquement la commande phpinfo(). Cette commande permet de générer une page web qui affiche tout le paramétrage Apache et PHP d’un serveur.
echo "<?php phpinfo(); ?>" > test.php
La page de test est créé, on vérifie maintenant qu’elle fonctionne depuis un navigateur en entrant mon adresse-ip/test.php.
Apache et PHP fonctionnent parfaitement, ils sont désormais opérationnels et prêts à héberger un site WordPress.
Et ensuite ?
Maintenant que Linux Debian 10, Apache 2 et PHP 7.3 sont correctement déployés et configurés vous devez installer votre moteur de base de données MySQL ou MariaDB, c’est au choix puisque WordPress est compatible avec les 2.
Personnellement j’utilise toujours MySQL mais je constate qu’il y a un certain engouement pour MariaDB depuis quelques années.
Je n’ai pas encore franchis le pas car je n’y vois pas d’intérêt particulier et je n’ai pas envie de me lancer dans la conversion de ma base de données existante vers MariaDB.
D’autres part je connais bien MySQL et puisqu’il représente encore la plus grande part de marché j’ai l’assurance de toujours pouvoir trouver du support en cas de problème.
Quand vous aurez installer votre moteur de base de données votre serveur sera prêt pour le déploiement de votre site WordPress. Patience vous y êtes presque.
La ligne apt install php-curl,gd,intl,imagick,memcache,mysql,xml,zip,mbstring,json} déclenche une erreur.
Je pense que les virgules et le } sont en trop
Non les virgules sont OK, j’ai oublié la parenthèse ouverte. Je corrige.
Merci pour ton retour !
OC.
Bonjour,
Je pense l’accolade ouvrante n’est pas au bon endroit :
apt install php-{curl,gd,intl,imagick,memcache,mysql,xml,zip,mbstring,json}
Cordialement
Pierre
Salut Ozanne
Je n’avais plus de nouvelle de toi depuis le 17 /12/2019 et brusquement tu réapparais avec cet article pour mon plus grand plaisir. Je vais donc pouvoir continuer à me perfectionner en informatique.Mais que s’est’il passé?? Vu que je ne suis pas sur les réseaux sociaux je me demandais bien comment j’allai pouvoir te recontacter. J’ai pensé que tu étais parti vers d’autres horizons (professionnels) et que tu avais laissé tomber l’affaire et j’en étais très dépité.
Très content de t’avoir revus (Pas de commentaires sur l’article trop callé pour moi je n’en suis pas encore là. A bientôt