Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Administration Linux

Comment installer Django sur un serveur d’hébergement : un guide complet étape par étape

Django est un framework web Python de haut niveau conçu pour encourager un développement rapide et une conception pragmatique et épurée. Il reste l’un des choix les plus populaires pour construire des applications web évolutives, sécurisées et maintenables — des blogs simples aux plates-formes d’entreprise complexes. Dans ce guide complet, nous vous guiderons à travers chaque étape requise pour installer Django sur un serveur d’hébergement, de la préparation de votre environnement Linux à l’exécution de votre premier projet et sa préparation pour la production.

Pourquoi choisir Django pour votre application web ?

Avant de plonger dans le processus d’installation, il vaut la peine de comprendre pourquoi Django continue de dominer le paysage du développement web Python :

  • Batteries incluses : Django est livré avec l’authentification intégrée, un panneau d’administration, ORM, gestion des formulaires et des fonctionnalités de sécurité prêtes à l’emploi.
  • Scalabilité : Django alimente les plateformes à fort trafic comme Instagram et Pinterest.
  • Conception axée sur la sécurité : Django protège contre les vulnérabilités courantes, notamment l’injection SQL, XSS, CSRF et le clickjacking par défaut.
  • Développement rapide : Sa philosophie de convention plutôt que de configuration permet aux développeurs de livrer les fonctionnalités plus rapidement.
  • Écosystème massif : Des milliers de packages réutilisables et une grande communauté signifient que des solutions à presque tous les problèmes existent déjà.

Pour tirer le meilleur parti de Django, vous voudrez un environnement serveur fiable. Un plan VPS Hosting vous donne l’accès root, les ressources dédiées et la flexibilité que les applications Django exigent.

Prérequis

Avant de commencer le processus d’installation, assurez-vous que vous disposez des éléments suivants :

  • Un serveur d’hébergement exécutant une distribution Linux (Ubuntu 20.04/22.04 ou Debian sont recommandés)
  • Accès SSH au serveur avec privilèges sudo
  • Python 3.8 ou supérieur (Python 3.10+ recommandé)
  • pip (gestionnaire de paquets de Python) installé
  • Familiarité de base avec la ligne de commande Linux

> Conseil Pro : Si vous exécutez une application Django en production, évitez les environnements d’hébergement partagé. Un plan VPS Hosting ou un Serveur Dédié vous donnera le contrôle et les performances dont votre application a besoin.

Étape 1 : Connectez-vous à votre serveur via SSH

Ouvrez votre terminal et établissez une connexion SSH à votre serveur d’hébergement :

ssh username@server_ip

Remplacez username par votre nom d’utilisateur système réel et server_ip par l’adresse IP publique de votre serveur. Si vous utilisez un port SSH personnalisé ou un fichier d’authentification basé sur une clé, ajustez la commande en conséquence :

ssh -i /path/to/your/key.pem username@server_ip

Une fois connecté, vous aurez une interface de ligne de commande pour votre serveur où vous pourrez commencer le processus de configuration.

Étape 2 : Mettre à jour votre système et installer Python et pip

Maintenir vos packages système à jour est une première étape critique pour la sécurité et la compatibilité.

Mettre à jour l’index des packages

sudo apt update && sudo apt upgrade -y

Installer Python 3 et pip

La plupart des distributions Ubuntu et Debian modernes sont livrées avec Python 3 préinstallé. Vérifiez d’abord votre version de Python :

python3 --version

Si Python 3 n’est pas installé, ou si vous avez besoin de pip, installez-les avec :

sudo apt install python3 python3-pip -y

Vérifiez les installations :

python3 --version
pip3 --version

Vous devriez voir les numéros de version confirmant que les deux outils sont disponibles.

Étape 3 : Configurer un environnement virtuel Python

L’utilisation d’un environnement virtuel n’est pas seulement recommandée — elle est considérée comme une bonne pratique pour chaque projet Python. Les environnements virtuels isolent les dépendances de votre projet de l’installation Python système et des autres projets sur le même serveur, prévenant les conflits de version et gardant votre environnement propre.

Installer virtualenv

sudo pip3 install virtualenv

Vous pouvez également utiliser le module venv intégré de Python (disponible en Python 3.3+) :

sudo apt install python3-venv -y

Créer votre répertoire de projet et votre environnement virtuel

Accédez au répertoire où vous souhaitez héberger votre projet, ou créez-en un nouveau :

mkdir myproject
cd myproject

Créez maintenant l’environnement virtuel dans votre répertoire de projet :

virtualenv venv

Ou, en utilisant le module venv intégré :

python3 -m venv venv

Activer l’environnement virtuel

source venv/bin/activate

Une fois activé, votre invite de commande changera pour afficher le nom de l’environnement virtuel, par exemple :

(venv) username@server:~/myproject$

Toutes les commandes pip install exécutées tandis que l’environnement virtuel est actif installeront les packages uniquement dans cet environnement isolé. Pour le désactiver à tout moment, exécutez simplement :

deactivate

Étape 4 : Installer Django

Avec votre environnement virtuel actif, installez Django en utilisant pip :

pip install django

Pour installer une version spécifique de Django (recommandé pour la production afin d’assurer la compatibilité) :

pip install django==4.2

Vérifiez l’installation :

django-admin --version

Vous devriez voir le numéro de version Django installé affiché dans le terminal.

Étape 5 : Créer un nouveau projet Django

Utilisez l’outil de ligne de commande intégré de Django django-admin pour créer un nouveau projet :

django-admin startproject myproject .

> Remarque : Le point final (.) indique à Django de créer les fichiers du projet dans le répertoire courant plutôt que de créer un sous-répertoire imbriqué. C’est une structure plus propre pour la plupart des déploiements.

Votre répertoire de projet contiendra maintenant la structure suivante :

myproject/
├── manage.py
└── myproject/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • manage.py — Un utilitaire de ligne de commande pour interagir avec votre projet Django.
  • settings.py — Le fichier de configuration central de votre projet.
  • urls.py — La configuration du routage des URL.
  • wsgi.py / asgi.py — Points d’entrée pour les serveurs web compatibles WSGI et ASGI.

Étape 6 : Configurer les paramètres de la base de données

Ouvrez le fichier settings.py pour configurer votre connexion à la base de données :

nano myproject/settings.py

Par défaut : SQLite (développement uniquement)

Par défaut, Django est configuré pour utiliser SQLite, ce qui convient au développement et aux tests mais n’est pas recommandé pour la production :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Option de production : PostgreSQL

PostgreSQL est la base de données la plus couramment recommandée pour Django en production. Commencez par installer les packages requis :

sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binary

Ensuite, mettez à jour le paramètre DATABASES dans settings.py :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Option de production : MySQL / MariaDB

Si vous préférez MySQL ou MariaDB, installez l’adaptateur requis :

sudo apt install default-libmysqlclient-dev -y
pip install mysqlclient

Ensuite, configurez le paramètre DATABASES :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

Configurer ALLOWED_HOSTS

Toujours dans settings.py, mettez également à jour le paramètre ALLOWED_HOSTS pour inclure l’adresse IP ou le nom de domaine de votre serveur. Ceci est requis pour que Django traite les requêtes en mode non-debug :

ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']

Étape 7 : Appliquer les migrations de base de données

Django utilise un système de migration pour gérer les modifications du schéma de base de données. Exécutez les migrations initiales pour créer toutes les tables de base de données nécessaires :

python manage.py migrate

Vous verrez une sortie listant chaque migration appliquée. Une migration réussie ressemble à :

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  ...

Créer un superutilisateur (Facultatif mais recommandé)

Créez un compte administrateur pour accéder à l’interface d’administration intégrée de Django :

python manage.py createsuperuser

Vous serez invité à entrer un nom d’utilisateur, une adresse e-mail et un mot de passe.

Étape 8 : Exécuter le serveur de développement Django

Vous pouvez maintenant démarrer le serveur de développement intégré de Django pour vérifier votre installation :

python manage.py runserver 0.0.0.0:8000

Cette commande lie le serveur de développement à toutes les interfaces réseau disponibles sur le port 8000. Ouvrez votre navigateur web et accédez à :

http://your_server_ip:8000

Vous devriez voir la page de bienvenue de Django — une fusée avec le message « The install worked successfully! Congratulations! »

Pour accéder au panneau d’administration, accédez à :

http://your_server_ip:8000/admin

> Important : Le serveur de développement intégré de Django ne convient pas à la production. Il est monothread, non optimisé pour les performances et dépourvu de renforcement de sécurité. Utilisez toujours un serveur web de qualité production pour les déploiements en direct.

Étape 9 : Préparer Django pour la Production (Recommandé)

Pour les déploiements en production, vous devez configurer une pile de serveur web appropriée. La configuration la plus courante et recommandée est Nginx + Gunicorn.

Installer Gunicorn

Avec votre environnement virtuel actif :

pip install gunicorn

Testez que Gunicorn peut servir votre application :

gunicorn --bind 0.0.0.0:8000 myproject.wsgi

Installer et Configurer Nginx

sudo apt install nginx -y

Créez un fichier de configuration de bloc serveur Nginx :

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

Ajoutez la configuration suivante :

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
        root /home/username/myproject;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Activez la configuration et redémarrez Nginx :

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Collecter les Fichiers Statiques

Mettez à jour settings.py avec le répertoire des fichiers statiques :

STATIC_ROOT = BASE_DIR / 'staticfiles'

Ensuite, collectez tous les fichiers statiques :

python manage.py collectstatic

Sécuriser Votre Application avec SSL

Pour toute application Django en production, HTTPS est non-négociable. Un Certificat SSL chiffre les données en transit entre votre serveur et vos utilisateurs, protège les informations sensibles et est requis pour les indicateurs de confiance des navigateurs modernes. AlexHost propose des certificats SSL qui s’intègrent parfaitement à votre environnement d’hébergement.

Considérations supplémentaires pour la production

Variables d’environnement pour les paramètres sensibles

Ne codez jamais en dur les valeurs sensibles comme SECRET_KEY, les mots de passe de base de données ou les clés API dans settings.py. Utilisez plutôt des variables d’environnement :

pip install python-decouple

Dans settings.py :

from decouple import config

SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)

Définir DEBUG à False en production

DEBUG = False

L’exécution avec DEBUG = True en production expose des pages d’erreur détaillées et des informations de configuration sensibles aux attaquants potentiels.

Configurer un nom de domaine

Si vous n’avez pas encore enregistré de domaine pour votre projet Django, Enregistrement de domaine via AlexHost facilite l’orientation rapide de votre domaine vers votre serveur, avec gestion DNS complète incluse.

Choisir l’hébergement approprié pour votre application Django

L’environnement d’hébergement que vous choisissez a un impact significatif sur les performances, la fiabilité et la scalabilité de votre application Django. Voici un guide rapide :

Cas d’usageHébergement recommandé
Développement et testsHébergement Web Partagé
Applications de production petites à moyennesHébergement VPS
Applications à fort trafic ou gourmandes en ressourcesServeurs Dédiés
Applications Django intégrées au machine learning / IAHébergement GPU

Pour la plupart des projets Django passant en production, un plan Hébergement VPS offre l’équilibre idéal entre performances, contrôle et rentabilité. Vous obtenez un accès root, la possibilité d’installer n’importe quelle pile logicielle, et des ressources dédiées que l’hébergement partagé ne peut pas fournir.

Dépannage des problèmes courants d’installation de Django

pip: command not found

Installez pip manuellement : sudo apt install python3-pip -y

django-admin: command not found

Votre environnement virtuel peut ne pas être activé. Exécutez source venv/bin/activate et réessayez.

Port 8000 non accessible

Vérifiez les règles de pare-feu de votre serveur. Sur Ubuntu avec UFW :

sudo ufw allow 8000
sudo ufw reload

Connexion à la base de données refusée

Vérifiez que votre service de base de données est en cours d’exécution :

sudo systemctl status postgresql
# or
sudo systemctl status mysql

ALLOWED_HOSTS Erreur

Assurez-vous que l’adresse IP ou le nom de domaine de votre serveur est répertorié dans le paramètre ALLOWED_HOSTS dans settings.py.

Conclusion

Vous avez maintenant installé avec succès Django sur votre serveur d’hébergement, configuré un environnement virtuel, mis en place votre base de données et appris comment préparer votre application pour la production. L’ensemble riche de fonctionnalités de Django, ses paramètres de sécurité solides et son écosystème massif en font un excellent choix pour les projets de développement web de toute envergure.

Pour les déploiements en production, utilisez toujours une pile de serveurs web appropriée (Nginx + Gunicorn ou Apache + uWSGI), définissez DEBUG = False, sécurisez votre application avec un Certificat SSL, et choisissez un environnement d’hébergement qui correspond aux exigences en ressources de votre application. Que vous commenciez un nouveau projet ou que vous fassiez évoluer un projet existant, les plans VPS Hosting et Serveur Dédié d’AlexHost offrent les performances, la fiabilité et la flexibilité que votre application Django mérite.