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éploiement d'une application PHP sur un serveur privé virtuel (VPS) est une étape clé de la transition du développement local à la production. Contrairement à l'hébergement mutualisé, un VPS offre un contrôle total sur l'environnement d'exécution, ce qui est essentiel pour les frameworks modernes (Laravel, Symfony) et les projets à forte charge.



Dans ce guide, nous allons parcourir le cycle complet de déploiement d'une application PHP sur un VPS avec Ubuntu 22.04. Vous apprendrez à configurer le serveur, installer les composants nécessaires et automatiser le processus de déploiement. Tous les exemples de code sont prêts à être utilisés.



1. Préparation du VPS et configuration initiale



1.1. Connexion au serveur



Après avoir acheté un VPS, vous recevrez une adresse IP, un identifiant (généralement root) et un mot de passe. Connectez-vous via SSH :



ssh root@votre_adresse_ip


Si vous utilisez des clés SSH (recommandé), ajoutez votre clé publique sur le serveur.



1.2. Mise à jour du système et création d'un utilisateur



Mettez à jour les paquets et créez un utilisateur non privilégié pour travailler :



apt update && apt upgrade -yadduser deployerusermod -aG sudo deployer


Connectez-vous maintenant avec le nouvel utilisateur :



ssh deployer@votre_adresse_ip


1.3. Configuration du pare-feu



Utilisez UFW pour une protection de base :



sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enablesudo ufw status


2. Installation de la pile LEMP (Linux, Nginx, MySQL, PHP)



2.1. Installation de Nginx



sudo apt install nginx -ysudo systemctl start nginxsudo systemctl enable nginx


Vérifiez le fonctionnement en ouvrant http://votre_adresse_ip dans un navigateur. Vous devriez voir la page d'accueil de Nginx.



2.2. Installation de PHP et PHP-FPM



Pour les frameworks modernes, utilisez PHP 8.x :



sudo apt install php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring php8.1-curl php8.1-zip php8.1-gd -y


Vérifiez la version et démarrez PHP-FPM :



php -vsudo systemctl start php8.1-fpmsudo systemctl enable php8.1-fpm


2.3. Installation de MySQL



sudo apt install mysql-server -ysudo mysql_secure_installation


Créez une base de données pour votre application :



sudo mysql -u root -pCREATE DATABASE your_database_name;CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_user'@'localhost';FLUSH PRIVILEGES;EXIT;


3. Configuration de l'hôte virtuel et déploiement de l'application



3.1. Création d'un hôte virtuel Nginx



Créez un fichier de configuration pour votre domaine :



sudo nano /etc/nginx/sites-available/yourdomain.com


Insérez la configuration suivante (adaptez-la à votre projet) :



server {    listen 80;    server_name yourdomain.com www.yourdomain.com;    root /var/www/yourdomain.com/public;

index index.php index.html;

location / { try_files $uri $uri/ /index.php?$query_string; }

location ~ \\.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; }

location ~ /\\.ht { deny all; }}


Activez le site :



sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl reload nginx


3.2. Déploiement du code via Git



Installez Git et clonez le dépôt :



sudo apt install git -ycd /var/wwwsudo git clone https://github.com/yourusername/your-repo.git yourdomain.com


Configurez les permissions :



sudo chown -R www-data:www-data /var/www/yourdomain.comsudo chmod -R 755 /var/www/yourdomain.com/storagesudo chmod -R 755 /var/www/yourdomain.com/b

Blogs

Book Recommendations