Vous avez un projet web et vous cherchez la meilleure façon de le déployer ?

Il existe plusieurs solutions selon vos besoins, chacune avec ses avantages et ses contraintes :

Solution Avantages Inconvénients
Cloud clé en main (Webflow, Wix…) Simple, rapide Peu flexible, coûteux à l'échelle
Hébergement mutualisé Pas cher, facile Ressources partagées, limité
Serveur dédié Puissant, isolé Cher, surdimensionné pour débuter
VPS Flexible, abordable, scalable Nécessite une configuration manuelle

Un VPS (Virtual Private Server) est souvent le meilleur compromis pour un développeur : vous avez le contrôle total de votre environnement, sans payer le prix d'un serveur dédié.

À noter : contrairement à un hébergement mutualisé, un VPS est livré avec uniquement son OS. Toute la configuration est à faire par vos soins — c'est précisément ce que ce guide couvre.

À la fin de cet article, vous aurez un VPS fonctionnel sous Ubuntu, accessible via SSH avec une paire de clés, avec Apache et PHP installés, et votre premier nom de domaine qui pointe vers une page web.


1. Choisir son VPS

Pour héberger un projet web en PHP, un environnement Linux est idéal. Dans ce guide, j'utilise Ubuntu, mais Debian est également une très bonne option — souvent recommandée pour sa stabilité en production. Choisissez la distribution proposée par votre fournisseur, les deux conviennent parfaitement.

Pour les ressources, un VPS d'entrée de gamme (1 vCPU, 2 Go de RAM) est largement suffisant pour démarrer un projet PHP.


2. Configurer l'accès SSH

Votre fournisseur VPS vous transmet un nom d'utilisateur et un mot de passe pour votre première connexion. Rapidement, vous voudrez configurer une paire de clés SSH pour vous connecter sans saisir vos identifiants à chaque fois — c'est plus pratique et bien plus sécurisé.

Les commandes suivantes sont adaptées à macOS. Elles fonctionnent également sur Linux. Sous Windows, vous pouvez utiliser WSL ou PowerShell.

2.1. Créer la paire de clés

Ouvrez votre terminal et vérifiez que le dossier ~/.ssh existe. Si ce n'est pas le cas, créez-le :

mkdir ~/.ssh

Générez ensuite votre paire de clés. Deux algorithmes sont disponibles :

# ED25519 — recommandé (plus sûr, clés plus courtes)
ssh-keygen -t ed25519 -a 100

# RSA — plus polyvalent si votre VPS ne supporte pas ED25519
ssh-keygen -t rsa -b 4096 -a 100

Lors de la génération, vous serez invité à :

  1. Choisir un nom pour vos fichiers — je recommande un nom explicite comme /home/user/.ssh/id_ed25519_monvps
  2. Définir une phrase secrète (optionnel, mais recommandé pour sécuriser la clé privée)

Deux fichiers sont créés :

  • id_ed25519_monvps — votre clé privée (ne la partagez jamais)
  • id_ed25519_monvps.pub — votre clé publique (à déposer sur le serveur)

2.2. Configurer le fichier SSH

Éditez (ou créez) le fichier ~/.ssh/config et ajoutez les lignes suivantes :

Host monvps
  HostName <ip ou hostname de votre VPS>
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_ed25519_monvps
  User <votre nom d'utilisateur>
  UserKnownHostsFile ~/.ssh/known_hosts_monvps
  IdentitiesOnly yes

Remplacez monvps, l'IP et le nom d'utilisateur par vos valeurs réelles.

2.3. Déposer la clé publique sur le serveur

Connectez-vous une dernière fois avec votre mot de passe :

ssh <utilisateur>@<ip-de-votre-vps>

Une fois connecté, ajoutez le contenu de votre clé publique dans le fichier ~/.ssh/authorized_keys :

# Sur votre VPS
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys

Collez-y le contenu de votre fichier .pub (que vous pouvez lire sur votre machine locale avec cat ~/.ssh/id_ed25519_monvps.pub).

Désormais, vous pouvez vous connecter simplement avec :

ssh monvps

Pour aller plus loin : la documentation OVHcloud détaille la configuration SSH pour les serveurs dédiés et VPS — voir le guide officiel.


3. Installer PHP et Apache

Connectez-vous à votre VPS, puis mettez à jour les paquets disponibles :

sudo apt update && sudo apt upgrade -y

3.1. Installer PHP

sudo apt install php php-cli php-mysql php-xml php-gd php-curl -y

Vérifiez l'installation :

php -v

Vous devriez obtenir quelque chose comme :

PHP 8.x.x (cli)
Copyright (c) The PHP Group
Zend Engine v4.x.x, Copyright (c) Zend Technologies
    with Zend OPcache v8.x.x, Copyright (c), by Zend Technologies

3.2. Installer Apache

Vérifiez d'abord si Apache est déjà présent sur votre VPS :

apache2 -v

Si la commande retourne une erreur, installez-le :

sudo apt install apache2 -y

Pour vérifier qu'Apache tourne correctement :

sudo systemctl status apache2

Collez l'adresse IP de votre VPS dans votre navigateur — vous devriez voir la page par défaut "Apache2 Ubuntu Default Page".

Commandes utiles pour Apache :

sudo systemctl start apache2    # Démarrer
sudo systemctl stop apache2     # Arrêter
sudo systemctl restart apache2  # Redémarrer
sudo systemctl reload apache2   # Recharger la conf sans couper le service

4. Configurer le nom de domaine

4.1. Faire pointer le domaine vers votre VPS

Dans l'interface de votre fournisseur de domaine, repérez la section Zone DNS et ajoutez un champ de type A :

Type Nom Valeur
A acme.test <ip de votre VPS>
A *.acme.test <ip de votre VPS>

Le champ avec le wildcard * permet de faire pointer tous vos sous-domaines automatiquement vers le même VPS.

La propagation DNS peut prendre quelques minutes à quelques heures selon votre registrar.

4.2. Configurer Apache avec un Virtual Host

Pour la suite, les exemples utilisent :

  • Domaine : acme.test
  • IP du VPS : 100.100.100.100
  • Utilisateur : johndoe

Éditez le fichier /etc/hosts de votre VPS et ajoutez :

127.0.0.1    acme.test

Créez le fichier de configuration Apache pour votre domaine :

cd /etc/apache2/sites-available
sudo nano acme.conf

Ajoutez le contenu suivant :

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName acme.test
  DocumentRoot /home/johndoe/projects/default/

  <Directory "/home/johndoe/projects/default/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog /home/johndoe/logs/default-errors.log
  CustomLog /home/johndoe/logs/default-access.log combined
</VirtualHost>

Activez votre configuration et désactivez celle par défaut :

sudo a2ensite acme.conf          # Activer la nouvelle conf
sudo a2dissite 000-default.conf  # Désactiver la conf par défaut

5. Créer votre première page web

Créez l'arborescence de votre projet :

cd ~
mkdir -p projects/default
mkdir -p logs
cd projects/default

Créez un fichier index.html :

nano index.html

Avec le contenu suivant :

<html>
  <head>
    <title>Acme - Bienvenue</title>
  </head>
  <body>
    <h1>Bienvenue sur acme.test</h1>
  </body>
</html>

Vérifiez la configuration Apache avant de redémarrer :

sudo apache2ctl configtest

Vous devez voir :

Syntax OK

Redémarrez Apache pour appliquer les changements :

sudo systemctl restart apache2

Rendez-vous sur http://acme.test dans votre navigateur — votre page s'affiche 🎉


Récapitulatif

À ce stade, votre VPS est opérationnel :

  • ✅ Accès SSH sécurisé avec une paire de clés
  • ✅ PHP et Apache installés et fonctionnels
  • ✅ Nom de domaine configuré et pointant vers votre serveur
  • ✅ Virtual Host Apache configuré pour votre domaine
  • ✅ Première page web en ligne

La suite

Votre serveur répond en HTTP — mais en 2024, un site sans HTTPS est pénalisé par les navigateurs et les moteurs de recherche. Dans le prochain article, nous verrons comment sécuriser votre VPS avec un certificat SSL Let's Encrypt grâce au script Acme PHP, entièrement gratuitement.

Ressources :

Article précédent Article suivant


Ajouter un commentaire