Menu

Déployer un projet Django sous Windows IIS Server

Durant le développement d’un projet web Django, on travaille sur le serveur de développement fourni par la plateforme. Une fois le projet terminé, on passe en environnement de production.

Dans ce qui suit, nous allons voir en détail comment déployer et mettre en production un mini-projet Django de gestion de bibliothèque, que j’ai appelé “librairies”, sous Windows IIS Server.

Etapes de déploiement

1. Aller dans « Panneau de configuration > Programmes > Programmes et fonctionnalités » et cliquer sur « Activer ou désactiver des fonctionnalités Windows »

2. Activer « Service Internet IIS » et la fonctionnalité « CGI » se trouvant dans « Fonctionnalités de développement d’applications » puis cliquer sur « OK »

3. Télécharger wfastcgi sur le site www.pypi.org

4. Installer python (voir l’article d’installation de python ici)

5. Installer wfastcgi après l’avoir téléchargé

6. Installer Django (voir l’article d’installation offline de Django ici)

7. Relancer l’invite de commande ou windows PowerShell en tant qu’administrateur si ce n’est pas le cas pour activer « fastcgi » avec la commande « wfastcgi-enable »

8. Dans le gestionnaire de service Internet IIS, aller dans « paramètres FastCGI » pour voir la modification effectuée avec la commande « wfastcgi-enable »

9. Aller dans le répertoire racine de l’application « C:/inetpub/wwwroot » et dans le répertoire, importer le projet et créer le fichier « web.config »

10. Le fichier « web.config » situé dans la racine comporte la configuration suivante :

  • La valeur de ScriptProcessor correspond à la valeur de sortie obtenue avec la commande « wfastcgi-enable »
  • La valeur de la clé « WSGI_HANDLER » correspond à la valeur de la variable WSGI_APPLICATION se trouvant dans le fichier settings.py du projet django
  • La valeur de la clé PYTHONPATH correspond au chemin du projet django

11. Aller dans la racine du projet django pour la collecte des fichiers statiques en utilisant la commande « python manage.py collectstatic »

12. Dans le dossier de destination des fichier statiques « static », créer un fichier « web.config » qui va permettre au serveur IIS de servir les fichiers statiques

13. Le fichier « web.config » contient la configuration suivante :

14. En lançant l’application web avec le navigateur, il est possible d’avoir une erreur de configuration, comme décrit dans la capture ci-après :

15. Aller dans le gestionnaire des services Internet IIS, et cliquer sur « Editeur de configuration »

16. Dans l’éditeur de configuration, il faut activer les « handlers » de l’application en cliquant sur « déverrouiller la section » dans le panneau de gauche du gestionnaire Internet

17. Donner la permission à IIS Server pour accéder à Python. Pour cela, il faut faire un clic droit sur le dossier Python, sélectionner Propriétés, puis sécurité et cliquer sur le bouton Ajouter, relatif aux noms de groupes ou d’utilisateurs

18. Dans la fenêtre d’ajout, cliquer sur emplacement

19. Annuler l’emplacement dans le domaine AD

20. Sélectionner la machine et cliquer sur OK

21. Entrer le nom de l’objet à ajouter « IIS AppPool\DefaultAppPool » et cliquer sur le bouton « Vérifier les noms » puis sur « OK » pour valider

22. Dans la fenêtre des autorisations cliquer sur « ok » pour la lancer la définition des informations de sécurité sur les fichiers et sous-dossiers de python

23. Aller dans le gestionnaire IIS et ajouter les fichiers statiques en faisant un clic droit sur « Default Web Site » et cliquer sur « Ajouter un répertoire virtuel »

24. Dans la fenêtre d’ajout, donner un alias pour le répertoire et définir le chemin d’accès physique au dossier contenant les fichiers statiques

25. Permettre aux utilisateurs IIS (IIS_ISUERS) d’écrire dans la base de données du projet django. Cela permet de se retrouver dans l’erreur « unable to open database file » lors de la connexion à la base de données SQLite de django. Il faut appliquer les permissions sur le fichier « db.sqlite3 » ainsi que pour le projet django dans lequel se trouve le fichier de la base de données.

Et voilà, nous avons vu comment procéder au déploiement d’un projet Django sous Windows sur un serveur IIS.