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é à :
- Choisir un nom pour vos fichiers — je recommande un nom explicite comme
/home/user/.ssh/id_ed25519_monvps - 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 :
Français
English
Add a comment