Tu choisis les services que nous pouvons activer pour l’analyse, la personnalisation et les contenus externes.
Nous utilisons des cookies et des technologies similaires sur notre site pour personnaliser les contenus, intégrer des médias externes et mieux comprendre l’utilisation de certaines sections.
Cookies nécessaires
Ces entrées assurent des fonctions essentielles comme la sécurité, la stabilité et le traitement des formulaires.
Tes données peuvent être traitées avec ton consentement ou sur la base d’intérêts légitimes. Dans les paramètres des cookies, tu peux refuser chaque catégorie facultative ou l’autoriser individuellement.
Certains services traitent des données personnelles dans des pays tiers. En donnant ton consentement, tu acceptes également ce transfert. Pour en savoir plus, consulte notre politique de confidentialité.
Tu pourras rouvrir et modifier ta sélection à tout moment. · 1.0.2
Configurer une stack LAMP sur un serveur Linux – Héberger des applications PHP classiques
Découvre comment configurer efficacement une stack LAMP pour héberger des sites PHP dynamiques sur un VPS Linux → En savoir plus
10 novembre 20267 min de lecture1 Vues0 utile
Introduction
La stack LAMP est un ensemble populaire de logiciels open source que tu peux installer pour héberger facilement des sites web dynamiques, notamment des sites et des applications PHP. L’acronyme désigne : Linux comme système d’exploitation, Apache comme serveur web, MySQL comme base de données et enfin PHP pour le traitement. Dans ce guide, nous allons te montrer comment configurer une stack LAMP sur un VPS Linux, avec des explications détaillées étape par étape et un exemple de site web de liste de tâches.
FAQ
Questions fréquentes
Linux comme système d’exploitation, Apache comme serveur web, MySQL comme base de données et PHP pour le traitement : une combinaison populaire pour héberger des sites PHP dynamiques.
LAMP utilise Apache comme serveur web, tandis que LEMP utilise Nginx (Engine x). Le reste de la combinaison (Linux, MySQL et PHP) est identique.
Avec la commande sudo apt install apache2. Vérifie ensuite que le port 80 (HTTP) est ouvert dans ton pare-feu.
Ubuntu. Les commandes sont identiques sur Debian et similaires sur les autres distributions, mais leur syntaxe peut légèrement varier.
Avis
Cet article t’a-t-il été utile ?
Ton avis nous aide à mieux définir les priorités et à améliorer les contenus.
0 de 0 Les personnes ayant donné leur avis ont trouvé cet article utile.
Aide personnalisée
Le guide ne suffit pas ?
Notre équipe d’assistance ZAP connaît ton produit : décris brièvement ta demande et nous t’aiderons personnellement.
Zappy connaît ce guide et te répond directement dans le chat.
Navigation
VPS
Préparation
Commence par te connecter à ton serveur via SSH. Si tu ne sais pas comment faire, consulte notre guide Première connexion (SSH).
Dans ce guide, nous utilisons Ubuntu comme distribution Linux. Les commandes sont identiques sur Debian et similaires sur les autres distributions, mais leur syntaxe peut légèrement varier. Assure-toi d’avoir installé un système d’exploitation et d’être connecté via SSH.
Comme toujours, mets à jour tous les paquets avant l’installation à l’aide de la commande suivante :
Félicitations, tu as installé et configuré la stack LAMP avec succès ! Pour la suite, nous te recommandons vivement de configurer un domaine et un certificat SSL, afin que ton site web soit accessible de manière sécurisée. Consulte notre guide Certbot, qui porte sur le plugin Apache, puis suis la configuration interactive pour obtenir rapidement un certificat pour ton domaine.
Si tu as des questions ou des problèmes, notre équipe d’assistance est là pour t’aider tous les jours ! 🙂
Hébergement de serveurs dès 2,49 € / mois, mise en ligne immédiate, protection DDoS incluse.
L’installation se divise facilement selon les principaux composants de la stack LAMP : d’abord le serveur web Apache, puis la base de données MySQL et enfin PHP. Pendant l’installation, nous allons configurer un site web de test écrit en PHP, qui accède à la base de données MySQL. Chaque requête web sera ensuite traitée et servie par Apache.
Configurer Apache
Apache est le serveur web qui traite les requêtes entrantes et envoie les réponses. Installe-le avec la commande suivante :
Code
sudo apt install apache2
Après l’installation, vérifie que les règles de pare-feu appropriées sont configurées afin que le serveur web soit accessible depuis Internet. Dans cet exemple, nous utilisons le pare-feu UFW, car Apache dispose d’une application enregistrée dans UFW.
Si tu utilises un autre pare-feu, vérifie que le port 80 (HTTP) est ouvert. Pour en savoir plus sur les pare-feu sous Linux, consulte notre guide Gérer le pare-feu.
Active le pare-feu UFW et crée une règle pour SSH :
Code
# Regel für SSH erstellen
sudo ufw allow OpenSSH
# UFW Firewall aktivieren
sudo ufw enable
Attention
Assure-toi d’avoir une règle SSH dans le pare-feu UFW ! Sans cela, tu ne pourras plus te connecter via SSH si tu perds ta session actuelle après l’activation du pare-feu !
Crée maintenant la règle pour Apache et vérifie les règles :
Code
# Regel für Apache erstellen
sudo ufw allow in "Apache Full"
# UFW Firewall Status prüfen
sudo ufw status
Conseil
La commande ufw app list te permet d’afficher les profils disponibles. Apache Full signifie que HTTP (port 80) et HTTPS (port 443) sont tous deux autorisés.
Tu devrais voir Apache et Apache (v6) avec le statut ALLOW, ce qui confirme que le pare-feu est correctement configuré. Les autres règles, comme celle pour SSH, devraient également apparaître.
Le pare-feu étant ouvert pour Apache, tu peux maintenant vérifier qu’Apache fonctionne. Ouvre l’adresse IP de ton serveur dans ton navigateur : http://[deine_ip_adresse]
Si tout fonctionne, tu devrais voir une page d’accueil par défaut. Sinon, vérifie l’état du service avec : systemctl status apache2
Configurer MySQL
Installe maintenant MySQL, qui sert de base de données pour stocker les données de manière relationnelle. Utilise la commande suivante :
Code
sudo apt install mysql-server
Après l’installation, nous te recommandons d’exécuter le script de sécurité pour sécuriser ton serveur MySQL. C’est facultatif, mais vivement recommandé. Lance-le avec :
Code
sudo mysql_secure_installation
Le script te guidera de manière interactive tout au long de la configuration. Il te demandera d’abord si tu souhaites activer la validation des mots de passe. Nous te recommandons de répondre Y pour n’autoriser que des mots de passe sécurisés, puis de sélectionner MEDIUM (1) ou STRONG (2).
Il te sera ensuite demandé si tu souhaites supprimer l’utilisateur anonyme et désactiver la connexion root depuis l’extérieur. Nous te recommandons de confirmer les deux choix avec Y pour renforcer la sécurité.
Enfin, il te sera demandé si tu souhaites supprimer la base de données de test et recharger les tables de privilèges. Là encore, nous te recommandons de répondre Y.
Vérifie que MySQL fonctionne en te connectant :
Code
sudo mysql -u root
Si un message de bienvenue s’affiche, tout a fonctionné. Saisis quit pour quitter la console MySQL.
Configurer PHP
PHP est le dernier composant de la stack LAMP. Son installation est simple :
Code
sudo apt install php libapache2-mod-php php-mysql
Vérifie l’installation avec :
Code
php -v
Si un numéro de version s’affiche, PHP fonctionne correctement.
Conseil
Extensions PHP
Selon tes besoins, tu auras peut-être besoin d’extensions PHP supplémentaires. Tu trouveras une liste avec :
Code
apt search php- | less
Fais défiler la liste avec les touches fléchées et quitte avec Q. Pour installer une extension :
Code
sudo apt install [php_extension] [...]
Tu peux installer plusieurs extensions à la fois en les séparant par des espaces.
Nous te recommandons de modifier l’ordre des index de répertoire afin que index.php soit chargé avant .html. Ouvre le fichier :
Enregistre avec CTRL + X, confirme avec Y, puis appuie sur ENTER. Redémarre Apache :
Code
sudo systemctl restart apache2
Créer un site web de test
Une fois tous les composants LAMP installés, créons un site web de test pour montrer comment ils fonctionnent ensemble. Cette étape est facultative, mais utile pour comprendre comment créer tes propres sites web.
Nous allons créer une petite liste de tâches en PHP qui récupère et affiche des entrées depuis une base de données MySQL. Pour cet exemple, nous utilisons le domaine zapdocs.example.com. Tu dois créer un enregistrement DNS A pour le domaine, qui pointe vers l’adresse IP de ton serveur. Tu trouveras de l’aide dans notre guide Enregistrements de domaine.
Infos
Tu peux aussi travailler sans domaine et remplacer [your_domain] par un nom de ton choix. Tu accéderas alors au site via l’adresse IP. Dans ce cas, supprime la ligne ServerName du fichier d’hôte virtuel.
Configurer Apache
Les sites web se trouvent généralement dans le répertoire /var/www. Par défaut, un répertoire html contenant une page par défaut s’y trouve. Si tu héberges plusieurs sites web, nous te recommandons de créer un répertoire distinct pour chaque domaine.
Crée un répertoire pour ton domaine :
Code
sudo mkdir /var/www/[your_domain]
Crée un nouveau fichier de configuration d’hôte virtuel :
Enregistre et quitte avec CTRL + X, Y et ENTER. Vérifie la syntaxe :
Code
sudo apache2ctl configtest
Active le nouvel hôte virtuel :
Code
sudo a2ensite [your_domain]
Infos
Tu n’utilises pas de domaine
Si tu n’utilises pas de domaine, supprime ou commente la ligne ServerName (en ajoutant #) et désactive l’hôte par défaut :
Code
sudo a2dissite 000-default
Redémarre Apache :
Code
sudo systemctl restart apache2
Créer le site web
Le répertoire est actuellement vide. Créons maintenant le site web de liste de tâches.
Préparer la base de données
Connecte-toi à MySQL :
Code
sudo mysql -u root
Crée une nouvelle base de données et une table :
Code
# Datenbank erstellen
CREATE DATABASE todowebsite;
# Datenbank auswählen
USE todowebsite;
# Tabelle erstellen
CREATE TABLE todoitems (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
is_completed BOOLEAN DEFAULT FALSE,
creation_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Ajoute quelques exemples d’entrées :
Code
INSERT INTO todoitems (name, is_completed) VALUES ('Create ZAP-Docs Guide', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Buy a ZAP-Hosting Server', 1);
INSERT INTO todoitems (name, is_completed) VALUES ('Join ZAP-Hosting Discord', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Have a great day!', 0);
Crée un utilisateur dédié au site web :
Code
# Benutzer erstellen
# Ersetze [your_password] durch dein Passwort
CREATE USER todo@localhost IDENTIFIED BY '[your_password]';
# Rechte vergeben (als ein Befehl kopieren)
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON todowebsite.*
TO todo@localhost;
# Rechte neu laden
FLUSH PRIVILEGES;
Quitte la console MySQL avec quit.
Fichiers PHP du site web
Crée le fichier PHP de la liste de tâches :
Code
sudo nano /var/www/[your_domain]/index.php
Ajoute le code suivant. Il se connecte à la base de données et affiche les entrées de la liste de tâches.
Important
Remplace [your_password] par le mot de passe que tu as attribué à l’utilisateur todo.
Code
<?php
// MySQL-Verbindung vorbereiten
$servername = "localhost";
$username = "todo";
$password = "[your_password]";
$dbname = "todowebsite";
// Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Verbindung prüfen, bei Fehler abbrechen
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL-Abfrage, um Einträge abzurufen
$sql = "SELECT id, name, is_completed, creation_date FROM todoitems ORDER BY creation_date DESC";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-Do Liste</title>
</head>
<body>
<h1>Coole To-Do Liste :D</h1>
<p>Für unseren coolen ZAP-Hosting Guide: <a href="https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack">https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack</a></p>
<ul>
<?php
// Prüfen, ob Ergebnisse vorhanden sind
if ($result->num_rows > 0) {
// Durch alle Einträge iterieren
foreach ($result as $entry) {
echo "<li>";
// Name anzeigen, htmlspecialchars schützt vor XSS
echo htmlspecialchars($entry["name"]);
// Status anzeigen
if ($entry["is_completed"]) {
echo " <strong>(Erledigt)</strong>";
} else {
echo " <strong>(Offen)</strong>";
}
// Erstellungsdatum anzeigen
echo " - Erstellungsdatum: " . htmlspecialchars($entry['creation_date']);
echo "</li>";
}
} else {
// Falls keine Einträge vorhanden sind
echo "<li>Keine To-Do-Einträge gefunden.</li>";
}
?>
</ul>
</body>
</html>
<?php
// Verbindung schließen
$conn->close();
?>
Enregistre et quitte avec CTRL + X, Y et ENTER.
Tester le site web
Tu as configuré avec succès un site web de liste de tâches de test qui utilise tous les composants LAMP !
Accède maintenant au domaine (HTTP/port 80) que tu as défini dans l’hôte virtuel, par exemple zapdocs.example.com. Le résultat devrait ressembler à ceci :