Déploiement d'une application PHP sur un VPS : guide étape par étape

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction

Le développement d'une application PHP n'est que la moitié du travail. La seconde partie, tout aussi importante, est le déploiement, c'est-à-dire la mise en place du code prêt sur le serveur de production. De nombreux développeurs débutants rencontrent des difficultés lors du transfert d'un projet depuis leur machine locale vers un VPS (Virtual Private Server). La configuration de l'environnement, le travail avec le serveur web, les bases de données et la sécurité peuvent sembler complexes, mais il s'agit en réalité d'un processus séquentiel et compréhensible.

Dans cet article, nous allons détailler étape par étape comment effectuer correctement le déploiement d'une application PHP sur un VPS. Vous apprendrez à préparer le serveur, configurer Nginx et PHP-FPM, connecter une base de données MySQL et automatiser le déploiement des mises à jour via Git. Ce contenu est destiné à ceux qui possèdent déjà des compétences de base avec Linux et Git, mais qui souhaitent systématiser leurs connaissances.

1. Préparation du serveur et installation de la pile LEMP

La première étape consiste à vous connecter à votre VPS via SSH et à installer l'ensemble de programmes de base connu sous le nom de LEMP (Linux, Nginx, MySQL, PHP).

Connectez-vous au serveur :

ssh root@votre-adresse-ip

Mettez à jour les paquets et installez Nginx, MySQL et PHP avec les extensions nécessaires :

sudo apt update && sudo apt upgrade -y
sudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

Après l'installation, démarrez les services et ajoutez-les au démarrage automatique :

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php8.1-fpm  # la version peut différer
sudo systemctl enable php8.1-fpm

À ce stade, l'infrastructure de base est prête. Passons maintenant à la configuration de la base de données et du serveur web.

2. Configuration de MySQL et création de la base de données

La plupart des applications PHP (par exemple, WordPress, Laravel ou des projets personnalisés) nécessitent une base de données. Effectuez la configuration initiale de MySQL :

sudo mysql_secure_installation

Suivez les instructions : définissez un mot de passe pour root, supprimez les utilisateurs anonymes, interdisez la connexion à distance de root et supprimez la base de données de test.

Créez maintenant une base de données et un utilisateur pour votre application. Connectez-vous à la console MySQL :

sudo mysql -u root -p

Exécutez les requêtes SQL (remplacez myapp, myuser et mypassword par vos propres valeurs) :

CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

La base de données est prête. Notez le nom de la base, l'utilisateur et le mot de passe — ils seront nécessaires lors de la configuration de l'application.

3. Placement du code et configuration de l'hôte virtuel Nginx

Il est maintenant temps de transférer le code de votre application PHP sur le serveur. La manière la plus pratique est d'utiliser Git. Supposons que votre projet soit hébergé sur GitHub ou GitLab.

Créez un répertoire pour le projet et clonez le dépôt :

sudo mkdir -p /var/www/myapp
sudo chown -R $USER:$USER /var/www/myapp
git clone https://github.com/votre-username/votre-repository.git /var/www/myapp

Si le projet utilise Composer (par exemple, Laravel ou Symfony), effectuez l'installation des dépendances :

cd /var/www/myapp
composer install --no-dev --optimize-autoloader

Configurez les droits d'accès. Généralement, le serveur web doit avoir un accès en écriture à certains dossiers (par exemple, storage et bootstrap/cache dans Laravel) :

sudo chown -R www-data:www-data /var/www/myapp/storage
sudo chown -R www-data:www-data /var/www/myapp/bootstrap/cache

Créons maintenant la configuration de l'hôte virtuel pour Nginx. Créez le fichier :

sudo nano /etc/nginx/sites-available/myapp

Insérez la configuration suivante (adaptez

Blogs

Book Recommendations